@copilotkit/react-textarea 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +192 -116
- package/CHANGELOG.md +12 -0
- package/dist/{chunk-JJASB23A.mjs → chunk-24IOWJS4.mjs} +2 -2
- package/dist/chunk-24IOWJS4.mjs.map +1 -0
- package/dist/{chunk-X4FJ6WVZ.mjs → chunk-3UQM3NLM.mjs} +1 -1
- package/dist/chunk-3UQM3NLM.mjs.map +1 -0
- package/dist/{chunk-RVJAOO4S.mjs → chunk-4XYYSJ5C.mjs} +1 -1
- package/dist/{chunk-RVJAOO4S.mjs.map → chunk-4XYYSJ5C.mjs.map} +1 -1
- package/dist/{chunk-5SJM4R4K.mjs → chunk-6LKDH2UJ.mjs} +2 -2
- package/dist/chunk-6LKDH2UJ.mjs.map +1 -0
- package/dist/{chunk-Y5BUWZOI.mjs → chunk-6Q4X3YEO.mjs} +1 -1
- package/dist/chunk-6Q4X3YEO.mjs.map +1 -0
- package/dist/{chunk-L24ZN4LL.mjs → chunk-6SYD77G6.mjs} +1 -1
- package/dist/chunk-6SYD77G6.mjs.map +1 -0
- package/dist/chunk-AZQCUNBV.mjs +3 -0
- package/dist/{chunk-GOAPCQCR.mjs → chunk-CHK3DSAA.mjs} +9 -9
- package/dist/chunk-CHK3DSAA.mjs.map +1 -0
- package/dist/chunk-FD6FGKYY.mjs +3 -0
- package/dist/chunk-MMVDU6DF.mjs +3 -0
- package/dist/{chunk-KKG2RK2T.mjs → chunk-OELUUJZY.mjs} +1 -1
- package/dist/chunk-OELUUJZY.mjs.map +1 -0
- package/dist/chunk-RJDWVMCN.mjs +85 -0
- package/dist/chunk-RJDWVMCN.mjs.map +1 -0
- package/dist/{chunk-4LJAS777.mjs → chunk-UW3ITU2Y.mjs} +2 -2
- package/dist/chunk-UW3ITU2Y.mjs.map +1 -0
- package/dist/chunk-VF6DFXKX.mjs +25 -0
- package/dist/chunk-VF6DFXKX.mjs.map +1 -0
- package/dist/chunk-WJHSY5T6.mjs +3 -0
- package/dist/{chunk-ETGKLURC.mjs → chunk-WJYQWL4I.mjs} +1 -1
- package/dist/chunk-WJYQWL4I.mjs.map +1 -0
- package/dist/chunk-ZPACRCJ6.mjs +69 -0
- package/dist/chunk-ZPACRCJ6.mjs.map +1 -0
- package/dist/components/{copilot-textarea/base-copilot-textarea → base-copilot-textarea}/base-copilot-textarea.d.ts +2 -2
- package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +18 -0
- package/dist/components/base-copilot-textarea/render-element.mjs +4 -0
- package/dist/components/base-copilot-textarea/render-placeholder.mjs +4 -0
- package/dist/components/copilot-textarea/copilot-textarea.d.ts +15 -0
- package/dist/components/copilot-textarea/copilot-textarea.mjs +22 -0
- package/dist/components/index.d.ts +6 -3
- package/dist/components/index.mjs +16 -11
- package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts +23 -0
- package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs +4 -0
- package/dist/hooks/use-autosuggestions.d.ts +3 -3
- package/dist/hooks/use-autosuggestions.mjs +2 -2
- package/dist/hooks/use-copilot-textarea-editor.d.ts +1 -1
- package/dist/hooks/use-copilot-textarea-editor.mjs +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.mjs +18 -13
- package/dist/lib/editor-to-text.mjs.map +1 -1
- package/dist/lib/get-text-around-cursor.d.ts +1 -1
- package/dist/lib/get-text-around-cursor.mjs +1 -1
- package/dist/lib/slatejs-edits/add-autocompletions.d.ts +1 -1
- package/dist/lib/slatejs-edits/add-autocompletions.mjs +1 -1
- package/dist/lib/slatejs-edits/clear-autocompletions.d.ts +1 -1
- package/dist/lib/slatejs-edits/clear-autocompletions.mjs +1 -1
- package/dist/lib/slatejs-edits/with-partial-history.d.ts +1 -1
- package/dist/types/base/autosuggestions-bare-function.mjs.map +1 -0
- package/dist/types/base/base-autosuggestions-config.mjs +4 -0
- package/dist/types/base/base-autosuggestions-config.mjs.map +1 -0
- package/dist/types/base/custom-editor.mjs.map +1 -0
- package/dist/types/base/editor-autocomplete-state.mjs +5 -0
- package/dist/types/base/editor-autocomplete-state.mjs.map +1 -0
- package/dist/types/base/index.d.ts +2 -0
- package/dist/types/base/index.mjs +5 -0
- package/dist/types/base/index.mjs.map +1 -0
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.mjs +5 -2
- package/dist/types/standard-autosuggestions/autosuggestions-config.d.ts +18 -0
- package/dist/types/standard-autosuggestions/autosuggestions-config.mjs +6 -0
- package/dist/types/standard-autosuggestions/autosuggestions-config.mjs.map +1 -0
- package/dist/types/standard-autosuggestions/index.d.ts +3 -0
- package/dist/types/standard-autosuggestions/index.mjs +7 -0
- package/dist/types/standard-autosuggestions/index.mjs.map +1 -0
- package/dist/types/standard-autosuggestions/minimal-chat-gpt-message.d.ts +7 -0
- package/dist/types/standard-autosuggestions/minimal-chat-gpt-message.mjs +3 -0
- package/dist/types/standard-autosuggestions/minimal-chat-gpt-message.mjs.map +1 -0
- package/package.json +4 -3
- package/src/components/{copilot-textarea/base-copilot-textarea → base-copilot-textarea}/base-copilot-textarea.tsx +9 -9
- package/src/components/copilot-textarea/copilot-textarea.tsx +40 -0
- package/src/components/index.ts +5 -2
- package/src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx +101 -0
- package/src/hooks/use-autosuggestions.ts +3 -3
- package/src/hooks/use-copilot-textarea-editor.tsx +1 -1
- package/src/lib/editor-to-text.ts +1 -1
- package/src/lib/get-text-around-cursor.ts +1 -1
- package/src/lib/slatejs-edits/add-autocompletions.ts +1 -1
- package/src/lib/slatejs-edits/clear-autocompletions.ts +1 -1
- package/src/types/{editor-autocomplete-state.ts → base/editor-autocomplete-state.ts} +1 -1
- package/src/types/base/index.ts +4 -0
- package/src/types/index.ts +2 -4
- package/src/types/standard-autosuggestions/autosuggestions-config.tsx +94 -0
- package/src/types/standard-autosuggestions/index.ts +11 -0
- package/src/types/standard-autosuggestions/minimal-chat-gpt-message.tsx +5 -0
- package/dist/chunk-4LJAS777.mjs.map +0 -1
- package/dist/chunk-5SJM4R4K.mjs.map +0 -1
- package/dist/chunk-ETGKLURC.mjs.map +0 -1
- package/dist/chunk-GOAPCQCR.mjs.map +0 -1
- package/dist/chunk-JD7BAH7U.mjs +0 -3
- package/dist/chunk-JJASB23A.mjs.map +0 -1
- package/dist/chunk-KKG2RK2T.mjs.map +0 -1
- package/dist/chunk-L24ZN4LL.mjs.map +0 -1
- package/dist/chunk-X4FJ6WVZ.mjs.map +0 -1
- package/dist/chunk-Y5BUWZOI.mjs.map +0 -1
- package/dist/chunk-YPBKY4KY.mjs +0 -3
- package/dist/components/copilot-textarea/base-copilot-textarea/base-copilot-textarea.mjs +0 -17
- package/dist/components/copilot-textarea/base-copilot-textarea/render-element.mjs +0 -4
- package/dist/components/copilot-textarea/base-copilot-textarea/render-placeholder.mjs +0 -4
- package/dist/types/base-autosuggestions-config.mjs +0 -4
- package/dist/types/editor-autocomplete-state.mjs +0 -5
- /package/dist/{chunk-JD7BAH7U.mjs.map → chunk-AZQCUNBV.mjs.map} +0 -0
- /package/dist/{chunk-YPBKY4KY.mjs.map → chunk-FD6FGKYY.mjs.map} +0 -0
- /package/dist/{components/copilot-textarea/base-copilot-textarea/base-copilot-textarea.mjs.map → chunk-MMVDU6DF.mjs.map} +0 -0
- /package/dist/{components/copilot-textarea/base-copilot-textarea/render-element.mjs.map → chunk-WJHSY5T6.mjs.map} +0 -0
- /package/dist/components/{copilot-textarea/base-copilot-textarea/render-placeholder.mjs.map → base-copilot-textarea/base-copilot-textarea.mjs.map} +0 -0
- /package/dist/components/{copilot-textarea/base-copilot-textarea → base-copilot-textarea}/render-element.d.ts +0 -0
- /package/dist/{types/autosuggestion-state.mjs.map → components/base-copilot-textarea/render-element.mjs.map} +0 -0
- /package/dist/components/{copilot-textarea/base-copilot-textarea → base-copilot-textarea}/render-placeholder.d.ts +0 -0
- /package/dist/{types/autosuggestions-bare-function.mjs.map → components/base-copilot-textarea/render-placeholder.mjs.map} +0 -0
- /package/dist/{types/base-autosuggestions-config.mjs.map → components/copilot-textarea/copilot-textarea.mjs.map} +0 -0
- /package/dist/{types/custom-editor.mjs.map → hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map} +0 -0
- /package/dist/types/{autosuggestion-state.d.ts → base/autosuggestion-state.d.ts} +0 -0
- /package/dist/types/{autosuggestion-state.mjs → base/autosuggestion-state.mjs} +0 -0
- /package/dist/types/{editor-autocomplete-state.mjs.map → base/autosuggestion-state.mjs.map} +0 -0
- /package/dist/types/{autosuggestions-bare-function.d.ts → base/autosuggestions-bare-function.d.ts} +0 -0
- /package/dist/types/{autosuggestions-bare-function.mjs → base/autosuggestions-bare-function.mjs} +0 -0
- /package/dist/types/{base-autosuggestions-config.d.ts → base/base-autosuggestions-config.d.ts} +0 -0
- /package/dist/types/{custom-editor.d.ts → base/custom-editor.d.ts} +0 -0
- /package/dist/types/{custom-editor.mjs → base/custom-editor.mjs} +0 -0
- /package/dist/types/{editor-autocomplete-state.d.ts → base/editor-autocomplete-state.d.ts} +0 -0
- /package/src/components/{copilot-textarea/base-copilot-textarea → base-copilot-textarea}/render-element.tsx +0 -0
- /package/src/components/{copilot-textarea/base-copilot-textarea → base-copilot-textarea}/render-placeholder.tsx +0 -0
- /package/src/types/{autosuggestion-state.ts → base/autosuggestion-state.ts} +0 -0
- /package/src/types/{autosuggestions-bare-function.ts → base/autosuggestions-bare-function.ts} +0 -0
- /package/src/types/{base-autosuggestions-config.tsx → base/base-autosuggestions-config.tsx} +0 -0
- /package/src/types/{custom-editor.tsx → base/custom-editor.tsx} +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
> @copilotkit/react-textarea@0.
|
|
2
|
+
> @copilotkit/react-textarea@0.6.0 build /Users/ataibarkai/LocalGit/Recursively.ai/CopilotKit/CopilotKit/packages/react-textarea
|
|
3
3
|
> tsup --treeshake
|
|
4
4
|
|
|
5
|
-
CLI Building entry: src/index.tsx, src/components/index.ts, src/hooks/index.ts, src/hooks/use-autosuggestions.ts, src/hooks/use-copilot-textarea-editor.tsx, src/
|
|
5
|
+
CLI Building entry: src/index.tsx, src/context/index.ts, src/components/index.ts, src/hooks/index.ts, src/hooks/use-autosuggestions.ts, src/hooks/use-copilot-textarea-editor.tsx, src/types/index.ts, src/lib/debouncer.ts, src/lib/editor-to-text.ts, src/lib/get-text-around-cursor.ts, src/lib/utils.ts, src/components/base-copilot-textarea/base-copilot-textarea.tsx, src/components/base-copilot-textarea/render-element.tsx, src/components/base-copilot-textarea/render-placeholder.tsx, src/components/copilot-textarea/copilot-textarea.tsx, src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx, src/types/base/autosuggestion-state.ts, src/types/base/autosuggestions-bare-function.ts, src/types/base/base-autosuggestions-config.tsx, src/types/base/custom-editor.tsx, src/types/base/editor-autocomplete-state.ts, src/types/base/index.ts, src/types/standard-autosuggestions/autosuggestions-config.tsx, src/types/standard-autosuggestions/index.ts, src/types/standard-autosuggestions/minimal-chat-gpt-message.tsx, src/lib/slatejs-edits/add-autocompletions.ts, src/lib/slatejs-edits/clear-autocompletions.ts, src/lib/slatejs-edits/replace-text.ts, src/lib/slatejs-edits/with-partial-history.ts
|
|
6
6
|
CLI Using tsconfig: tsconfig.json
|
|
7
7
|
CLI tsup v6.5.0
|
|
8
8
|
CLI Using tsup config: /Users/ataibarkai/LocalGit/Recursively.ai/CopilotKit/CopilotKit/packages/react-textarea/tsup.config.ts
|
|
@@ -13,121 +13,197 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
13
13
|
npx update-browserslist-db@latest
|
|
14
14
|
Why you should do it regularly: https://github.com/browserslist/update-db#readme
|
|
15
15
|
DTS Build start
|
|
16
|
+
|
|
17
|
+
WARN [33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mIgnoring this import because "../react-core/dist/chunk-MRXNTQOX.mjs" was marked as having no side effects[0m [ignored-bare-import]
|
|
18
|
+
|
|
19
|
+
../react-core/dist/chunk-YOYU25BE.mjs:1:7:
|
|
20
|
+
[37m 1 │ import [32m'./chunk-MRXNTQOX.mjs'[37m;
|
|
21
|
+
╵ [32m~~~~~~~~~~~~~~~~~~~~~~[0m
|
|
22
|
+
|
|
23
|
+
"sideEffects" is false in the enclosing "package.json" file
|
|
24
|
+
|
|
25
|
+
../react-core/package.json:8:2:
|
|
26
|
+
[37m 8 │ [32m"sideEffects"[37m: false,
|
|
27
|
+
╵ [32m~~~~~~~~~~~~~[0m
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
WARN [33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mIgnoring this import because "../react-core/dist/chunk-3BOHSSKR.mjs" was marked as having no side effects[0m [ignored-bare-import]
|
|
33
|
+
|
|
34
|
+
../react-core/dist/index.mjs:4:7:
|
|
35
|
+
[37m 4 │ import [32m'./chunk-3BOHSSKR.mjs'[37m;
|
|
36
|
+
╵ [32m~~~~~~~~~~~~~~~~~~~~~~[0m
|
|
37
|
+
|
|
38
|
+
"sideEffects" is false in the enclosing "package.json" file
|
|
39
|
+
|
|
40
|
+
../react-core/package.json:8:2:
|
|
41
|
+
[37m 8 │ [32m"sideEffects"[37m: false,
|
|
42
|
+
╵ [32m~~~~~~~~~~~~~[0m
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
WARN [33m▲ [43;33m[[43;30mWARNING[43;33m][0m [1mIgnoring this import because "../react-core/dist/chunk-MRXNTQOX.mjs" was marked as having no side effects[0m [ignored-bare-import]
|
|
48
|
+
|
|
49
|
+
../react-core/dist/index.mjs:11:7:
|
|
50
|
+
[37m 11 │ import [32m'./chunk-MRXNTQOX.mjs'[37m;
|
|
51
|
+
╵ [32m~~~~~~~~~~~~~~~~~~~~~~[0m
|
|
52
|
+
|
|
53
|
+
"sideEffects" is false in the enclosing "package.json" file
|
|
54
|
+
|
|
55
|
+
../react-core/package.json:8:2:
|
|
56
|
+
[37m 8 │ [32m"sideEffects"[37m: false,
|
|
57
|
+
╵ [32m~~~~~~~~~~~~~[0m
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
Generated an empty chunk: "minimal-chat-gpt-message".
|
|
16
62
|
Generated an empty chunk: "autosuggestion-state".
|
|
17
63
|
Generated an empty chunk: "autosuggestions-bare-function".
|
|
18
64
|
Generated an empty chunk: "custom-editor".
|
|
19
|
-
Generated an empty chunk: "chunk-YPBKY4KY".
|
|
20
|
-
Generated an empty chunk: "chunk-JD7BAH7U".
|
|
21
|
-
Generated an empty chunk: "chunk-H4VKQGVU".
|
|
22
65
|
Generated an empty chunk: "chunk-IU3WTXLQ".
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
ESM dist/
|
|
29
|
-
ESM dist/
|
|
30
|
-
ESM dist/
|
|
31
|
-
ESM dist/chunk-
|
|
32
|
-
ESM dist/chunk-
|
|
33
|
-
ESM dist/
|
|
34
|
-
ESM dist/
|
|
35
|
-
ESM dist/
|
|
36
|
-
ESM dist/
|
|
37
|
-
ESM dist/lib/
|
|
38
|
-
ESM dist/
|
|
39
|
-
ESM dist/
|
|
40
|
-
ESM dist/
|
|
41
|
-
ESM dist/chunk-
|
|
42
|
-
ESM dist/chunk-
|
|
43
|
-
ESM dist/
|
|
44
|
-
ESM dist/types/editor
|
|
45
|
-
ESM dist/
|
|
46
|
-
ESM dist/chunk-
|
|
47
|
-
ESM dist/
|
|
48
|
-
ESM dist/
|
|
49
|
-
ESM dist/
|
|
50
|
-
ESM dist/
|
|
51
|
-
ESM dist/
|
|
52
|
-
ESM dist/
|
|
53
|
-
ESM dist/
|
|
54
|
-
ESM dist/chunk-
|
|
55
|
-
ESM dist/
|
|
56
|
-
ESM dist/chunk-
|
|
57
|
-
ESM dist/
|
|
58
|
-
ESM dist/
|
|
59
|
-
ESM dist/chunk-
|
|
60
|
-
ESM dist/
|
|
61
|
-
ESM dist/
|
|
62
|
-
ESM dist/
|
|
63
|
-
ESM dist/
|
|
64
|
-
ESM dist/
|
|
65
|
-
ESM dist/
|
|
66
|
-
ESM dist/
|
|
67
|
-
ESM dist/
|
|
68
|
-
ESM dist/
|
|
69
|
-
ESM dist/
|
|
70
|
-
ESM dist/
|
|
71
|
-
ESM dist/
|
|
72
|
-
ESM dist/
|
|
73
|
-
ESM dist/
|
|
74
|
-
ESM dist/types/autosuggestions-
|
|
75
|
-
ESM dist/chunk-
|
|
76
|
-
ESM dist/
|
|
77
|
-
ESM dist/
|
|
78
|
-
ESM dist/
|
|
79
|
-
ESM dist/
|
|
80
|
-
ESM dist/
|
|
81
|
-
ESM dist/
|
|
82
|
-
ESM dist/chunk-
|
|
83
|
-
ESM dist/
|
|
84
|
-
ESM dist/chunk-
|
|
85
|
-
ESM dist/chunk-
|
|
86
|
-
ESM dist/
|
|
87
|
-
ESM dist/
|
|
88
|
-
ESM dist/
|
|
89
|
-
ESM dist/
|
|
90
|
-
ESM dist/chunk-
|
|
91
|
-
ESM dist/chunk-
|
|
92
|
-
ESM dist/
|
|
93
|
-
ESM dist/
|
|
94
|
-
ESM dist/chunk-
|
|
95
|
-
ESM dist/
|
|
96
|
-
ESM dist/
|
|
97
|
-
ESM dist/
|
|
98
|
-
ESM dist/
|
|
99
|
-
ESM dist/
|
|
100
|
-
ESM dist/chunk-
|
|
101
|
-
ESM dist/lib/
|
|
102
|
-
ESM dist/
|
|
103
|
-
ESM dist/
|
|
104
|
-
ESM dist/
|
|
105
|
-
ESM dist/components/copilot-textarea/
|
|
106
|
-
ESM dist/lib/slatejs-edits/
|
|
107
|
-
ESM dist/
|
|
108
|
-
ESM dist/
|
|
109
|
-
ESM
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
66
|
+
Generated an empty chunk: "chunk-MMVDU6DF".
|
|
67
|
+
Generated an empty chunk: "chunk-H4VKQGVU".
|
|
68
|
+
Generated an empty chunk: "chunk-FD6FGKYY".
|
|
69
|
+
Generated an empty chunk: "chunk-AZQCUNBV".
|
|
70
|
+
Generated an empty chunk: "chunk-WJHSY5T6".
|
|
71
|
+
ESM dist/index.css 5.52 KB
|
|
72
|
+
ESM dist/index.css.map 11.97 KB
|
|
73
|
+
ESM dist/chunk-H4VKQGVU.mjs 76.00 B
|
|
74
|
+
ESM dist/chunk-MMVDU6DF.mjs 76.00 B
|
|
75
|
+
ESM dist/chunk-AZQCUNBV.mjs 76.00 B
|
|
76
|
+
ESM dist/types/base/autosuggestions-bare-function.mjs 91.00 B
|
|
77
|
+
ESM dist/chunk-6LKDH2UJ.mjs 295.00 B
|
|
78
|
+
ESM dist/types/base/autosuggestion-state.mjs 82.00 B
|
|
79
|
+
ESM dist/lib/slatejs-edits/add-autocompletions.mjs 186.00 B
|
|
80
|
+
ESM dist/lib/slatejs-edits/replace-text.mjs 170.00 B
|
|
81
|
+
ESM dist/lib/slatejs-edits/clear-autocompletions.mjs 192.00 B
|
|
82
|
+
ESM dist/types/base/base-autosuggestions-config.mjs 200.00 B
|
|
83
|
+
ESM dist/types/base/editor-autocomplete-state.mjs 227.00 B
|
|
84
|
+
ESM dist/chunk-FD6FGKYY.mjs 76.00 B
|
|
85
|
+
ESM dist/chunk-MRXNTQOX.mjs 1.92 KB
|
|
86
|
+
ESM dist/lib/slatejs-edits/with-partial-history.mjs 198.00 B
|
|
87
|
+
ESM dist/types/base/custom-editor.mjs 75.00 B
|
|
88
|
+
ESM dist/types/base/index.mjs 213.00 B
|
|
89
|
+
ESM dist/chunk-IU3WTXLQ.mjs 76.00 B
|
|
90
|
+
ESM dist/lib/get-text-around-cursor.mjs 232.00 B
|
|
91
|
+
ESM dist/types/standard-autosuggestions/minimal-chat-gpt-message.mjs 86.00 B
|
|
92
|
+
ESM dist/components/base-copilot-textarea/render-placeholder.mjs 188.00 B
|
|
93
|
+
ESM dist/lib/utils.mjs 220.00 B
|
|
94
|
+
ESM dist/components/base-copilot-textarea/render-element.mjs 180.00 B
|
|
95
|
+
ESM dist/types/standard-autosuggestions/index.mjs 328.00 B
|
|
96
|
+
ESM dist/components/copilot-textarea/copilot-textarea.mjs 802.00 B
|
|
97
|
+
ESM dist/chunk-VF6DFXKX.mjs 1.06 KB
|
|
98
|
+
ESM dist/chunk-CHK3DSAA.mjs 4.69 KB
|
|
99
|
+
ESM dist/chunk-TSF4AJIK.mjs 716.00 B
|
|
100
|
+
ESM dist/chunk-WJYQWL4I.mjs 595.00 B
|
|
101
|
+
ESM dist/chunk-4XYYSJ5C.mjs 527.00 B
|
|
102
|
+
ESM dist/chunk-3UQM3NLM.mjs 1.76 KB
|
|
103
|
+
ESM dist/context/index.mjs 98.00 B
|
|
104
|
+
ESM dist/hooks/index.mjs 98.00 B
|
|
105
|
+
ESM dist/chunk-6Q4X3YEO.mjs 1.14 KB
|
|
106
|
+
ESM dist/chunk-RJDWVMCN.mjs 2.59 KB
|
|
107
|
+
ESM dist/index.mjs 993.00 B
|
|
108
|
+
ESM dist/chunk-KGKLUWKW.mjs 1.37 KB
|
|
109
|
+
ESM dist/chunk-UW3ITU2Y.mjs 496.00 B
|
|
110
|
+
ESM dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs 220.00 B
|
|
111
|
+
ESM dist/hooks/use-copilot-textarea-editor.mjs 218.00 B
|
|
112
|
+
ESM dist/chunk-6SYD77G6.mjs 2.01 KB
|
|
113
|
+
ESM dist/chunk-OELUUJZY.mjs 625.00 B
|
|
114
|
+
ESM dist/components/base-copilot-textarea/base-copilot-textarea.mjs 671.00 B
|
|
115
|
+
ESM dist/types/index.mjs 387.00 B
|
|
116
|
+
ESM dist/lib/debouncer.mjs 153.00 B
|
|
117
|
+
ESM dist/types/standard-autosuggestions/autosuggestions-config.mjs 310.00 B
|
|
118
|
+
ESM dist/chunk-NKW5OU2S.mjs 959.00 B
|
|
119
|
+
ESM dist/lib/editor-to-text.mjs 1.34 KB
|
|
120
|
+
ESM dist/chunk-KCHYD3EB.mjs 3.08 KB
|
|
121
|
+
ESM dist/chunk-24IOWJS4.mjs 2.93 KB
|
|
122
|
+
ESM dist/chunk-ZPACRCJ6.mjs 2.75 KB
|
|
123
|
+
ESM dist/hooks/use-autosuggestions.mjs 268.00 B
|
|
124
|
+
ESM dist/components/index.mjs 792.00 B
|
|
125
|
+
ESM dist/chunk-WJHSY5T6.mjs 76.00 B
|
|
126
|
+
ESM dist/chunk-H4VKQGVU.mjs.map 51.00 B
|
|
127
|
+
ESM dist/chunk-MMVDU6DF.mjs.map 51.00 B
|
|
128
|
+
ESM dist/chunk-6LKDH2UJ.mjs.map 566.00 B
|
|
129
|
+
ESM dist/lib/slatejs-edits/replace-text.mjs.map 51.00 B
|
|
130
|
+
ESM dist/types/base/autosuggestion-state.mjs.map 51.00 B
|
|
131
|
+
ESM dist/lib/slatejs-edits/clear-autocompletions.mjs.map 51.00 B
|
|
132
|
+
ESM dist/types/base/editor-autocomplete-state.mjs.map 51.00 B
|
|
133
|
+
ESM dist/chunk-FD6FGKYY.mjs.map 51.00 B
|
|
134
|
+
ESM dist/chunk-MRXNTQOX.mjs.map 71.00 B
|
|
135
|
+
ESM dist/types/base/autosuggestions-bare-function.mjs.map 51.00 B
|
|
136
|
+
ESM dist/chunk-AZQCUNBV.mjs.map 51.00 B
|
|
137
|
+
ESM dist/chunk-IU3WTXLQ.mjs.map 51.00 B
|
|
138
|
+
ESM dist/lib/get-text-around-cursor.mjs.map 51.00 B
|
|
139
|
+
ESM dist/types/base/custom-editor.mjs.map 51.00 B
|
|
140
|
+
ESM dist/types/base/base-autosuggestions-config.mjs.map 51.00 B
|
|
141
|
+
ESM dist/types/standard-autosuggestions/index.mjs.map 51.00 B
|
|
142
|
+
ESM dist/types/standard-autosuggestions/minimal-chat-gpt-message.mjs.map 51.00 B
|
|
143
|
+
ESM dist/chunk-VF6DFXKX.mjs.map 1.75 KB
|
|
144
|
+
ESM dist/lib/utils.mjs.map 51.00 B
|
|
145
|
+
ESM dist/components/base-copilot-textarea/render-element.mjs.map 51.00 B
|
|
146
|
+
ESM dist/types/base/index.mjs.map 51.00 B
|
|
147
|
+
ESM dist/chunk-TSF4AJIK.mjs.map 1.31 KB
|
|
148
|
+
ESM dist/components/copilot-textarea/copilot-textarea.mjs.map 51.00 B
|
|
149
|
+
ESM dist/lib/slatejs-edits/with-partial-history.mjs.map 51.00 B
|
|
150
|
+
ESM dist/chunk-WJYQWL4I.mjs.map 1.04 KB
|
|
151
|
+
ESM dist/chunk-6Q4X3YEO.mjs.map 1.82 KB
|
|
152
|
+
ESM dist/chunk-4XYYSJ5C.mjs.map 921.00 B
|
|
153
|
+
ESM dist/chunk-CHK3DSAA.mjs.map 8.05 KB
|
|
154
|
+
ESM dist/chunk-RJDWVMCN.mjs.map 6.55 KB
|
|
155
|
+
ESM dist/chunk-3UQM3NLM.mjs.map 3.63 KB
|
|
156
|
+
ESM dist/index.mjs.map 51.00 B
|
|
157
|
+
ESM dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map 51.00 B
|
|
158
|
+
ESM dist/chunk-KGKLUWKW.mjs.map 2.45 KB
|
|
159
|
+
ESM dist/chunk-OELUUJZY.mjs.map 957.00 B
|
|
160
|
+
ESM dist/chunk-UW3ITU2Y.mjs.map 878.00 B
|
|
161
|
+
ESM dist/chunk-6SYD77G6.mjs.map 3.78 KB
|
|
162
|
+
ESM dist/types/index.mjs.map 51.00 B
|
|
163
|
+
ESM dist/hooks/use-copilot-textarea-editor.mjs.map 51.00 B
|
|
164
|
+
ESM dist/lib/debouncer.mjs.map 51.00 B
|
|
165
|
+
ESM dist/types/standard-autosuggestions/autosuggestions-config.mjs.map 51.00 B
|
|
166
|
+
ESM dist/lib/editor-to-text.mjs.map 2.83 KB
|
|
167
|
+
ESM dist/chunk-NKW5OU2S.mjs.map 1.60 KB
|
|
168
|
+
ESM dist/context/index.mjs.map 51.00 B
|
|
169
|
+
ESM dist/chunk-KCHYD3EB.mjs.map 6.12 KB
|
|
170
|
+
ESM dist/chunk-24IOWJS4.mjs.map 5.54 KB
|
|
171
|
+
ESM dist/components/base-copilot-textarea/base-copilot-textarea.mjs.map 51.00 B
|
|
172
|
+
ESM dist/hooks/index.mjs.map 51.00 B
|
|
173
|
+
ESM dist/lib/slatejs-edits/add-autocompletions.mjs.map 51.00 B
|
|
174
|
+
ESM dist/hooks/use-autosuggestions.mjs.map 51.00 B
|
|
175
|
+
ESM dist/components/index.mjs.map 51.00 B
|
|
176
|
+
ESM dist/components/base-copilot-textarea/render-placeholder.mjs.map 51.00 B
|
|
177
|
+
ESM dist/chunk-ZPACRCJ6.mjs.map 4.01 KB
|
|
178
|
+
ESM dist/chunk-WJHSY5T6.mjs.map 51.00 B
|
|
179
|
+
ESM ⚡️ Build success in 435ms
|
|
180
|
+
DTS ⚡️ Build success in 826ms
|
|
181
|
+
DTS dist/index.d.ts 763.00 B
|
|
182
|
+
DTS dist/components/base-copilot-textarea/base-copilot-textarea.d.ts 789.00 B
|
|
183
|
+
DTS dist/components/copilot-textarea/copilot-textarea.d.ts 703.00 B
|
|
184
|
+
DTS dist/types/base/base-autosuggestions-config.d.ts 332.00 B
|
|
185
|
+
DTS dist/types/base/autosuggestions-bare-function.d.ts 162.00 B
|
|
186
|
+
DTS dist/types/standard-autosuggestions/autosuggestions-config.d.ts 884.00 B
|
|
187
|
+
DTS dist/types/standard-autosuggestions/minimal-chat-gpt-message.d.ts 129.00 B
|
|
188
|
+
DTS dist/context/index.d.ts 1.00 B
|
|
189
|
+
DTS dist/components/index.d.ts 480.00 B
|
|
190
|
+
DTS dist/hooks/index.d.ts 1.00 B
|
|
191
|
+
DTS dist/hooks/use-autosuggestions.d.ts 860.00 B
|
|
192
|
+
DTS dist/types/base/autosuggestion-state.d.ts 143.00 B
|
|
193
|
+
DTS dist/types/base/editor-autocomplete-state.d.ts 342.00 B
|
|
194
|
+
DTS dist/hooks/use-copilot-textarea-editor.d.ts 223.00 B
|
|
195
|
+
DTS dist/types/base/custom-editor.d.ts 801.00 B
|
|
196
|
+
DTS dist/types/index.d.ts 491.00 B
|
|
197
|
+
DTS dist/lib/debouncer.d.ts 372.00 B
|
|
198
|
+
DTS dist/lib/editor-to-text.d.ts 243.00 B
|
|
199
|
+
DTS dist/lib/get-text-around-cursor.d.ts 453.00 B
|
|
200
|
+
DTS dist/lib/utils.d.ts 638.00 B
|
|
201
|
+
DTS dist/components/base-copilot-textarea/render-element.d.ts 292.00 B
|
|
202
|
+
DTS dist/components/base-copilot-textarea/render-placeholder.d.ts 321.00 B
|
|
203
|
+
DTS dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts 1.79 KB
|
|
204
|
+
DTS dist/types/base/index.d.ts 194.00 B
|
|
205
|
+
DTS dist/types/standard-autosuggestions/index.d.ts 286.00 B
|
|
206
|
+
DTS dist/lib/slatejs-edits/add-autocompletions.d.ts 302.00 B
|
|
207
|
+
DTS dist/lib/slatejs-edits/clear-autocompletions.d.ts 250.00 B
|
|
208
|
+
DTS dist/lib/slatejs-edits/replace-text.d.ts 139.00 B
|
|
209
|
+
DTS dist/lib/slatejs-edits/with-partial-history.d.ts 542.00 B
|
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { areEqual_autocompleteState } from './chunk-
|
|
1
|
+
import { areEqual_autocompleteState } from './chunk-UW3ITU2Y.mjs';
|
|
2
2
|
import { nullableCompatibleEqualityCheck } from './chunk-KGKLUWKW.mjs';
|
|
3
3
|
import { Debouncer } from './chunk-NKW5OU2S.mjs';
|
|
4
4
|
import { __async } from './chunk-MRXNTQOX.mjs';
|
|
@@ -85,4 +85,4 @@ function useAutosuggestions(debounceTime, acceptAutosuggestionKey, autosuggestio
|
|
|
85
85
|
|
|
86
86
|
export { useAutosuggestions };
|
|
87
87
|
//# sourceMappingURL=out.js.map
|
|
88
|
-
//# sourceMappingURL=chunk-
|
|
88
|
+
//# sourceMappingURL=chunk-24IOWJS4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-autosuggestions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,aAAa,SAAS,gBAAgB;AAgBxC,SAAS,mBACd,cACA,yBACA,wBACA,8BACA,kBAC0B;AAC1B,QAAM,CAAC,2BAA2B,4BAA4B,IAC5D,SAAyC,IAAI;AAE/C,QAAM,CAAC,+BAA+B,gCAAgC,IACpE,SAAqC,IAAI;AAE3C,QAAM,8BAGe;AAAA,IACnB,CACE,yBACA,gBACG;AACH,UACE,oBACA,wBAAwB,qBAAqB,MAC7C,wBAAwB,oBAAoB,IAC5C;AACA;AAAA,MACF;AAEA,YAAM,aAAa,MAAM;AAAA,QACvB,wBAAwB;AAAA,QACxB,wBAAwB;AAAA,QACxB;AAAA,MACF;AAGA,UAAI,CAAC,cAAc,YAAY,SAAS;AACtC,cAAM,IAAI,aAAa,WAAW,YAAY;AAAA,MAChD;AAEA,uCAAiC;AAAA,QAC/B,MAAM;AAAA,QACN,OAAO,wBAAwB;AAAA,MACjC,CAAC;AAAA,IACH;AAAA,IACA,CAAC,wBAAwB,kCAAkC,gBAAgB;AAAA,EAC7E;AAEA,QAAM,oBAAoB;AAAA,IACxB,MACE,IAAI;AAAA,MACF;AAAA,IACF;AAAA,IACF,CAAC,YAAY;AAAA,EACf;AAEA,QAAM,WAAW;AAAA,IACf,CAAC,mBAAmD;AAClD,YAAM,wBAAwB,CAAC;AAAA,QAC7B;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,mCAA6B,cAAc;AAG3C,UAAI,CAAC,uBAAuB;AAC1B;AAAA,MACF;AAGA,uCAAiC,IAAI;AAGrC,UAAI,gBAAgB;AAClB,0BAAkB,SAAS,6BAA6B,cAAc;AAAA,MACxE,OAAO;AACL,0BAAkB,OAAO;AAAA,MAC3B;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,iBAAiB;AAAA,IACrB,CAAC,UAA+C;AAC9C,UAAI,+BAA+B;AACjC,YAAI,MAAM,QAAQ,yBAAyB;AACzC,gBAAM,eAAe;AACrB,uCAA6B,6BAA6B;AAC1D,2CAAiC,IAAI;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,EACpB;AACF","sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { Debouncer } from \"../lib/debouncer\";\nimport { nullableCompatibleEqualityCheck } from \"../lib/utils\";\nimport { AutosuggestionsBareFunction } from \"../types/base\";\nimport { AutosuggestionState } from \"../types/base/autosuggestion-state\";\nimport {\n EditorAutocompleteState,\n areEqual_autocompleteState,\n} from \"../types/base/editor-autocomplete-state\";\n\nexport interface UseAutosuggestionsResult {\n currentAutocompleteSuggestion: AutosuggestionState | null;\n onChangeHandler: (newEditorState: EditorAutocompleteState | null) => void;\n onKeyDownHandler: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n}\n\nexport function useAutosuggestions(\n debounceTime: number,\n acceptAutosuggestionKey: string,\n autosuggestionFunction: AutosuggestionsBareFunction,\n insertAutocompleteSuggestion: (suggestion: AutosuggestionState) => void,\n disableWhenEmpty: boolean\n): UseAutosuggestionsResult {\n const [previousAutocompleteState, setPreviousAutocompleteState] =\n useState<EditorAutocompleteState | null>(null);\n\n const [currentAutocompleteSuggestion, setCurrentAutocompleteSuggestion] =\n useState<AutosuggestionState | null>(null);\n\n const awaitForAndAppendSuggestion: (\n editorAutocompleteState: EditorAutocompleteState,\n abortSignal: AbortSignal\n ) => Promise<void> = useCallback(\n async (\n editorAutocompleteState: EditorAutocompleteState,\n abortSignal: AbortSignal\n ) => {\n if (\n disableWhenEmpty &&\n editorAutocompleteState.textBeforeCursor === \"\" &&\n editorAutocompleteState.textAfterCursor === \"\"\n ) {\n return;\n }\n\n const suggestion = await autosuggestionFunction(\n editorAutocompleteState.textBeforeCursor,\n editorAutocompleteState.textAfterCursor,\n abortSignal\n );\n\n // We'll assume for now that the autocomplete function might or might not respect the abort signal.\n if (!suggestion || abortSignal.aborted) {\n throw new DOMException(\"Aborted\", \"AbortError\");\n }\n\n setCurrentAutocompleteSuggestion({\n text: suggestion,\n point: editorAutocompleteState.cursorPoint,\n });\n },\n [autosuggestionFunction, setCurrentAutocompleteSuggestion, disableWhenEmpty]\n );\n\n const debouncedFunction = useMemo(\n () =>\n new Debouncer<[editorAutocompleteState: EditorAutocompleteState]>(\n debounceTime\n ),\n [debounceTime]\n );\n\n const onChange = useCallback(\n (newEditorState: EditorAutocompleteState | null) => {\n const editorStateHasChanged = !nullableCompatibleEqualityCheck(\n areEqual_autocompleteState,\n previousAutocompleteState,\n newEditorState\n );\n setPreviousAutocompleteState(newEditorState);\n\n // if no change, do nothing\n if (!editorStateHasChanged) {\n return;\n }\n\n // if change, then first null out the current suggestion\n setCurrentAutocompleteSuggestion(null);\n\n // then try to get a new suggestion, debouncing to avoid too many requests while typing\n if (newEditorState) {\n debouncedFunction.debounce(awaitForAndAppendSuggestion, newEditorState);\n } else {\n debouncedFunction.cancel();\n }\n },\n [\n previousAutocompleteState,\n setPreviousAutocompleteState,\n debouncedFunction,\n awaitForAndAppendSuggestion,\n setCurrentAutocompleteSuggestion,\n ]\n );\n\n const keyDownHandler = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (currentAutocompleteSuggestion) {\n if (event.key === acceptAutosuggestionKey) {\n event.preventDefault();\n insertAutocompleteSuggestion(currentAutocompleteSuggestion);\n setCurrentAutocompleteSuggestion(null);\n }\n }\n },\n [\n currentAutocompleteSuggestion,\n setCurrentAutocompleteSuggestion,\n insertAutocompleteSuggestion,\n acceptAutosuggestionKey,\n ]\n );\n\n return {\n currentAutocompleteSuggestion,\n onChangeHandler: onChange,\n onKeyDownHandler: keyDownHandler,\n };\n}\n"]}
|
|
@@ -63,4 +63,4 @@ function extractTextWithNewlines(editor, range) {
|
|
|
63
63
|
|
|
64
64
|
export { extractTextWithNewlines, getFullEditorTextWithNewlines, getTextAroundCursor };
|
|
65
65
|
//# sourceMappingURL=out.js.map
|
|
66
|
-
//# sourceMappingURL=chunk-
|
|
66
|
+
//# sourceMappingURL=chunk-3UQM3NLM.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/get-text-around-cursor.ts"],"names":[],"mappings":";AAAA,SAAS,QAAc,MAAM,OAAO,MAAM,eAAe;AAGlD,SAAS,oBACd,QACgC;AAChC,QAAM,EAAE,UAAU,IAAI;AAEtB,MAAI,CAAC,aAAa,CAAC,MAAM,YAAY,SAAS,GAAG;AAC/C,WAAO;AAAA,EACT;AAEA,QAAM,cAAqB;AAAA,IACzB,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,IAC/B,OAAO,UAAU;AAAA,EACnB;AACA,QAAM,aAAoB;AAAA,IACxB,QAAQ,UAAU;AAAA,IAClB,OAAO,OAAO,IAAI,QAAQ,CAAC,CAAC;AAAA,EAC9B;AAGA,QAAM,SAAS,wBAAwB,QAAQ,WAAW;AAC1D,QAAM,QAAQ,wBAAwB,QAAQ,UAAU;AAExD,SAAO;AAAA,IACL,aAAa,UAAU;AAAA,IACvB,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EACnB;AACF;AAEO,SAAS,8BAA8B,QAAwB;AACpE,QAAM,oBAA2B;AAAA,IAC/B,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,IAC/B,OAAO,OAAO,IAAI,QAAQ,CAAC,CAAC;AAAA,EAC9B;AACA,SAAO,wBAAwB,QAAQ,iBAAiB;AAC1D;AAGO,SAAS,wBAAwB,QAAgB,OAAsB;AAC5E,QAAM,QAAQ;AACd,QAAM,CAAC,OAAO,GAAG,IAAI,MAAM,MAAM,KAAK;AACtC,MAAI,OAAO;AACX,MAAI,YAAyB;AAE7B,aAAW,CAAC,MAAM,IAAI,KAAK,OAAO,MAAM,QAAQ;AAAA,IAC9C,IAAI;AAAA,IACJ,OAAO,KAAK;AAAA,IACZ;AAAA,EACF,CAAC,GAAG;AACF,QAAI,IAAI,KAAK;AAGb,UAAM,CAAC,KAAK,IAAI,OAAO,MAAM,QAAQ;AAAA,MACnC,IAAI;AAAA,MACJ,OAAO,CAAC,MAAM,QAAQ,UAAU,CAAC,KAAK,EAAE,SAAS;AAAA,IACnD,CAAC,KAAK,CAAC,IAAI;AAGX,QAAI,cAAc,SAAS,OAAO;AAEhC,UAAI,WAAW;AACb,gBAAQ;AAAA,MACV;AACA,kBAAY;AAAA,IACd;AAEA,QAAI,KAAK,OAAO,MAAM,IAAI,IAAI,GAAG;AAC/B,UAAI,EAAE,MAAM,GAAG,IAAI,MAAM;AAAA,IAC3B;AAEA,QAAI,KAAK,OAAO,MAAM,MAAM,IAAI,GAAG;AACjC,UAAI,EAAE,MAAM,MAAM,MAAM;AAAA,IAC1B;AAEA,YAAQ;AAAA,EACV;AAEA,SAAO;AACT","sourcesContent":["import { Editor, Node, Path, Range, Text, Element } from \"slate\";\nimport { EditorAutocompleteState } from \"../types/base/editor-autocomplete-state\";\n\nexport function getTextAroundCursor(\n editor: Editor\n): EditorAutocompleteState | null {\n const { selection } = editor;\n\n if (!selection || !Range.isCollapsed(selection)) {\n return null;\n }\n // Create two ranges: one before the anchor and one after\n const beforeRange: Range = {\n anchor: Editor.start(editor, []),\n focus: selection.anchor,\n };\n const afterRange: Range = {\n anchor: selection.anchor,\n focus: Editor.end(editor, []),\n };\n\n // Extract text for these ranges\n const before = extractTextWithNewlines(editor, beforeRange);\n const after = extractTextWithNewlines(editor, afterRange);\n\n return {\n cursorPoint: selection.anchor,\n textBeforeCursor: before,\n textAfterCursor: after,\n };\n}\n\nexport function getFullEditorTextWithNewlines(editor: Editor): string {\n const fullDocumentRange: Range = {\n anchor: Editor.start(editor, []),\n focus: Editor.end(editor, []),\n };\n return extractTextWithNewlines(editor, fullDocumentRange);\n}\n\n// Helper function to extract text with newlines\nexport function extractTextWithNewlines(editor: Editor, range: Range): string {\n const voids = false;\n const [start, end] = Range.edges(range);\n let text = \"\";\n let lastBlock: Node | null = null;\n\n for (const [node, path] of Editor.nodes(editor, {\n at: range,\n match: Text.isText,\n voids,\n })) {\n let t = node.text;\n\n // Determine the parent block of the current text node\n const [block] = Editor.above(editor, {\n at: path,\n match: (n) => Element.isElement(n) && n.type === \"paragraph\",\n }) || [null];\n\n // If we encounter a new block, prepend a newline\n if (lastBlock !== block && block) {\n // check that lastBlock is not null to avoid adding a newline at the beginning\n if (lastBlock) {\n text += \"\\n\";\n }\n lastBlock = block;\n }\n\n if (Path.equals(path, end.path)) {\n t = t.slice(0, end.offset);\n }\n\n if (Path.equals(path, start.path)) {\n t = t.slice(start.offset);\n }\n\n text += t;\n }\n\n return text;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/slatejs-edits/clear-autocompletions.ts"],"names":[],"mappings":";AAAA,SAAe,MAAM,SAAS,kBAAkB;AAGzC,SAAS,+BAA+B,QAAsB;AAEnE,QAAM,QAAgB,CAAC;AACvB,aAAW,CAAC,MAAM,IAAI,KAAK,KAAK,MAAM,MAAM,GAAG;AAC7C,QAAI,QAAQ,UAAU,IAAI,KAAK,KAAK,SAAS,cAAc;AACzD,YAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AACA,aAAW,QAAQ,OAAO;AACxB,eAAW,YAAY,QAAQ,EAAE,IAAI,KAAK,CAAC;AAAA,EAC7C;AACF","sourcesContent":["import { Path, Node, Element, Transforms } from \"slate\";\nimport { CustomEditor } from \"../../types/custom-editor\";\n\nexport function clearAutocompletionsFromEditor(editor: CustomEditor) {\n // clear previous suggestion\n const paths: Path[] = [];\n for (const [node, path] of Node.nodes(editor)) {\n if (Element.isElement(node) && node.type === \"suggestion\") {\n paths.push(path);\n }\n }\n for (const path of paths) {\n Transforms.removeNodes(editor, { at: path });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/slatejs-edits/clear-autocompletions.ts"],"names":[],"mappings":";AAAA,SAAe,MAAM,SAAS,kBAAkB;AAGzC,SAAS,+BAA+B,QAAsB;AAEnE,QAAM,QAAgB,CAAC;AACvB,aAAW,CAAC,MAAM,IAAI,KAAK,KAAK,MAAM,MAAM,GAAG;AAC7C,QAAI,QAAQ,UAAU,IAAI,KAAK,KAAK,SAAS,cAAc;AACzD,YAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AACA,aAAW,QAAQ,OAAO;AACxB,eAAW,YAAY,QAAQ,EAAE,IAAI,KAAK,CAAC;AAAA,EAC7C;AACF","sourcesContent":["import { Path, Node, Element, Transforms } from \"slate\";\nimport { CustomEditor } from \"../../types/base/custom-editor\";\n\nexport function clearAutocompletionsFromEditor(editor: CustomEditor) {\n // clear previous suggestion\n const paths: Path[] = [];\n for (const [node, path] of Node.nodes(editor)) {\n if (Element.isElement(node) && node.type === \"suggestion\") {\n paths.push(path);\n }\n }\n for (const path of paths) {\n Transforms.removeNodes(editor, { at: path });\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// src/types/base-autosuggestions-config.tsx
|
|
1
|
+
// src/types/base/base-autosuggestions-config.tsx
|
|
2
2
|
var defaultBaseAutosuggestionsConfig = {
|
|
3
3
|
debounceTime: 500,
|
|
4
4
|
acceptAutosuggestionKey: "Tab",
|
|
@@ -7,4 +7,4 @@ var defaultBaseAutosuggestionsConfig = {
|
|
|
7
7
|
|
|
8
8
|
export { defaultBaseAutosuggestionsConfig };
|
|
9
9
|
//# sourceMappingURL=out.js.map
|
|
10
|
-
//# sourceMappingURL=chunk-
|
|
10
|
+
//# sourceMappingURL=chunk-6LKDH2UJ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/base/base-autosuggestions-config.tsx"],"names":[],"mappings":";AAOO,IAAM,mCAGT;AAAA,EACF,cAAc;AAAA,EACd,yBAAyB;AAAA,EACzB,kBAAkB;AACpB","sourcesContent":["export interface BaseAutosuggestionsConfig {\n purposePrompt: string;\n debounceTime: number;\n acceptAutosuggestionKey: string;\n disableWhenEmpty: boolean;\n}\n\nexport const defaultBaseAutosuggestionsConfig: Omit<\n BaseAutosuggestionsConfig,\n \"purposePrompt\"\n> = {\n debounceTime: 500,\n acceptAutosuggestionKey: \"Tab\",\n disableWhenEmpty: true,\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/base-copilot-textarea/render-element.tsx"],"names":[],"mappings":";;;;;;AAUe,cAkBX,YAlBW;AANR,SAAS,0BACd,kBACuB;AACvB,SAAO,CAAC,UAA8B;AACpC,YAAQ,MAAM,QAAQ,MAAM;AAAA,MAC1B,KAAK;AACH,eAAO,oBAAC,mCAAmB,MAAO;AAAA,MACpC,KAAK;AACH,eACE,oBAAC,oDAAsB,QAAtB;AAAA,UAA6B;AAAA,UAAoC;AAAA,IAExE;AAAA,EACF;AACF;AAEA,IAAM,iBAAiB,CAAC,UAA8B;AACpD,SAAO,oBAAC,wCAAQ,MAAM,aAAd;AAAA,IAA2B,gBAAM;AAAA,IAAS;AACpD;AACA,IAAM,oBAAoB,CACxB,UAGG;AACH,SACE,qBAAC,yCACK,MAAM,aADX;AAAA,IAEC,OAAO;AAAA,MACL,WAAW;AAAA,MACX,OAAO;AAAA,OACJ,MAAM;AAAA,IAEX,iBAAiB;AAAA,IAEhB;AAAA,YAAM;AAAA,MACN,MAAM,QAAQ,SAAS,gBAAgB,MAAM,QAAQ;AAAA;AAAA,IACxD;AAEJ","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 (\n <SuggestionElement {...props} suggestionsStyle={suggestionsStyle} />\n );\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 fontStyle: \"italic\",\n color: \"gray\",\n ...props.suggestionsStyle,\n }}\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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-copilot-textarea-editor.tsx"],"names":["editor"],"mappings":";;;;;;AAAA,SAAS,cAAc,eAAe;AACtC,SAAS,iBAAiB;AAC1B,SAAS,eAAe;AAQxB,IAAM,aAAkC,CAAC,IAAI,SAAS;AACpD,QAAM,mBAAmB;AAEzB,MACE,GAAG,SAAS,iBACZ,QAAQ,UAAU,GAAG,IAAI,KACzB,GAAG,KAAK,SAAS,kBACjB;AACA,WAAO;AAAA,EACT;AAEA,MACE,GAAG,SAAS,iBACZ,QAAQ,UAAU,GAAG,IAAI,KACzB,GAAG,KAAK,SAAS,kBACjB;AACA,WAAO;AAAA,EACT;AAEA,MACE,GAAG,SAAS,cACZ,UAAU,GAAG,iBACb,GAAG,cAAc,SAAS,kBAC1B;AACA,WAAO;AAAA,EACT;AAEA,MACE,GAAG,QAAQ,cACX,UAAU,GAAG,cACb,GAAG,WAAW,SAAS,kBACvB;AACA,WAAO;AAAA,EACT;AAEA,MACE,GAAG,SAAS,gBACZ,UAAU,GAAG,cACb,GAAG,WAAW,SAAS,kBACvB;AACA,WAAO;AAAA,EACT;AAEA,MACE,GAAG,SAAS,gBACZ,UAAU,GAAG,cACb,GAAG,WAAW,SAAS,kBACvB;AACA,WAAO;AAAA,EACT;AAGA,SAAO,kBAAkB,IAAI,IAAI;AACnC;AAEO,SAAS,2BAAyC;AACvD,QAAM,SAAS,QAAQ,MAAM;AAC3B,UAAMA,UAAS,mBAAmB,UAAU,aAAa,CAAC,GAAG,UAAU;AAEvE,UAAM,EAAE,OAAO,IAAIA;AACnB,IAAAA,QAAO,SAAS,CAAC,YAAY;AAC3B,cAAQ,QAAQ,MAAM;AAAA,QACpB,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO,OAAO,OAAO;AAAA,MACzB;AAAA,IACF;AAEA,UAAM,EAAE,aAAa,IAAIA;AACzB,IAAAA,QAAO,eAAe,CAAC,YAAY;AACjC,cAAQ,QAAQ,MAAM;AAAA,QACpB,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO,aAAa,OAAO;AAAA,MAC/B;AAAA,IACF;AAEA,UAAM,EAAE,SAAS,IAAIA;AACrB,IAAAA,QAAO,WAAW,CAAC,YAAY;AAC7B,cAAQ,QAAQ,MAAM;AAAA,QACpB,KAAK;AACH,iBAAO,QAAQ;AAAA,QACjB;AACE,iBAAO,SAAS,OAAO;AAAA,MAC3B;AAAA,IACF;AAEA,WAAOA;AAAA,EACT,GAAG,CAAC,CAAC;AAEL,SAAO;AACT","sourcesContent":["import { createEditor, Element } from \"slate\";\nimport { withReact } from \"slate-react\";\nimport { useMemo } from \"react\";\nimport {\n withPartialHistory,\n ShouldSaveToHistory,\n defaultShouldSave,\n} from \"../lib/slatejs-edits/with-partial-history\";\nimport { CustomEditor } from \"../types/base/custom-editor\";\n\nconst shouldSave: ShouldSaveToHistory = (op, prev) => {\n const excludedNodeType = \"suggestion\";\n // Check if the operation involves the suggestion inline node type\n if (\n op.type === \"insert_node\" &&\n Element.isElement(op.node) &&\n op.node.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type === \"remove_node\" &&\n Element.isElement(op.node) &&\n op.node.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type === \"set_node\" &&\n \"type\" in op.newProperties &&\n op.newProperties.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type == \"set_node\" &&\n \"type\" in op.properties &&\n op.properties.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type === \"merge_node\" &&\n \"type\" in op.properties &&\n op.properties.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type === \"split_node\" &&\n \"type\" in op.properties &&\n op.properties.type === excludedNodeType\n ) {\n return false;\n }\n\n // Otherwise, save the operation to history\n return defaultShouldSave(op, prev);\n};\n\nexport function useCopilotTextareaEditor(): CustomEditor {\n const editor = useMemo(() => {\n const editor = withPartialHistory(withReact(createEditor()), shouldSave);\n\n const { isVoid } = editor;\n editor.isVoid = (element) => {\n switch (element.type) {\n case \"suggestion\":\n return true;\n default:\n return isVoid(element);\n }\n };\n\n const { markableVoid } = editor;\n editor.markableVoid = (element) => {\n switch (element.type) {\n case \"suggestion\":\n return true;\n default:\n return markableVoid(element);\n }\n };\n\n const { isInline } = editor;\n editor.isInline = (element) => {\n switch (element.type) {\n case \"suggestion\":\n return element.inline;\n default:\n return isInline(element);\n }\n };\n\n return editor;\n }, []);\n\n return editor;\n}\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { addAutocompletionsToEditor } from './chunk-
|
|
2
|
-
import { clearAutocompletionsFromEditor } from './chunk-
|
|
1
|
+
import { addAutocompletionsToEditor } from './chunk-WJYQWL4I.mjs';
|
|
2
|
+
import { clearAutocompletionsFromEditor } from './chunk-4XYYSJ5C.mjs';
|
|
3
3
|
import { replaceEditorText } from './chunk-TSF4AJIK.mjs';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
4
|
+
import { getTextAroundCursor, getFullEditorTextWithNewlines } from './chunk-3UQM3NLM.mjs';
|
|
5
|
+
import { makeRenderElementFunction } from './chunk-6Q4X3YEO.mjs';
|
|
6
|
+
import { makeRenderPlaceholderFunction } from './chunk-OELUUJZY.mjs';
|
|
7
|
+
import { useAutosuggestions } from './chunk-24IOWJS4.mjs';
|
|
8
|
+
import { useCopilotTextareaEditor } from './chunk-6SYD77G6.mjs';
|
|
9
|
+
import { defaultBaseAutosuggestionsConfig } from './chunk-6LKDH2UJ.mjs';
|
|
10
10
|
import { __spreadValues, __objRest } from './chunk-MRXNTQOX.mjs';
|
|
11
11
|
import { useMemo, useState, useCallback, useEffect } from 'react';
|
|
12
12
|
import { Editor } from 'slate';
|
|
@@ -121,4 +121,4 @@ function BaseCopilotTextarea(props) {
|
|
|
121
121
|
|
|
122
122
|
export { BaseCopilotTextarea };
|
|
123
123
|
//# sourceMappingURL=out.js.map
|
|
124
|
-
//# sourceMappingURL=chunk-
|
|
124
|
+
//# sourceMappingURL=chunk-CHK3DSAA.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/base-copilot-textarea/base-copilot-textarea.tsx"],"names":["_a","value"],"mappings":"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","sourcesContent":["// This example is for an Editor with `ReactEditor` and `HistoryEditor`\nimport {\n TextareaHTMLAttributes,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { Descendant, Editor } from \"slate\";\nimport { Editable, Slate } from \"slate-react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { useAutosuggestions } from \"../../hooks/use-autosuggestions\";\nimport { useCopilotTextareaEditor } from \"../../hooks/use-copilot-textarea-editor\";\nimport {\n getFullEditorTextWithNewlines,\n getTextAroundCursor,\n} from \"../../lib/get-text-around-cursor\";\nimport { addAutocompletionsToEditor } from \"../../lib/slatejs-edits/add-autocompletions\";\nimport { clearAutocompletionsFromEditor } from \"../../lib/slatejs-edits/clear-autocompletions\";\nimport { replaceEditorText } from \"../../lib/slatejs-edits/replace-text\";\nimport {\n AutosuggestionsBareFunction,\n BaseAutosuggestionsConfig,\n defaultBaseAutosuggestionsConfig,\n} from \"../../types/base\";\nimport { AutosuggestionState } from \"../../types/base/autosuggestion-state\";\nimport { makeRenderElementFunction } from \"./render-element\";\nimport { makeRenderPlaceholderFunction } from \"./render-placeholder\";\n\nexport interface BaseCopilotTextareaProps\n extends TextareaHTMLAttributes<HTMLDivElement> {\n placeholderStyle?: React.CSSProperties;\n suggestionsStyle?: React.CSSProperties;\n value?: string;\n onValueChange?: (value: string) => void;\n autosuggestionsConfig: Partial<BaseAutosuggestionsConfig> & {\n purposePrompt: string;\n };\n}\n\nexport function BaseCopilotTextarea(\n props: BaseCopilotTextareaProps & {\n autosuggestionsFunction: AutosuggestionsBareFunction;\n }\n): JSX.Element {\n const autosuggestionsConfig: BaseAutosuggestionsConfig = {\n ...defaultBaseAutosuggestionsConfig,\n ...props.autosuggestionsConfig,\n };\n\n const valueOnInitialRender = useMemo(() => props.value ?? \"\", []);\n const [lastKnownFullEditorText, setLastKnownFullEditorText] =\n useState(valueOnInitialRender);\n\n const initialValue: Descendant[] = useMemo(() => {\n return [\n {\n type: \"paragraph\",\n children: [{ text: valueOnInitialRender }],\n },\n ];\n }, [valueOnInitialRender]);\n\n const editor = useCopilotTextareaEditor();\n\n const insertText = useCallback(\n (autosuggestion: AutosuggestionState) => {\n Editor.insertText(editor, autosuggestion.text, {\n at: autosuggestion.point,\n });\n },\n [editor]\n );\n\n const {\n currentAutocompleteSuggestion,\n onChangeHandler: onChangeHandlerForAutocomplete,\n onKeyDownHandler: onKeyDownHandlerForAutocomplete,\n } = useAutosuggestions(\n autosuggestionsConfig.debounceTime,\n autosuggestionsConfig.acceptAutosuggestionKey,\n props.autosuggestionsFunction,\n insertText,\n autosuggestionsConfig.disableWhenEmpty\n );\n\n // sync autosuggestions state with the editor\n useEffect(() => {\n clearAutocompletionsFromEditor(editor);\n if (currentAutocompleteSuggestion) {\n addAutocompletionsToEditor(\n editor,\n currentAutocompleteSuggestion.text,\n currentAutocompleteSuggestion.point\n );\n }\n }, [currentAutocompleteSuggestion]);\n\n const renderElementMemoized = useMemo(() => {\n const suggestionStyleAugmented: React.CSSProperties = {\n ...props.suggestionsStyle,\n };\n\n return makeRenderElementFunction(suggestionStyleAugmented);\n }, [props.suggestionsStyle]);\n\n const renderPlaceholderMemoized = useMemo(() => {\n // For some reason slateJS specifies a top value of 0, which makes for strange styling. We override this here.\n const placeholderStyleSlatejsOverrides: React.CSSProperties = {\n top: undefined,\n };\n\n const placeholderStyleAugmented: React.CSSProperties = {\n ...placeholderStyleSlatejsOverrides,\n ...props.placeholderStyle,\n };\n\n return makeRenderPlaceholderFunction(placeholderStyleAugmented);\n }, [props.placeholderStyle]);\n\n // update the editor text, but only when the value changes from outside the component\n useEffect(() => {\n if (props.value === lastKnownFullEditorText) {\n return;\n }\n\n setLastKnownFullEditorText(props.value ?? \"\");\n replaceEditorText(editor, props.value ?? \"\");\n }, [props.value]);\n\n // separate into TextareaHTMLAttributes<HTMLDivElement> and CopilotTextareaProps\n const {\n placeholderStyle,\n value,\n onValueChange,\n autosuggestionsConfig: autosuggestionsConfigFromProps,\n autosuggestionsFunction,\n className,\n ...propsToForward\n } = props;\n\n const moddedClassName = (() => {\n const baseClassName = \"copilot-textarea\";\n const defaultTailwindClassName = \"bg-white overflow-y-auto resize-y\";\n const mergedClassName = twMerge(defaultTailwindClassName, className ?? \"\");\n return `${baseClassName} ${mergedClassName}`;\n })();\n\n return (\n // Add the editable component inside the context.\n <Slate\n editor={editor}\n initialValue={initialValue}\n onChange={(value) => {\n const newEditorState = getTextAroundCursor(editor);\n\n const fullEditorText = newEditorState\n ? newEditorState.textBeforeCursor + newEditorState.textAfterCursor\n : getFullEditorTextWithNewlines(editor); // we don't double-parse the editor. When `newEditorState` is null, we didn't parse the editor yet.\n\n setLastKnownFullEditorText(fullEditorText);\n onChangeHandlerForAutocomplete(newEditorState);\n props.onValueChange?.(fullEditorText);\n }}\n >\n <Editable\n renderElement={renderElementMemoized}\n renderPlaceholder={renderPlaceholderMemoized}\n onKeyDown={onKeyDownHandlerForAutocomplete}\n className={moddedClassName}\n {...propsToForward}\n />\n </Slate>\n );\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/base-copilot-textarea/render-placeholder.tsx"],"names":[],"mappings":";;;;;;;AAaM;AAPC,SAAS,8BACd,kBAC2B;AAC3B,SAAO,CAAC,UAAkC;AACxC,UAAqC,WAAM,YAAnC,QAVZ,IAUyC,IAAnB,2BAAmB,IAAnB,CAAV;AAER,WACE,oBAAC,wCACK,iBADL;AAAA,MAEC,OAAO,kCACF,QACA;AAAA,MAGJ,gBAAM;AAAA,MACT;AAAA,EAEJ;AACF","sourcesContent":["import { RenderElementProps, RenderPlaceholderProps } from \"slate-react\";\n\nexport type RenderPlaceholderFunction = (\n props: RenderPlaceholderProps\n) => 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"]}
|