@copilotkit/react-textarea 0.19.0-alpha.2 → 0.19.0-alpha.4
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/.turbo/turbo-build.log +292 -288
- package/CHANGELOG.md +17 -0
- package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +1870 -33
- package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs.map +1 -1
- package/dist/components/base-copilot-textarea/render-element.mjs +52 -3
- package/dist/components/base-copilot-textarea/render-element.mjs.map +1 -1
- package/dist/components/base-copilot-textarea/render-placeholder.mjs +46 -3
- package/dist/components/base-copilot-textarea/render-placeholder.mjs.map +1 -1
- package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs +86 -4
- package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs.map +1 -1
- package/dist/components/base-copilot-textarea/use-add-branding-css.mjs +57 -3
- package/dist/components/base-copilot-textarea/use-add-branding-css.mjs.map +1 -1
- package/dist/components/copilot-textarea/copilot-textarea.mjs +2339 -43
- package/dist/components/copilot-textarea/copilot-textarea.mjs.map +1 -1
- package/dist/components/hovering-toolbar/hovering-editor-provider.mjs +22 -3
- package/dist/components/hovering-toolbar/hovering-editor-provider.mjs.map +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs +125 -3
- package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs.map +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar.mjs +1015 -16
- package/dist/components/hovering-toolbar/hovering-toolbar.mjs.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/{mode-suggestion-appearing.d.ts → hovering-insertion-prompt-box-core.d.ts} +5 -13
- package/dist/{chunk-ITZHK3YV.mjs → components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs} +488 -243
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs.map +1 -0
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs +734 -11
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs +734 -12
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs.map +1 -1
- package/dist/components/index.mjs +2340 -44
- package/dist/components/index.mjs.map +1 -1
- package/dist/components/manual-ui/chip-with-icon.mjs +5 -6
- package/dist/components/manual-ui/chip-with-icon.mjs.map +1 -1
- package/dist/components/source-search-box/source-search-box.mjs +323 -9
- package/dist/components/source-search-box/source-search-box.mjs.map +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.mjs +88 -4
- package/dist/components/ui/button.mjs.map +1 -1
- package/dist/components/ui/card.mjs +53 -7
- package/dist/components/ui/card.mjs.map +1 -1
- package/dist/components/ui/command.mjs +266 -5
- package/dist/components/ui/command.mjs.map +1 -1
- package/dist/components/ui/dialog.mjs +164 -4
- package/dist/components/ui/dialog.mjs.map +1 -1
- package/dist/components/ui/label.mjs +63 -4
- package/dist/components/ui/label.mjs.map +1 -1
- package/dist/components/ui/separator.mjs +50 -8
- package/dist/components/ui/separator.mjs.map +1 -1
- package/dist/components/ui/textarea.mjs +48 -7
- package/dist/components/ui/textarea.mjs.map +1 -1
- package/dist/context/index.mjs +0 -2
- package/dist/context/index.mjs.map +1 -1
- package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs +168 -6
- package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs.map +1 -1
- package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs +168 -4
- package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs.map +1 -1
- package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs +155 -5
- package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs.map +1 -1
- package/dist/hooks/index.mjs +0 -2
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs +90 -4
- package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map +1 -1
- package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs +143 -4
- package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs.map +1 -1
- package/dist/hooks/misc/use-autosize-textarea.mjs +15 -3
- package/dist/hooks/misc/use-autosize-textarea.mjs.map +1 -1
- package/dist/index.css +3 -27
- package/dist/index.css.map +1 -1
- package/dist/index.mjs +2343 -48
- package/dist/index.mjs.map +1 -1
- package/dist/lib/debouncer.mjs +51 -3
- package/dist/lib/debouncer.mjs.map +1 -1
- package/dist/lib/editor-to-text.mjs +43 -3
- package/dist/lib/editor-to-text.mjs.map +1 -1
- package/dist/lib/get-text-around-cursor.mjs +109 -3
- package/dist/lib/get-text-around-cursor.mjs.map +1 -1
- package/dist/lib/retry.mjs +17 -3
- package/dist/lib/retry.mjs.map +1 -1
- package/dist/lib/slatejs-edits/add-autocompletions.mjs +25 -3
- package/dist/lib/slatejs-edits/add-autocompletions.mjs.map +1 -1
- package/dist/lib/slatejs-edits/clear-autocompletions.mjs +23 -3
- package/dist/lib/slatejs-edits/clear-autocompletions.mjs.map +1 -1
- package/dist/lib/slatejs-edits/replace-text.mjs +27 -3
- package/dist/lib/slatejs-edits/replace-text.mjs.map +1 -1
- package/dist/lib/slatejs-edits/with-partial-history.mjs +106 -3
- package/dist/lib/slatejs-edits/with-partial-history.mjs.map +1 -1
- package/dist/lib/stream-promise-flatten.d.ts +3 -0
- package/dist/lib/stream-promise-flatten.mjs +48 -0
- package/dist/lib/stream-promise-flatten.mjs.map +1 -0
- package/dist/lib/utils.mjs +71 -3
- package/dist/lib/utils.mjs.map +1 -1
- package/dist/lib/utils.test.mjs +0 -1
- package/dist/lib/utils.test.mjs.map +1 -1
- package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs +0 -2
- package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs.map +1 -1
- package/dist/types/autosuggestions-config/autosuggestions-config.mjs +312 -9
- package/dist/types/autosuggestions-config/autosuggestions-config.mjs.map +1 -1
- package/dist/types/autosuggestions-config/editing-api-config.mjs +155 -4
- package/dist/types/autosuggestions-config/editing-api-config.mjs.map +1 -1
- package/dist/types/autosuggestions-config/index.mjs +313 -10
- package/dist/types/autosuggestions-config/index.mjs.map +1 -1
- package/dist/types/autosuggestions-config/insertions-api-config.mjs +149 -4
- package/dist/types/autosuggestions-config/insertions-api-config.mjs.map +1 -1
- package/dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.mjs +71 -3
- package/dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.mjs.map +1 -1
- package/dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs +0 -2
- package/dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs.map +1 -1
- package/dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs +0 -2
- package/dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs.map +1 -1
- package/dist/types/autosuggestions-config/suggestions-api-config.mjs +137 -4
- package/dist/types/autosuggestions-config/suggestions-api-config.mjs.map +1 -1
- package/dist/types/base/autosuggestion-state.mjs +0 -2
- package/dist/types/base/autosuggestion-state.mjs.map +1 -1
- package/dist/types/base/autosuggestions-bare-function.mjs +0 -2
- package/dist/types/base/autosuggestions-bare-function.mjs.map +1 -1
- package/dist/types/base/base-autosuggestions-config.mjs +11 -3
- package/dist/types/base/base-autosuggestions-config.mjs.map +1 -1
- package/dist/types/base/base-copilot-textarea-props.mjs +0 -2
- package/dist/types/base/base-copilot-textarea-props.mjs.map +1 -1
- package/dist/types/base/custom-editor.mjs +0 -2
- package/dist/types/base/custom-editor.mjs.map +1 -1
- package/dist/types/base/editor-autocomplete-state.mjs +17 -4
- package/dist/types/base/editor-autocomplete-state.mjs.map +1 -1
- package/dist/types/base/index.mjs +11 -4
- package/dist/types/base/index.mjs.map +1 -1
- package/dist/types/html-copilot-textarea-element.mjs +0 -2
- package/dist/types/html-copilot-textarea-element.mjs.map +1 -1
- package/dist/types/index.mjs +314 -12
- package/dist/types/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/components/hovering-toolbar/text-insertion-prompt-box/{mode-suggestion-appearing.tsx → hovering-insertion-prompt-box-core.tsx} +59 -65
- package/src/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.tsx +9 -52
- package/src/components/source-search-box/source-search-box.tsx +7 -10
- package/src/components/ui/command.tsx +1 -1
- package/src/lib/stream-promise-flatten.ts +25 -0
- package/dist/chunk-2NURR2DX.mjs +0 -47
- package/dist/chunk-2NURR2DX.mjs.map +0 -1
- package/dist/chunk-3YJ63D5D.mjs +0 -106
- package/dist/chunk-3YJ63D5D.mjs.map +0 -1
- package/dist/chunk-4S5ZJH3I.mjs +0 -18
- package/dist/chunk-4S5ZJH3I.mjs.map +0 -1
- package/dist/chunk-55EGOC5T.mjs +0 -87
- package/dist/chunk-55EGOC5T.mjs.map +0 -1
- package/dist/chunk-5ARCOTW3.mjs +0 -34
- package/dist/chunk-5ARCOTW3.mjs.map +0 -1
- package/dist/chunk-5EJ5XOGP.mjs +0 -22
- package/dist/chunk-5EJ5XOGP.mjs.map +0 -1
- package/dist/chunk-5FO6ISW4.mjs +0 -3
- package/dist/chunk-5FO6ISW4.mjs.map +0 -1
- package/dist/chunk-7SMDOAG2.mjs +0 -201
- package/dist/chunk-7SMDOAG2.mjs.map +0 -1
- package/dist/chunk-A2RRLD23.mjs +0 -69
- package/dist/chunk-A2RRLD23.mjs.map +0 -1
- package/dist/chunk-CDB7HFCY.mjs +0 -65
- package/dist/chunk-CDB7HFCY.mjs.map +0 -1
- package/dist/chunk-CSGFJU3L.mjs +0 -65
- package/dist/chunk-CSGFJU3L.mjs.map +0 -1
- package/dist/chunk-D7SEV5PR.mjs +0 -12
- package/dist/chunk-D7SEV5PR.mjs.map +0 -1
- package/dist/chunk-DE5K76I2.mjs +0 -3
- package/dist/chunk-DE5K76I2.mjs.map +0 -1
- package/dist/chunk-F3MHL6ZY.mjs +0 -25
- package/dist/chunk-F3MHL6ZY.mjs.map +0 -1
- package/dist/chunk-H4VKQGVU.mjs +0 -3
- package/dist/chunk-H4VKQGVU.mjs.map +0 -1
- package/dist/chunk-HAFHLU4N.mjs +0 -55
- package/dist/chunk-HAFHLU4N.mjs.map +0 -1
- package/dist/chunk-ITZHK3YV.mjs.map +0 -1
- package/dist/chunk-IU3WTXLQ.mjs +0 -3
- package/dist/chunk-IU3WTXLQ.mjs.map +0 -1
- package/dist/chunk-IXJ2HCOA.mjs +0 -101
- package/dist/chunk-IXJ2HCOA.mjs.map +0 -1
- package/dist/chunk-JAFCXEPU.mjs +0 -10
- package/dist/chunk-JAFCXEPU.mjs.map +0 -1
- package/dist/chunk-KCHYD3EB.mjs +0 -107
- package/dist/chunk-KCHYD3EB.mjs.map +0 -1
- package/dist/chunk-KGKLUWKW.mjs +0 -47
- package/dist/chunk-KGKLUWKW.mjs.map +0 -1
- package/dist/chunk-L7VVZH4Q.mjs +0 -3
- package/dist/chunk-L7VVZH4Q.mjs.map +0 -1
- package/dist/chunk-LNAIMEB2.mjs +0 -34
- package/dist/chunk-LNAIMEB2.mjs.map +0 -1
- package/dist/chunk-MMVDU6DF.mjs +0 -3
- package/dist/chunk-MMVDU6DF.mjs.map +0 -1
- package/dist/chunk-MPME5BW2.mjs +0 -59
- package/dist/chunk-MPME5BW2.mjs.map +0 -1
- package/dist/chunk-MRXNTQOX.mjs +0 -55
- package/dist/chunk-MRXNTQOX.mjs.map +0 -1
- package/dist/chunk-ND5PXTAW.mjs +0 -17
- package/dist/chunk-ND5PXTAW.mjs.map +0 -1
- package/dist/chunk-NKW5OU2S.mjs +0 -33
- package/dist/chunk-NKW5OU2S.mjs.map +0 -1
- package/dist/chunk-O5OWT5GE.mjs +0 -114
- package/dist/chunk-O5OWT5GE.mjs.map +0 -1
- package/dist/chunk-OD7ZMOVE.mjs +0 -45
- package/dist/chunk-OD7ZMOVE.mjs.map +0 -1
- package/dist/chunk-OELUUJZY.mjs +0 -16
- package/dist/chunk-OELUUJZY.mjs.map +0 -1
- package/dist/chunk-OM5WQQOU.mjs +0 -47
- package/dist/chunk-OM5WQQOU.mjs.map +0 -1
- package/dist/chunk-PF3XRNDB.mjs +0 -44
- package/dist/chunk-PF3XRNDB.mjs.map +0 -1
- package/dist/chunk-QL2GYGG5.mjs +0 -19
- package/dist/chunk-QL2GYGG5.mjs.map +0 -1
- package/dist/chunk-RPDVSCLO.mjs +0 -107
- package/dist/chunk-RPDVSCLO.mjs.map +0 -1
- package/dist/chunk-RQHOUUXQ.mjs +0 -29
- package/dist/chunk-RQHOUUXQ.mjs.map +0 -1
- package/dist/chunk-UHD44NC5.mjs +0 -101
- package/dist/chunk-UHD44NC5.mjs.map +0 -1
- package/dist/chunk-VBIJPE3H.mjs +0 -108
- package/dist/chunk-VBIJPE3H.mjs.map +0 -1
- package/dist/chunk-WADHCMPK.mjs +0 -3
- package/dist/chunk-WADHCMPK.mjs.map +0 -1
- package/dist/chunk-WJHSY5T6.mjs +0 -3
- package/dist/chunk-WJHSY5T6.mjs.map +0 -1
- package/dist/chunk-WJYQWL4I.mjs +0 -27
- package/dist/chunk-WJYQWL4I.mjs.map +0 -1
- package/dist/chunk-XDT7BF3V.mjs +0 -81
- package/dist/chunk-XDT7BF3V.mjs.map +0 -1
- package/dist/chunk-XHUMROEY.mjs +0 -91
- package/dist/chunk-XHUMROEY.mjs.map +0 -1
- package/dist/chunk-YQU7WG7T.mjs +0 -83
- package/dist/chunk-YQU7WG7T.mjs.map +0 -1
- package/dist/chunk-YTOPHPSG.mjs +0 -45
- package/dist/chunk-YTOPHPSG.mjs.map +0 -1
- package/dist/chunk-YW3REYX6.mjs +0 -23
- package/dist/chunk-YW3REYX6.mjs.map +0 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/mode-pre-suggestion.d.ts +0 -16
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/mode-pre-suggestion.mjs +0 -5
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/mode-pre-suggestion.mjs.map +0 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/mode-suggestion-appearing.mjs +0 -10
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/mode-suggestion-appearing.mjs.map +0 -1
- package/src/components/hovering-toolbar/text-insertion-prompt-box/mode-pre-suggestion.tsx +0 -83
package/dist/chunk-YQU7WG7T.mjs
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { replaceEditorText } from './chunk-RQHOUUXQ.mjs';
|
|
2
|
-
import { getFullEditorTextWithNewlines } from './chunk-IXJ2HCOA.mjs';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { ReactEditor } from 'slate-react';
|
|
5
|
-
|
|
6
|
-
function usePopulateCopilotTextareaRef(editor, ref) {
|
|
7
|
-
React.useImperativeHandle(
|
|
8
|
-
ref,
|
|
9
|
-
() => {
|
|
10
|
-
class Combined {
|
|
11
|
-
constructor(customMethods2, editorHtmlElement2) {
|
|
12
|
-
this.customMethods = customMethods2;
|
|
13
|
-
this.editorHtmlElement = editorHtmlElement2;
|
|
14
|
-
}
|
|
15
|
-
get(target, propKey) {
|
|
16
|
-
if (this.isKeyOfCustomMethods(propKey)) {
|
|
17
|
-
const value = this.customMethods[propKey];
|
|
18
|
-
if (typeof value === "function") {
|
|
19
|
-
return value.bind(this.customMethods);
|
|
20
|
-
}
|
|
21
|
-
return value;
|
|
22
|
-
} else if (this.isKeyOfHTMLElement(propKey)) {
|
|
23
|
-
const value = this.editorHtmlElement[propKey];
|
|
24
|
-
if (typeof value === "function") {
|
|
25
|
-
return value.bind(this.editorHtmlElement);
|
|
26
|
-
}
|
|
27
|
-
return value;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
set(target, propKey, value) {
|
|
31
|
-
if (this.isKeyOfCustomMethods(propKey)) {
|
|
32
|
-
this.customMethods[propKey] = value;
|
|
33
|
-
} else if (this.isKeyOfHTMLElement(propKey)) {
|
|
34
|
-
this.editorHtmlElement[propKey] = value;
|
|
35
|
-
} else {
|
|
36
|
-
target[propKey] = value;
|
|
37
|
-
}
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
isKeyOfCustomMethods(key) {
|
|
41
|
-
return key in this.customMethods;
|
|
42
|
-
}
|
|
43
|
-
isKeyOfHTMLElement(key) {
|
|
44
|
-
return key in this.editorHtmlElement;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
const handler = {
|
|
48
|
-
get(target, propKey) {
|
|
49
|
-
return target.get(target, propKey);
|
|
50
|
-
},
|
|
51
|
-
set(target, propKey, value) {
|
|
52
|
-
return target.set(target, propKey, value);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
class CustomMethods {
|
|
56
|
-
constructor(editor2) {
|
|
57
|
-
this.editor = editor2;
|
|
58
|
-
}
|
|
59
|
-
focus() {
|
|
60
|
-
ReactEditor.focus(this.editor);
|
|
61
|
-
}
|
|
62
|
-
blur() {
|
|
63
|
-
ReactEditor.blur(this.editor);
|
|
64
|
-
}
|
|
65
|
-
get value() {
|
|
66
|
-
return getFullEditorTextWithNewlines(this.editor);
|
|
67
|
-
}
|
|
68
|
-
set value(value) {
|
|
69
|
-
replaceEditorText(this.editor, value);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
const editorHtmlElement = ReactEditor.toDOMNode(editor, editor);
|
|
73
|
-
const customMethods = new CustomMethods(editor);
|
|
74
|
-
const combined = new Combined(customMethods, editorHtmlElement);
|
|
75
|
-
return new Proxy(combined, handler);
|
|
76
|
-
},
|
|
77
|
-
[editor]
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export { usePopulateCopilotTextareaRef };
|
|
82
|
-
//# sourceMappingURL=out.js.map
|
|
83
|
-
//# sourceMappingURL=chunk-YQU7WG7T.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.ts"],"names":["customMethods","editorHtmlElement","editor"],"mappings":";;;;;;;;AAAA,OAAO,WAAW;AAElB,SAAS,mBAAmB;AAMrB,SAAS,8BACd,QACA,KACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA,MAAM;AACJ,YAAM,SAAS;AAAA,QACb,YACUA,gBACAC,oBACR;AAFQ,+BAAAD;AACA,mCAAAC;AAAA,QACP;AAAA,QAIH,IAAI,QAAa,SAAsB;AACrC,cAAI,KAAK,qBAAqB,OAAO,GAAG;AACtC,kBAAM,QAAQ,KAAK,cAAc;AACjC,gBAAI,OAAO,UAAU,YAAY;AAC/B,qBAAO,MAAM,KAAK,KAAK,aAAa;AAAA,YACtC;AACA,mBAAO;AAAA,UACT,WAAW,KAAK,mBAAmB,OAAO,GAAG;AAC3C,kBAAM,QAAQ,KAAK,kBAAkB;AACrC,gBAAI,OAAO,UAAU,YAAY;AAC/B,qBAAO,MAAM,KAAK,KAAK,iBAAiB;AAAA,YAC1C;AACA,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,QAEA,IAAI,QAAa,SAAiB,OAAqB;AACrD,cAAI,KAAK,qBAAqB,OAAO,GAAG;AACtC,YAAC,KAAK,cAAsB,WAAW;AAAA,UACzC,WAAW,KAAK,mBAAmB,OAAO,GAAG;AAC3C,YAAC,KAAK,kBAA0B,WAAW;AAAA,UAC7C,OAAO;AAEL,mBAAO,WAAW;AAAA,UACpB;AACA,iBAAO;AAAA,QACT;AAAA,QAEQ,qBAAqB,KAAyC;AACpE,iBAAO,OAAO,KAAK;AAAA,QACrB;AAAA,QAEQ,mBAAmB,KAAuC;AAChE,iBAAO,OAAO,KAAK;AAAA,QACrB;AAAA,MACF;AAEA,YAAM,UAAU;AAAA,QACd,IAAI,QAAa,SAAkD;AACjE,iBAAO,OAAO,IAAI,QAAQ,OAAO;AAAA,QACnC;AAAA,QACA,IACE,QACA,SACA,OACA;AACA,iBAAO,OAAO,IAAI,QAAQ,SAAS,KAAK;AAAA,QAC1C;AAAA,MACF;AAEA,YAAM,cAAc;AAAA,QAClB,YAAoBC,SAAsB;AAAtB,wBAAAA;AAAA,QAAuB;AAAA,QAE3C,QAAQ;AACN,sBAAY,MAAM,KAAK,MAAM;AAAA,QAC/B;AAAA,QAEA,OAAO;AACL,sBAAY,KAAK,KAAK,MAAM;AAAA,QAC9B;AAAA,QAEA,IAAI,QAAQ;AACV,iBAAO,8BAA8B,KAAK,MAAM;AAAA,QAClD;AAAA,QACA,IAAI,MAAM,OAAe;AACvB,4BAAkB,KAAK,QAAQ,KAAK;AAAA,QACtC;AAAA,MACF;AAEA,YAAM,oBAAoB,YAAY,UAAU,QAAQ,MAAM;AAC9D,YAAM,gBAAgB,IAAI,cAAc,MAAM;AAE9C,YAAM,WAAW,IAAI,SAAS,eAAe,iBAAiB;AAC9D,aAAO,IAAI,MAAM,UAAU,OAAO;AAAA,IACpC;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AACF","sourcesContent":["import React from \"react\";\nimport { Editor } from \"slate\";\nimport { ReactEditor } from \"slate-react\";\nimport { getFullEditorTextWithNewlines } from \"../../lib/get-text-around-cursor\";\nimport { replaceEditorText } from \"../../lib/slatejs-edits/replace-text\";\nimport { HTMLCopilotTextAreaElement } from \"../../types\";\nimport { CustomEditor } from \"../../types/base/custom-editor\";\n\nexport function usePopulateCopilotTextareaRef(\n editor: Editor,\n ref: React.Ref<HTMLCopilotTextAreaElement>\n) {\n React.useImperativeHandle(\n ref,\n () => {\n class Combined {\n constructor(\n private customMethods: CustomMethods,\n private editorHtmlElement: HTMLElement\n ) {}\n\n [key: string]: any;\n\n get(target: any, propKey: string): any {\n if (this.isKeyOfCustomMethods(propKey)) {\n const value = this.customMethods[propKey];\n if (typeof value === \"function\") {\n return value.bind(this.customMethods);\n }\n return value;\n } else if (this.isKeyOfHTMLElement(propKey)) {\n const value = this.editorHtmlElement[propKey];\n if (typeof value === \"function\") {\n return value.bind(this.editorHtmlElement);\n }\n return value;\n }\n }\n\n set(target: any, propKey: string, value: any): boolean {\n if (this.isKeyOfCustomMethods(propKey)) {\n (this.customMethods as any)[propKey] = value;\n } else if (this.isKeyOfHTMLElement(propKey)) {\n (this.editorHtmlElement as any)[propKey] = value;\n } else {\n // Default behavior (optional)\n target[propKey] = value;\n }\n return true;\n }\n\n private isKeyOfCustomMethods(key: string): key is keyof CustomMethods {\n return key in this.customMethods;\n }\n\n private isKeyOfHTMLElement(key: string): key is keyof HTMLElement {\n return key in this.editorHtmlElement;\n }\n }\n\n const handler = {\n get(target: any, propKey: keyof CustomMethods | keyof HTMLElement) {\n return target.get(target, propKey);\n },\n set(\n target: any,\n propKey: keyof CustomMethods | keyof HTMLElement,\n value: any\n ) {\n return target.set(target, propKey, value);\n },\n };\n\n class CustomMethods {\n constructor(private editor: CustomEditor) {}\n\n focus() {\n ReactEditor.focus(this.editor);\n }\n\n blur() {\n ReactEditor.blur(this.editor);\n }\n\n get value() {\n return getFullEditorTextWithNewlines(this.editor);\n }\n set value(value: string) {\n replaceEditorText(this.editor, value);\n }\n }\n\n const editorHtmlElement = ReactEditor.toDOMNode(editor, editor);\n const customMethods = new CustomMethods(editor);\n\n const combined = new Combined(customMethods, editorHtmlElement);\n return new Proxy(combined, handler);\n },\n [editor]\n );\n}\n"]}
|
package/dist/chunk-YTOPHPSG.mjs
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Element } from 'slate';
|
|
2
|
-
|
|
3
|
-
// src/lib/editor-to-text.ts
|
|
4
|
-
function nodeChildrenToTextComponents(editor, nodes) {
|
|
5
|
-
const indeciesOfInlineElements = new Set(
|
|
6
|
-
nodes.map((node, index) => {
|
|
7
|
-
if (Element.isElement(node) && editor.isInline(node)) {
|
|
8
|
-
return index;
|
|
9
|
-
}
|
|
10
|
-
return -1;
|
|
11
|
-
}).filter((index) => index !== -1)
|
|
12
|
-
);
|
|
13
|
-
const nonIgnorableItems = nodes.filter((node, index) => {
|
|
14
|
-
const isInline = indeciesOfInlineElements.has(index);
|
|
15
|
-
if (isInline) {
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
const isNeighbourOfInline = indeciesOfInlineElements.has(index - 1) || indeciesOfInlineElements.has(index + 1);
|
|
19
|
-
if (isNeighbourOfInline) {
|
|
20
|
-
return node.text !== "";
|
|
21
|
-
}
|
|
22
|
-
return true;
|
|
23
|
-
});
|
|
24
|
-
return nonIgnorableItems.map((node) => {
|
|
25
|
-
if (Element.isElement(node)) {
|
|
26
|
-
switch (node.type) {
|
|
27
|
-
case "paragraph":
|
|
28
|
-
return nodeChildrenToTextComponents(editor, node.children);
|
|
29
|
-
case "suggestion":
|
|
30
|
-
return [];
|
|
31
|
-
}
|
|
32
|
-
} else {
|
|
33
|
-
return [node];
|
|
34
|
-
}
|
|
35
|
-
}).reduce((acc, val) => acc.concat(val), []);
|
|
36
|
-
}
|
|
37
|
-
var editorToText = (editor) => {
|
|
38
|
-
const flattened = nodeChildrenToTextComponents(editor, editor.children);
|
|
39
|
-
const text = flattened.map((textComponent) => textComponent.text).join("\n");
|
|
40
|
-
return text;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
export { editorToText };
|
|
44
|
-
//# sourceMappingURL=out.js.map
|
|
45
|
-
//# sourceMappingURL=chunk-YTOPHPSG.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/editor-to-text.ts"],"names":[],"mappings":";AAAA,SAAiC,eAAe;AAKhD,SAAS,6BACP,QACA,OACuB;AAEvB,QAAM,2BAA2B,IAAI;AAAA,IACnC,MACG,IAAI,CAAC,MAAM,UAAU;AACpB,UAAI,QAAQ,UAAU,IAAI,KAAK,OAAO,SAAS,IAAI,GAAG;AACpD,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT,CAAC,EACA,OAAO,CAAC,UAAU,UAAU,EAAE;AAAA,EACnC;AAIA,QAAM,oBAAoB,MAAM,OAAO,CAAC,MAAM,UAAU;AACtD,UAAM,WAAW,yBAAyB,IAAI,KAAK;AACnD,QAAI,UAAU;AACZ,aAAO;AAAA,IACT;AAEA,UAAM,sBACJ,yBAAyB,IAAI,QAAQ,CAAC,KACtC,yBAAyB,IAAI,QAAQ,CAAC;AACxC,QAAI,qBAAqB;AACvB,aAAQ,KAAa,SAAS;AAAA,IAChC;AAEA,WAAO;AAAA,EACT,CAAC;AAED,SAAO,kBACJ,IAAI,CAAC,SAAS;AACb,QAAI,QAAQ,UAAU,IAAI,GAAG;AAC3B,cAAQ,KAAK,MAAM;AAAA,QACjB,KAAK;AACH,iBAAO,6BAA6B,QAAQ,KAAK,QAAQ;AAAA,QAC3D,KAAK;AACH,iBAAO,CAAC;AAAA,MACZ;AAAA,IACF,OAAO;AACL,aAAO,CAAC,IAAI;AAAA,IACd;AAAA,EACF,CAAC,EACA,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC;AAC7C;AAEO,IAAM,eAAe,CAC1B,WACG;AACH,QAAM,YAAY,6BAA6B,QAAQ,OAAO,QAAQ;AAEtE,QAAM,OAAO,UAAU,IAAI,CAAC,kBAAkB,cAAc,IAAI,EAAE,KAAK,IAAI;AAE3E,SAAO;AACT","sourcesContent":["import { BaseEditor, Descendant, Element } from \"slate\";\nimport { HistoryEditor } from \"slate-history\";\nimport { ReactEditor } from \"slate-react\";\nimport { SuggestionAwareText } from \"../types/base/custom-editor\";\n\nfunction nodeChildrenToTextComponents(\n editor: BaseEditor & ReactEditor & HistoryEditor,\n nodes: Descendant[]\n): SuggestionAwareText[] {\n // find inlineable elements\n const indeciesOfInlineElements = new Set(\n nodes\n .map((node, index) => {\n if (Element.isElement(node) && editor.isInline(node)) {\n return index;\n }\n return -1;\n })\n .filter((index) => index !== -1)\n );\n\n // ignorable elements = inline elements,\n // or neighbors of inline elements that are {text: \"\"}\n const nonIgnorableItems = nodes.filter((node, index) => {\n const isInline = indeciesOfInlineElements.has(index);\n if (isInline) {\n return false;\n }\n\n const isNeighbourOfInline =\n indeciesOfInlineElements.has(index - 1) ||\n indeciesOfInlineElements.has(index + 1);\n if (isNeighbourOfInline) {\n return (node as any).text !== \"\";\n }\n\n return true;\n });\n\n return nonIgnorableItems\n .map((node) => {\n if (Element.isElement(node)) {\n switch (node.type) {\n case \"paragraph\":\n return nodeChildrenToTextComponents(editor, node.children);\n case \"suggestion\":\n return [];\n }\n } else {\n return [node];\n }\n })\n .reduce((acc, val) => acc.concat(val), []);\n}\n\nexport const editorToText = (\n editor: BaseEditor & ReactEditor & HistoryEditor\n) => {\n const flattened = nodeChildrenToTextComponents(editor, editor.children);\n\n const text = flattened.map((textComponent) => textComponent.text).join(\"\\n\");\n\n return text;\n};\n"]}
|
package/dist/chunk-YW3REYX6.mjs
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { createContext, useState, useContext } from 'react';
|
|
2
|
-
import { jsx } from 'react/jsx-runtime';
|
|
3
|
-
|
|
4
|
-
// src/components/hovering-toolbar/hovering-editor-provider.tsx
|
|
5
|
-
var HoveringEditorContext = createContext({
|
|
6
|
-
isDisplayed: false,
|
|
7
|
-
setIsDisplayed: () => {
|
|
8
|
-
}
|
|
9
|
-
});
|
|
10
|
-
var HoveringEditorProvider = ({
|
|
11
|
-
children
|
|
12
|
-
}) => {
|
|
13
|
-
const [isDisplayed, setIsDisplayed] = useState(false);
|
|
14
|
-
return /* @__PURE__ */ jsx(HoveringEditorContext.Provider, {
|
|
15
|
-
value: { isDisplayed, setIsDisplayed },
|
|
16
|
-
children
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
var useHoveringEditorContext = () => useContext(HoveringEditorContext);
|
|
20
|
-
|
|
21
|
-
export { HoveringEditorProvider, useHoveringEditorContext };
|
|
22
|
-
//# sourceMappingURL=out.js.map
|
|
23
|
-
//# sourceMappingURL=chunk-YW3REYX6.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/hovering-toolbar/hovering-editor-provider.tsx"],"names":[],"mappings":";AAAA,SAAgB,eAAe,UAAU,kBAA6B;AAsBlE;AAfJ,IAAM,wBAAwB,cAA0C;AAAA,EACtE,aAAa;AAAA,EACb,gBAAgB,MAAM;AAAA,EAAC;AACzB,CAAC;AAMM,IAAM,yBAAyB,CAAC;AAAA,EACrC;AACF,MAAmC;AACjC,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AAEpD,SACE,oBAAC,sBAAsB,UAAtB;AAAA,IAA+B,OAAO,EAAE,aAAa,eAAe;AAAA,IAClE;AAAA,GACH;AAEJ;AAEO,IAAM,2BAA2B,MAAM,WAAW,qBAAqB","sourcesContent":["import React, { createContext, useState, useContext, ReactNode } from \"react\";\n\ninterface HoveringEditorContextProps {\n isDisplayed: boolean;\n setIsDisplayed: (value: boolean) => void;\n}\n\nconst HoveringEditorContext = createContext<HoveringEditorContextProps>({\n isDisplayed: false,\n setIsDisplayed: () => {},\n});\n\ninterface HoveringEditorProviderProps {\n children: ReactNode;\n}\n\nexport const HoveringEditorProvider = ({\n children,\n}: HoveringEditorProviderProps) => {\n const [isDisplayed, setIsDisplayed] = useState(false);\n\n return (\n <HoveringEditorContext.Provider value={{ isDisplayed, setIsDisplayed }}>\n {children}\n </HoveringEditorContext.Provider>\n );\n};\n\nexport const useHoveringEditorContext = () => useContext(HoveringEditorContext);\n"]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import React__default from 'react';
|
|
2
|
-
import { EditingEditorState, Generator_InsertionOrEditingSuggestion } from '../../../types/base/autosuggestions-bare-function.js';
|
|
3
|
-
|
|
4
|
-
type State_PreSuggestion = {
|
|
5
|
-
type: "pre-suggestion";
|
|
6
|
-
};
|
|
7
|
-
interface PreSuggestionProps {
|
|
8
|
-
editorState: EditingEditorState;
|
|
9
|
-
insertionOrEditingFunction: Generator_InsertionOrEditingSuggestion;
|
|
10
|
-
onGeneratedText: (generatedText: ReadableStream<string>) => void;
|
|
11
|
-
insertionOrEditingPrompt: string;
|
|
12
|
-
setInsertionOrEditingPrompt: (value: string) => void;
|
|
13
|
-
}
|
|
14
|
-
declare const PreSuggestion: React__default.FC<PreSuggestionProps>;
|
|
15
|
-
|
|
16
|
-
export { PreSuggestion, PreSuggestionProps, State_PreSuggestion };
|
package/dist/components/hovering-toolbar/text-insertion-prompt-box/mode-pre-suggestion.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
package/dist/components/hovering-toolbar/text-insertion-prompt-box/mode-suggestion-appearing.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { FileChipPreview, IconForFilePointer, IncludedFilesPreview, SuggestionAppearing } from '../../../chunk-ITZHK3YV.mjs';
|
|
2
|
-
import '../../../chunk-ND5PXTAW.mjs';
|
|
3
|
-
import '../../../chunk-3YJ63D5D.mjs';
|
|
4
|
-
import '../../../chunk-O5OWT5GE.mjs';
|
|
5
|
-
import '../../../chunk-5EJ5XOGP.mjs';
|
|
6
|
-
import '../../../chunk-2NURR2DX.mjs';
|
|
7
|
-
import '../../../chunk-KGKLUWKW.mjs';
|
|
8
|
-
import '../../../chunk-MRXNTQOX.mjs';
|
|
9
|
-
//# sourceMappingURL=out.js.map
|
|
10
|
-
//# sourceMappingURL=mode-suggestion-appearing.mjs.map
|
package/dist/components/hovering-toolbar/text-insertion-prompt-box/mode-suggestion-appearing.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import useAutosizeTextArea from "../../../hooks/misc/use-autosize-textarea";
|
|
2
|
-
import React, { useEffect, useRef, useState } from "react";
|
|
3
|
-
import {
|
|
4
|
-
EditingEditorState,
|
|
5
|
-
Generator_InsertionOrEditingSuggestion,
|
|
6
|
-
} from "../../../types/base/autosuggestions-bare-function";
|
|
7
|
-
|
|
8
|
-
export type State_PreSuggestion = {
|
|
9
|
-
type: "pre-suggestion";
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export interface PreSuggestionProps {
|
|
13
|
-
editorState: EditingEditorState;
|
|
14
|
-
insertionOrEditingFunction: Generator_InsertionOrEditingSuggestion;
|
|
15
|
-
onGeneratedText: (generatedText: ReadableStream<string>) => void;
|
|
16
|
-
|
|
17
|
-
insertionOrEditingPrompt: string;
|
|
18
|
-
setInsertionOrEditingPrompt: (value: string) => void;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export const PreSuggestion: React.FC<PreSuggestionProps> = ({
|
|
22
|
-
editorState,
|
|
23
|
-
insertionOrEditingFunction: insertionSuggestion,
|
|
24
|
-
onGeneratedText,
|
|
25
|
-
insertionOrEditingPrompt: insertionPrompt,
|
|
26
|
-
setInsertionOrEditingPrompt: setInsertionPrompt,
|
|
27
|
-
}) => {
|
|
28
|
-
const [loading, setLoading] = useState(false);
|
|
29
|
-
|
|
30
|
-
const promptTextAreaRef = useRef<HTMLTextAreaElement>(null);
|
|
31
|
-
useAutosizeTextArea(promptTextAreaRef, insertionPrompt);
|
|
32
|
-
|
|
33
|
-
// initially focus on the prompt text area
|
|
34
|
-
useEffect(() => {
|
|
35
|
-
promptTextAreaRef.current?.focus();
|
|
36
|
-
}, []);
|
|
37
|
-
|
|
38
|
-
const generateText = async (abortSignal?: AbortSignal) => {
|
|
39
|
-
// don't generate text if the prompt is empty
|
|
40
|
-
if (!insertionPrompt.trim()) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
setLoading(true);
|
|
45
|
-
const insertionSuggestionTextStream = await insertionSuggestion(
|
|
46
|
-
editorState,
|
|
47
|
-
insertionPrompt,
|
|
48
|
-
abortSignal || new AbortController().signal
|
|
49
|
-
);
|
|
50
|
-
onGeneratedText(insertionSuggestionTextStream);
|
|
51
|
-
|
|
52
|
-
setLoading(false);
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
return (
|
|
56
|
-
<div className="flex flex-col justify-center items-start gap-2">
|
|
57
|
-
<textarea
|
|
58
|
-
ref={promptTextAreaRef}
|
|
59
|
-
value={insertionPrompt}
|
|
60
|
-
onChange={(e) => setInsertionPrompt(e.target.value)}
|
|
61
|
-
onKeyDown={(e) => {
|
|
62
|
-
if (e.key === "Enter" && e.shiftKey) {
|
|
63
|
-
e.preventDefault();
|
|
64
|
-
setInsertionPrompt(insertionPrompt + "\n");
|
|
65
|
-
} else if (e.key === "Enter") {
|
|
66
|
-
e.preventDefault();
|
|
67
|
-
generateText();
|
|
68
|
-
}
|
|
69
|
-
}}
|
|
70
|
-
placeholder="Describe the text you'd like to insert..."
|
|
71
|
-
className="w-full bg-slate-100 h-auto text-sm p-2 rounded-md resize-none overflow-visible focus:outline-none focus:ring-0 focus:border-none"
|
|
72
|
-
rows={1}
|
|
73
|
-
/>
|
|
74
|
-
<button
|
|
75
|
-
disabled={loading || !insertionPrompt.trim()}
|
|
76
|
-
onClick={() => generateText()}
|
|
77
|
-
className="w-full py-2 px-4 rounded-md text-white bg-blue-500 hover:bg-blue-700 disabled:bg-gray-400 disabled:cursor-not-allowed"
|
|
78
|
-
>
|
|
79
|
-
{loading ? "Loading..." : "Generate Text"}
|
|
80
|
-
</button>
|
|
81
|
-
</div>
|
|
82
|
-
);
|
|
83
|
-
};
|