@copilotkit/react-textarea 1.10.7-next.0 → 1.50.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -8
- package/dist/{chunk-HDBI2WN5.mjs → chunk-2IWVZ4PP.mjs} +17 -27
- package/dist/chunk-2IWVZ4PP.mjs.map +1 -0
- package/dist/{chunk-XW3ICO4S.mjs → chunk-3QJOFG3V.mjs} +1 -1
- package/dist/chunk-3QJOFG3V.mjs.map +1 -0
- package/dist/{chunk-HBWBHJ64.mjs → chunk-4VCJHANC.mjs} +9 -9
- package/dist/{chunk-7WVURIB7.mjs → chunk-5NZNJCP2.mjs} +21 -21
- package/dist/{chunk-2DF2AVDU.mjs → chunk-66KFI242.mjs} +2 -2
- package/dist/{chunk-C3PMJNQA.mjs → chunk-7VADGLV2.mjs} +6 -6
- package/dist/{chunk-RXV67GJN.mjs → chunk-DL3JWL2E.mjs} +4 -2
- package/dist/chunk-DL3JWL2E.mjs.map +1 -0
- package/dist/{chunk-7L6GIHDM.mjs → chunk-F2ULK22F.mjs} +1 -1
- package/dist/chunk-F2ULK22F.mjs.map +1 -0
- package/dist/{chunk-6SGWO63I.mjs → chunk-ISKK3RIW.mjs} +4 -4
- package/dist/chunk-JD7BAH7U.mjs +1 -0
- package/dist/{chunk-LQ2OWQU7.mjs → chunk-JLOABKLH.mjs} +2 -2
- package/dist/{chunk-LQ2OWQU7.mjs.map → chunk-JLOABKLH.mjs.map} +1 -1
- package/dist/{chunk-3PQ7GSFE.mjs → chunk-NAFNY4FL.mjs} +1 -1
- package/dist/chunk-NAFNY4FL.mjs.map +1 -0
- package/dist/{chunk-F6GMWOLE.mjs → chunk-ZQSEYPNN.mjs} +6 -25
- package/dist/chunk-ZQSEYPNN.mjs.map +1 -0
- package/dist/components/base-copilot-textarea/base-copilot-textarea.js +17 -27
- package/dist/components/base-copilot-textarea/base-copilot-textarea.js.map +1 -1
- package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +21 -21
- package/dist/components/base-copilot-textarea/render-element.d.ts +3 -2
- package/dist/components/base-copilot-textarea/render-element.js.map +1 -1
- package/dist/components/base-copilot-textarea/render-element.mjs +1 -1
- package/dist/components/base-copilot-textarea/render-placeholder.d.ts +3 -2
- package/dist/components/base-copilot-textarea/render-placeholder.js.map +1 -1
- package/dist/components/base-copilot-textarea/render-placeholder.mjs +1 -1
- package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js +1 -1
- package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js.map +1 -1
- package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs +1 -1
- package/dist/components/copilot-textarea/copilot-textarea.js +24 -48
- package/dist/components/copilot-textarea/copilot-textarea.js.map +1 -1
- package/dist/components/copilot-textarea/copilot-textarea.mjs +75 -28
- package/dist/components/copilot-textarea/copilot-textarea.mjs.map +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar-components.d.ts +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar-components.js +16 -26
- package/dist/components/hovering-toolbar/hovering-toolbar-components.js.map +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar.js +16 -26
- package/dist/components/hovering-toolbar/hovering-toolbar.js.map +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar.mjs +8 -8
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs +5 -5
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs +6 -6
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs +6 -6
- package/dist/components/index.d.ts +2 -11
- package/dist/components/index.js +25 -531
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +23 -35
- package/dist/components/ui/command.d.ts +1 -1
- package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.js +4 -20
- package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.js.map +1 -1
- package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs +1 -1
- package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.js +3 -1
- package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.js.map +1 -1
- package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs +1 -1
- package/dist/hooks/misc/use-autosize-textarea.d.ts +1 -1
- package/dist/hooks/misc/use-autosize-textarea.js.map +1 -1
- package/dist/hooks/misc/use-autosize-textarea.mjs +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +76 -368
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +27 -34
- package/dist/types/autosuggestions-config/autosuggestions-config.mjs +2 -2
- package/dist/types/autosuggestions-config/index.mjs +2 -2
- package/dist/types/index.mjs +3 -3
- package/package.json +22 -22
- package/src/components/base-copilot-textarea/render-element.tsx +2 -1
- package/src/components/base-copilot-textarea/render-placeholder.tsx +2 -1
- package/src/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.tsx +1 -1
- package/src/components/hovering-toolbar/hovering-toolbar-components.tsx +28 -40
- package/src/components/index.ts +0 -3
- package/src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx +24 -22
- package/src/hooks/make-autosuggestions-function/use-make-standard-insertion-function.tsx +2 -1
- package/src/hooks/misc/use-autosize-textarea.tsx +1 -1
- package/dist/chunk-3PQ7GSFE.mjs.map +0 -1
- package/dist/chunk-7L6GIHDM.mjs.map +0 -1
- package/dist/chunk-F6GMWOLE.mjs.map +0 -1
- package/dist/chunk-HDBI2WN5.mjs.map +0 -1
- package/dist/chunk-MMVDU6DF.mjs +0 -1
- package/dist/chunk-NZIHZWRU.mjs +0 -60
- package/dist/chunk-NZIHZWRU.mjs.map +0 -1
- package/dist/chunk-RXV67GJN.mjs.map +0 -1
- package/dist/chunk-XW3ICO4S.mjs.map +0 -1
- /package/dist/{chunk-HBWBHJ64.mjs.map → chunk-4VCJHANC.mjs.map} +0 -0
- /package/dist/{chunk-7WVURIB7.mjs.map → chunk-5NZNJCP2.mjs.map} +0 -0
- /package/dist/{chunk-2DF2AVDU.mjs.map → chunk-66KFI242.mjs.map} +0 -0
- /package/dist/{chunk-C3PMJNQA.mjs.map → chunk-7VADGLV2.mjs.map} +0 -0
- /package/dist/{chunk-6SGWO63I.mjs.map → chunk-ISKK3RIW.mjs.map} +0 -0
- /package/dist/{chunk-MMVDU6DF.mjs.map → chunk-JD7BAH7U.mjs.map} +0 -0
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BaseCopilotTextarea
|
|
3
|
-
} from "../../chunk-
|
|
4
|
-
import "../../chunk-2C7O2EVM.mjs";
|
|
3
|
+
} from "../../chunk-5NZNJCP2.mjs";
|
|
5
4
|
import "../../chunk-GQN2HYFJ.mjs";
|
|
6
|
-
import "../../chunk-
|
|
7
|
-
import "../../chunk-AJ5OMEXM.mjs";
|
|
8
|
-
import "../../chunk-DRV2FOHZ.mjs";
|
|
9
|
-
import "../../chunk-4NHVQZ67.mjs";
|
|
10
|
-
import "../../chunk-QJNFNPWH.mjs";
|
|
11
|
-
import "../../chunk-5UNJXFUO.mjs";
|
|
12
|
-
import "../../chunk-7LSRNPNI.mjs";
|
|
13
|
-
import "../../chunk-C3PMJNQA.mjs";
|
|
5
|
+
import "../../chunk-7VADGLV2.mjs";
|
|
14
6
|
import "../../chunk-L7VVZH4Q.mjs";
|
|
15
|
-
import "../../chunk-
|
|
16
|
-
import "../../chunk-
|
|
7
|
+
import "../../chunk-66KFI242.mjs";
|
|
8
|
+
import "../../chunk-4VCJHANC.mjs";
|
|
17
9
|
import "../../chunk-KMVGEY7Q.mjs";
|
|
18
|
-
import "../../chunk-
|
|
19
|
-
import "../../chunk-D47EKHIF.mjs";
|
|
20
|
-
import "../../chunk-LYB4B6MK.mjs";
|
|
21
|
-
import "../../chunk-HDBI2WN5.mjs";
|
|
10
|
+
import "../../chunk-2IWVZ4PP.mjs";
|
|
22
11
|
import "../../chunk-WGWQRALG.mjs";
|
|
12
|
+
import "../../chunk-4PDYALMP.mjs";
|
|
23
13
|
import "../../chunk-VSVQZUPW.mjs";
|
|
24
14
|
import "../../chunk-I72DKFHD.mjs";
|
|
25
|
-
import "../../chunk-
|
|
15
|
+
import "../../chunk-D47EKHIF.mjs";
|
|
16
|
+
import "../../chunk-2C7O2EVM.mjs";
|
|
17
|
+
import "../../chunk-NAFNY4FL.mjs";
|
|
18
|
+
import "../../chunk-F2ULK22F.mjs";
|
|
19
|
+
import "../../chunk-3QJOFG3V.mjs";
|
|
20
|
+
import "../../chunk-JLOABKLH.mjs";
|
|
21
|
+
import "../../chunk-7LSRNPNI.mjs";
|
|
22
|
+
import "../../chunk-LYB4B6MK.mjs";
|
|
26
23
|
import "../../chunk-2QDCE7PD.mjs";
|
|
27
|
-
import "../../chunk-YLFAIYRY.mjs";
|
|
28
24
|
import "../../chunk-WJHSY5T6.mjs";
|
|
29
25
|
import "../../chunk-F6RLSVG3.mjs";
|
|
30
|
-
import "../../chunk-
|
|
31
|
-
import "../../chunk-
|
|
32
|
-
import "../../chunk-
|
|
26
|
+
import "../../chunk-23Q6A46J.mjs";
|
|
27
|
+
import "../../chunk-AJ5OMEXM.mjs";
|
|
28
|
+
import "../../chunk-YLFAIYRY.mjs";
|
|
29
|
+
import "../../chunk-DRV2FOHZ.mjs";
|
|
30
|
+
import "../../chunk-4NHVQZ67.mjs";
|
|
31
|
+
import "../../chunk-QJNFNPWH.mjs";
|
|
32
|
+
import "../../chunk-5UNJXFUO.mjs";
|
|
33
33
|
import "../../chunk-DFTV4TST.mjs";
|
|
34
34
|
import "../../chunk-T6MTDQZ7.mjs";
|
|
35
35
|
import "../../chunk-ECR45NSD.mjs";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RenderElementProps } from 'slate-react';
|
|
2
|
+
import React__default from 'react';
|
|
2
3
|
|
|
3
|
-
type RenderElementFunction = (props: RenderElementProps) => JSX.Element;
|
|
4
|
-
declare function makeRenderElementFunction(suggestionsStyle:
|
|
4
|
+
type RenderElementFunction = (props: RenderElementProps) => React__default.JSX.Element;
|
|
5
|
+
declare function makeRenderElementFunction(suggestionsStyle: React__default.CSSProperties): RenderElementFunction;
|
|
5
6
|
|
|
6
7
|
export { RenderElementFunction, makeRenderElementFunction };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/base-copilot-textarea/render-element.tsx"],"sourcesContent":["import { RenderElementProps } from \"slate-react\";\n\nexport type RenderElementFunction = (props: RenderElementProps) => JSX.Element;\n\nexport function makeRenderElementFunction(\n suggestionsStyle: React.CSSProperties,\n): RenderElementFunction {\n return (props: RenderElementProps) => {\n switch (props.element.type) {\n case \"paragraph\":\n return <DefaultElement {...props} />;\n case \"suggestion\":\n return <SuggestionElement {...props} suggestionsStyle={suggestionsStyle} />;\n }\n };\n}\n\nconst DefaultElement = (props: RenderElementProps) => {\n return <div {...props.attributes}>{props.children}</div>;\n};\nconst SuggestionElement = (\n props: RenderElementProps & {\n suggestionsStyle: React.CSSProperties;\n },\n) => {\n return (\n <span\n {...props.attributes}\n style={{\n ...props.suggestionsStyle,\n }}\n data-testid=\"suggestion\"\n contentEditable={false}\n >\n {props.children /* https://github.com/ianstormtaylor/slate/issues/3930 */}\n {props.element.type === \"suggestion\" && props.element.content}\n </span>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/base-copilot-textarea/render-element.tsx"],"sourcesContent":["import { RenderElementProps } from \"slate-react\";\nimport React from \"react\";\n\nexport type RenderElementFunction = (props: RenderElementProps) => React.JSX.Element;\n\nexport function makeRenderElementFunction(\n suggestionsStyle: React.CSSProperties,\n): RenderElementFunction {\n return (props: RenderElementProps) => {\n switch (props.element.type) {\n case \"paragraph\":\n return <DefaultElement {...props} />;\n case \"suggestion\":\n return <SuggestionElement {...props} suggestionsStyle={suggestionsStyle} />;\n }\n };\n}\n\nconst DefaultElement = (props: RenderElementProps) => {\n return <div {...props.attributes}>{props.children}</div>;\n};\nconst SuggestionElement = (\n props: RenderElementProps & {\n suggestionsStyle: React.CSSProperties;\n },\n) => {\n return (\n <span\n {...props.attributes}\n style={{\n ...props.suggestionsStyle,\n }}\n data-testid=\"suggestion\"\n contentEditable={false}\n >\n {props.children /* https://github.com/ianstormtaylor/slate/issues/3930 */}\n {props.element.type === \"suggestion\" && props.element.content}\n </span>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAWe;AANR,SAAS,0BACd,kBACuB;AACvB,SAAO,CAAC,UAA8B;AACpC,YAAQ,MAAM,QAAQ,MAAM;AAAA,MAC1B,KAAK;AACH,eAAO,4CAAC,mCAAmB,MAAO;AAAA,MACpC,KAAK;AACH,eAAO,4CAAC,oDAAsB,QAAtB,EAA6B,mBAAoC;AAAA,IAC7E;AAAA,EACF;AACF;AAEA,IAAM,iBAAiB,CAAC,UAA8B;AACpD,SAAO,4CAAC,wCAAQ,MAAM,aAAd,EAA2B,gBAAM,WAAS;AACpD;AACA,IAAM,oBAAoB,CACxB,UAGG;AACH,SACE;AAAA,IAAC;AAAA,qCACK,MAAM,aADX;AAAA,MAEC,OAAO,mBACF,MAAM;AAAA,MAEX,eAAY;AAAA,MACZ,iBAAiB;AAAA,MAEhB;AAAA,cAAM;AAAA,QACN,MAAM,QAAQ,SAAS,gBAAgB,MAAM,QAAQ;AAAA;AAAA;AAAA,EACxD;AAEJ;","names":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RenderPlaceholderProps } from 'slate-react';
|
|
2
|
+
import React__default from 'react';
|
|
2
3
|
|
|
3
|
-
type RenderPlaceholderFunction = (props: RenderPlaceholderProps) => JSX.Element;
|
|
4
|
-
declare function makeRenderPlaceholderFunction(placeholderStyle?:
|
|
4
|
+
type RenderPlaceholderFunction = (props: RenderPlaceholderProps) => React__default.JSX.Element;
|
|
5
|
+
declare function makeRenderPlaceholderFunction(placeholderStyle?: React__default.CSSProperties): RenderPlaceholderFunction;
|
|
5
6
|
|
|
6
7
|
export { RenderPlaceholderFunction, makeRenderPlaceholderFunction };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/base-copilot-textarea/render-placeholder.tsx"],"sourcesContent":["import { RenderPlaceholderProps } from \"slate-react\";\n\nexport type RenderPlaceholderFunction = (props: RenderPlaceholderProps) => JSX.Element;\n\nexport function makeRenderPlaceholderFunction(\n placeholderStyle?: React.CSSProperties,\n): RenderPlaceholderFunction {\n return (props: RenderPlaceholderProps) => {\n const { style, ...restAttributes } = props.attributes;\n\n return (\n <div\n {...restAttributes}\n style={{\n ...style,\n ...placeholderStyle,\n }}\n >\n {props.children}\n </div>\n );\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/base-copilot-textarea/render-placeholder.tsx"],"sourcesContent":["import { RenderPlaceholderProps } from \"slate-react\";\nimport React from \"react\";\n\nexport type RenderPlaceholderFunction = (props: RenderPlaceholderProps) => React.JSX.Element;\n\nexport function makeRenderPlaceholderFunction(\n placeholderStyle?: React.CSSProperties,\n): RenderPlaceholderFunction {\n return (props: RenderPlaceholderProps) => {\n const { style, ...restAttributes } = props.attributes;\n\n return (\n <div\n {...restAttributes}\n style={{\n ...style,\n ...placeholderStyle,\n }}\n >\n {props.children}\n </div>\n );\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAYM;AAPC,SAAS,8BACd,kBAC2B;AAC3B,SAAO,CAAC,UAAkC;AACxC,UAAqC,WAAM,YAAnC,QATZ,IASyC,IAAnB,2BAAmB,IAAnB,CAAV;AAER,WACE;AAAA,MAAC;AAAA,uCACK,iBADL;AAAA,QAEC,OAAO,kCACF,QACA;AAAA,QAGJ,gBAAM;AAAA;AAAA,IACT;AAAA,EAEJ;AACF;","names":[]}
|
|
@@ -99,7 +99,7 @@ var isSelectionEqual = (a, b) => {
|
|
|
99
99
|
return import_slate2.Range.equals(a, b);
|
|
100
100
|
};
|
|
101
101
|
function usePrevious(value) {
|
|
102
|
-
const ref = (0, import_react.useRef)();
|
|
102
|
+
const ref = (0, import_react.useRef)(void 0);
|
|
103
103
|
(0, import_react.useEffect)(() => {
|
|
104
104
|
ref.current = value;
|
|
105
105
|
});
|
package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.tsx","../../../src/lib/editor-to-text.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { BaseSelection } from \"slate\";\nimport { useSlateSelector } from \"slate-react\";\nimport { Range } from \"slate\";\nimport { editorToText } from \"../../lib/editor-to-text\";\n\ninterface TrackerTextEditedSinceLastCursorMovementProps {\n setCursorMovedSinceLastTextChange: (value: boolean) => void;\n}\nexport function TrackerTextEditedSinceLastCursorMovement(\n props: TrackerTextEditedSinceLastCursorMovementProps,\n) {\n const cursorState: RelevantEditorState = useSlateSelector((state) => ({\n selection: state.selection,\n text: editorToText(state),\n }));\n\n const previousState = usePrevious(cursorState);\n\n useEffect(() => {\n if (!previousState) {\n return;\n }\n\n if (cursorChangedWithoutTextChanged(previousState, cursorState)) {\n props.setCursorMovedSinceLastTextChange(true);\n }\n }, [props.setCursorMovedSinceLastTextChange, cursorState]);\n\n return <></>;\n}\n\ntype RelevantEditorState = {\n selection: BaseSelection;\n text: string;\n};\n\nconst cursorChangedWithoutTextChanged = (\n prev: RelevantEditorState,\n next: RelevantEditorState,\n): boolean => {\n // Check if the selection has changed\n const isSelectionChanged = !isSelectionEqual(prev.selection, next.selection);\n\n // Check if the text content remains the same\n const isTextSame = prev.text === next.text;\n\n return isSelectionChanged && isTextSame;\n};\n\nconst isSelectionEqual = (a: BaseSelection, b: BaseSelection) => {\n if (!a && !b) return true;\n if (!a || !b) return false;\n return Range.equals(a, b);\n};\n\n/**\n * Easily keep track of the *previous* value of a variable.\n *\n * Example:\n * ```\n * const [count, setCount] = useState(0);\n * const prevCount = usePrevious(count);\n *\n * useEffect(() => {\n * if (count > prevCount) {\n * console.log('Now I know that count is bigger than before');\n * }\n * }, [count, prevCount]);\n * ```\n */\nfunction usePrevious<T>(value: T): T | undefined {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n });\n\n return ref.current;\n}\n","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) || 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 = (editor: BaseEditor & ReactEditor & HistoryEditor) => {\n const flattened = nodeChildrenToTextComponents(editor, editor.children);\n\n const text = flattened.map((textComponent) => textComponent.text).join(\"\\n\");\n\n return text;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkC;AAElC,yBAAiC;AACjC,IAAAA,gBAAsB;;;ACHtB,mBAAgD;AAKhD,SAAS,6BACP,QACA,OACuB;AAEvB,QAAM,2BAA2B,IAAI;AAAA,IACnC,MACG,IAAI,CAAC,MAAM,UAAU;AACpB,UAAI,qBAAQ,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,KAAK,yBAAyB,IAAI,QAAQ,CAAC;AACnF,QAAI,qBAAqB;AACvB,aAAQ,KAAa,SAAS;AAAA,IAChC;AAEA,WAAO;AAAA,EACT,CAAC;AAED,SAAO,kBACJ,IAAI,CAAC,SAAS;AACb,QAAI,qBAAQ,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,CAAC,WAAqD;AAChF,QAAM,YAAY,6BAA6B,QAAQ,OAAO,QAAQ;AAEtE,QAAM,OAAO,UAAU,IAAI,CAAC,kBAAkB,cAAc,IAAI,EAAE,KAAK,IAAI;AAE3E,SAAO;AACT;;;AD/BS;AApBF,SAAS,yCACd,OACA;AACA,QAAM,kBAAmC,qCAAiB,CAAC,WAAW;AAAA,IACpE,WAAW,MAAM;AAAA,IACjB,MAAM,aAAa,KAAK;AAAA,EAC1B,EAAE;AAEF,QAAM,gBAAgB,YAAY,WAAW;AAE7C,8BAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,QAAI,gCAAgC,eAAe,WAAW,GAAG;AAC/D,YAAM,kCAAkC,IAAI;AAAA,IAC9C;AAAA,EACF,GAAG,CAAC,MAAM,mCAAmC,WAAW,CAAC;AAEzD,SAAO,2EAAE;AACX;AAOA,IAAM,kCAAkC,CACtC,MACA,SACY;AAEZ,QAAM,qBAAqB,CAAC,iBAAiB,KAAK,WAAW,KAAK,SAAS;AAG3E,QAAM,aAAa,KAAK,SAAS,KAAK;AAEtC,SAAO,sBAAsB;AAC/B;AAEA,IAAM,mBAAmB,CAAC,GAAkB,MAAqB;AAC/D,MAAI,CAAC,KAAK,CAAC;AAAG,WAAO;AACrB,MAAI,CAAC,KAAK,CAAC;AAAG,WAAO;AACrB,SAAO,oBAAM,OAAO,GAAG,CAAC;AAC1B;AAiBA,SAAS,YAAe,OAAyB;AAC/C,QAAM,UAAM,qBAAU;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.tsx","../../../src/lib/editor-to-text.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { BaseSelection } from \"slate\";\nimport { useSlateSelector } from \"slate-react\";\nimport { Range } from \"slate\";\nimport { editorToText } from \"../../lib/editor-to-text\";\n\ninterface TrackerTextEditedSinceLastCursorMovementProps {\n setCursorMovedSinceLastTextChange: (value: boolean) => void;\n}\nexport function TrackerTextEditedSinceLastCursorMovement(\n props: TrackerTextEditedSinceLastCursorMovementProps,\n) {\n const cursorState: RelevantEditorState = useSlateSelector((state) => ({\n selection: state.selection,\n text: editorToText(state),\n }));\n\n const previousState = usePrevious(cursorState);\n\n useEffect(() => {\n if (!previousState) {\n return;\n }\n\n if (cursorChangedWithoutTextChanged(previousState, cursorState)) {\n props.setCursorMovedSinceLastTextChange(true);\n }\n }, [props.setCursorMovedSinceLastTextChange, cursorState]);\n\n return <></>;\n}\n\ntype RelevantEditorState = {\n selection: BaseSelection;\n text: string;\n};\n\nconst cursorChangedWithoutTextChanged = (\n prev: RelevantEditorState,\n next: RelevantEditorState,\n): boolean => {\n // Check if the selection has changed\n const isSelectionChanged = !isSelectionEqual(prev.selection, next.selection);\n\n // Check if the text content remains the same\n const isTextSame = prev.text === next.text;\n\n return isSelectionChanged && isTextSame;\n};\n\nconst isSelectionEqual = (a: BaseSelection, b: BaseSelection) => {\n if (!a && !b) return true;\n if (!a || !b) return false;\n return Range.equals(a, b);\n};\n\n/**\n * Easily keep track of the *previous* value of a variable.\n *\n * Example:\n * ```\n * const [count, setCount] = useState(0);\n * const prevCount = usePrevious(count);\n *\n * useEffect(() => {\n * if (count > prevCount) {\n * console.log('Now I know that count is bigger than before');\n * }\n * }, [count, prevCount]);\n * ```\n */\nfunction usePrevious<T>(value: T): T | undefined {\n const ref = useRef<T>(undefined!);\n\n useEffect(() => {\n ref.current = value;\n });\n\n return ref.current;\n}\n","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) || 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 = (editor: BaseEditor & ReactEditor & HistoryEditor) => {\n const flattened = nodeChildrenToTextComponents(editor, editor.children);\n\n const text = flattened.map((textComponent) => textComponent.text).join(\"\\n\");\n\n return text;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkC;AAElC,yBAAiC;AACjC,IAAAA,gBAAsB;;;ACHtB,mBAAgD;AAKhD,SAAS,6BACP,QACA,OACuB;AAEvB,QAAM,2BAA2B,IAAI;AAAA,IACnC,MACG,IAAI,CAAC,MAAM,UAAU;AACpB,UAAI,qBAAQ,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,KAAK,yBAAyB,IAAI,QAAQ,CAAC;AACnF,QAAI,qBAAqB;AACvB,aAAQ,KAAa,SAAS;AAAA,IAChC;AAEA,WAAO;AAAA,EACT,CAAC;AAED,SAAO,kBACJ,IAAI,CAAC,SAAS;AACb,QAAI,qBAAQ,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,CAAC,WAAqD;AAChF,QAAM,YAAY,6BAA6B,QAAQ,OAAO,QAAQ;AAEtE,QAAM,OAAO,UAAU,IAAI,CAAC,kBAAkB,cAAc,IAAI,EAAE,KAAK,IAAI;AAE3E,SAAO;AACT;;;AD/BS;AApBF,SAAS,yCACd,OACA;AACA,QAAM,kBAAmC,qCAAiB,CAAC,WAAW;AAAA,IACpE,WAAW,MAAM;AAAA,IACjB,MAAM,aAAa,KAAK;AAAA,EAC1B,EAAE;AAEF,QAAM,gBAAgB,YAAY,WAAW;AAE7C,8BAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB;AAAA,IACF;AAEA,QAAI,gCAAgC,eAAe,WAAW,GAAG;AAC/D,YAAM,kCAAkC,IAAI;AAAA,IAC9C;AAAA,EACF,GAAG,CAAC,MAAM,mCAAmC,WAAW,CAAC;AAEzD,SAAO,2EAAE;AACX;AAOA,IAAM,kCAAkC,CACtC,MACA,SACY;AAEZ,QAAM,qBAAqB,CAAC,iBAAiB,KAAK,WAAW,KAAK,SAAS;AAG3E,QAAM,aAAa,KAAK,SAAS,KAAK;AAEtC,SAAO,sBAAsB;AAC/B;AAEA,IAAM,mBAAmB,CAAC,GAAkB,MAAqB;AAC/D,MAAI,CAAC,KAAK,CAAC;AAAG,WAAO;AACrB,MAAI,CAAC,KAAK,CAAC;AAAG,WAAO;AACrB,SAAO,oBAAM,OAAO,GAAG,CAAC;AAC1B;AAiBA,SAAS,YAAe,OAAyB;AAC/C,QAAM,UAAM,qBAAU,MAAU;AAEhC,8BAAU,MAAM;AACd,QAAI,UAAU;AAAA,EAChB,CAAC;AAED,SAAO,IAAI;AACb;","names":["import_slate"]}
|
|
@@ -107,7 +107,9 @@ function retry(fn, retriesLeft = 2, interval = 200, backoff = 1.5) {
|
|
|
107
107
|
// src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx
|
|
108
108
|
var import_runtime_client_gql = require("@copilotkit/runtime-client-gql");
|
|
109
109
|
function useMakeStandardAutosuggestionFunction(textareaPurpose, contextCategories, apiConfig) {
|
|
110
|
-
const
|
|
110
|
+
const runtimeClient = { generateCopilotResponse: (...args) => {
|
|
111
|
+
} };
|
|
112
|
+
const { getContextString, copilotApiConfig } = (0, import_react_core.useCopilotContext)();
|
|
111
113
|
const { chatApiEndpoint: url, publicApiKey, credentials, properties } = copilotApiConfig;
|
|
112
114
|
const headers = __spreadValues(__spreadValues({}, copilotApiConfig.headers), publicApiKey ? { [import_shared.COPILOT_CLOUD_PUBLIC_API_KEY_HEADER]: publicApiKey } : {});
|
|
113
115
|
const { maxTokens, stop, temperature = 0 } = apiConfig;
|
|
@@ -137,25 +139,7 @@ function useMakeStandardAutosuggestionFunction(textareaPurpose, contextCategorie
|
|
|
137
139
|
content: `<TextBeforeCursor>${editorState2.textBeforeCursor}</TextBeforeCursor>`
|
|
138
140
|
})
|
|
139
141
|
].filter(Boolean);
|
|
140
|
-
const response =
|
|
141
|
-
data: {
|
|
142
|
-
frontend: {
|
|
143
|
-
actions: [],
|
|
144
|
-
url: window.location.href
|
|
145
|
-
},
|
|
146
|
-
messages: (0, import_runtime_client_gql.convertMessagesToGqlInput)((0, import_runtime_client_gql.filterAgentStateMessages)(messages)),
|
|
147
|
-
metadata: {
|
|
148
|
-
requestType: import_runtime_client_gql.CopilotRequestType.TextareaCompletion
|
|
149
|
-
},
|
|
150
|
-
forwardedParameters: {
|
|
151
|
-
maxTokens,
|
|
152
|
-
stop,
|
|
153
|
-
temperature
|
|
154
|
-
}
|
|
155
|
-
},
|
|
156
|
-
properties,
|
|
157
|
-
signal: abortSignal
|
|
158
|
-
}).toPromise();
|
|
142
|
+
const response = {};
|
|
159
143
|
let result = "";
|
|
160
144
|
for (const message of (0, import_runtime_client_gql.convertGqlOutputToMessages)(
|
|
161
145
|
(_c = (_b = (_a = response.data) == null ? void 0 : _a.generateCopilotResponse) == null ? void 0 : _b.messages) != null ? _c : []
|
|
@@ -985,32 +969,22 @@ var import_css = require("@emotion/css");
|
|
|
985
969
|
var import_react6 = __toESM(require("react"));
|
|
986
970
|
var import_react_dom = __toESM(require("react-dom"));
|
|
987
971
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
988
|
-
var Button = import_react6.default.forwardRef(
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
className,
|
|
1005
|
-
import_css.css`
|
|
1006
|
-
cursor: pointer;
|
|
1007
|
-
color: ${reversed ? active ? "white" : "#aaa" : active ? "black" : "#ccc"};
|
|
1008
|
-
`
|
|
1009
|
-
)
|
|
1010
|
-
})
|
|
1011
|
-
);
|
|
1012
|
-
}
|
|
1013
|
-
);
|
|
972
|
+
var Button = import_react6.default.forwardRef((_a, ref) => {
|
|
973
|
+
var _b = _a, { className, active, reversed } = _b, props = __objRest(_b, ["className", "active", "reversed"]);
|
|
974
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
975
|
+
"span",
|
|
976
|
+
__spreadProps(__spreadValues({}, props), {
|
|
977
|
+
ref,
|
|
978
|
+
className: (0, import_css.cx)(
|
|
979
|
+
className,
|
|
980
|
+
import_css.css`
|
|
981
|
+
cursor: pointer;
|
|
982
|
+
color: ${reversed ? active ? "white" : "#aaa" : active ? "black" : "#ccc"};
|
|
983
|
+
`
|
|
984
|
+
)
|
|
985
|
+
})
|
|
986
|
+
);
|
|
987
|
+
});
|
|
1014
988
|
var Icon = import_react6.default.forwardRef(
|
|
1015
989
|
(_a, ref) => {
|
|
1016
990
|
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
@@ -1875,7 +1849,7 @@ var isSelectionEqual = (a, b) => {
|
|
|
1875
1849
|
return import_slate9.Range.equals(a, b);
|
|
1876
1850
|
};
|
|
1877
1851
|
function usePrevious(value) {
|
|
1878
|
-
const ref = (0, import_react12.useRef)();
|
|
1852
|
+
const ref = (0, import_react12.useRef)(void 0);
|
|
1879
1853
|
(0, import_react12.useEffect)(() => {
|
|
1880
1854
|
ref.current = value;
|
|
1881
1855
|
});
|
|
@@ -2099,7 +2073,9 @@ var import_react_core5 = require("@copilotkit/react-core");
|
|
|
2099
2073
|
var import_react14 = require("react");
|
|
2100
2074
|
var import_runtime_client_gql5 = require("@copilotkit/runtime-client-gql");
|
|
2101
2075
|
function useMakeStandardInsertionOrEditingFunction(textareaPurpose, contextCategories, insertionApiConfig, editingApiConfig) {
|
|
2102
|
-
const
|
|
2076
|
+
const runtimeClient = { generateCopilotResponse: (...args) => {
|
|
2077
|
+
} };
|
|
2078
|
+
const { getContextString, copilotApiConfig } = (0, import_react_core5.useCopilotContext)();
|
|
2103
2079
|
const headers = __spreadValues({}, copilotApiConfig.publicApiKey ? { [import_shared3.COPILOT_CLOUD_PUBLIC_API_KEY_HEADER]: copilotApiConfig.publicApiKey } : {});
|
|
2104
2080
|
function runtimeClientResponseToStringStream(responsePromise) {
|
|
2105
2081
|
return __async(this, null, function* () {
|