@copilotkit/react-textarea 0.10.0 → 0.11.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 +168 -164
- package/CHANGELOG.md +6 -0
- package/dist/{chunk-CU2M5BIJ.mjs → chunk-YICIML6J.mjs} +26 -5
- package/dist/chunk-YICIML6J.mjs.map +1 -0
- package/dist/{chunk-NHLYAJCQ.mjs → chunk-YTT5NE6B.mjs} +2 -2
- package/dist/chunk-YTT5NE6B.mjs.map +1 -0
- package/dist/components/base-copilot-textarea/base-copilot-textarea.d.ts +4 -13
- package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +1 -1
- package/dist/components/copilot-textarea/copilot-textarea.d.ts +2 -3
- package/dist/components/copilot-textarea/copilot-textarea.mjs +2 -2
- package/dist/components/index.d.ts +3 -2
- package/dist/components/index.mjs +2 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.mjs +3 -3
- package/dist/types/base/base-copilot-textarea-props.d.ts +38 -0
- package/dist/types/base/base-copilot-textarea-props.mjs +3 -0
- package/dist/types/base/base-copilot-textarea-props.mjs.map +1 -0
- package/dist/types/base/index.d.ts +2 -0
- package/dist/types/index.d.ts +2 -0
- package/package.json +3 -3
- package/src/components/base-copilot-textarea/base-copilot-textarea.tsx +37 -21
- package/src/components/copilot-textarea/copilot-textarea.tsx +2 -4
- package/src/components/index.ts +0 -1
- package/src/types/base/base-copilot-textarea-props.tsx +37 -0
- package/src/types/base/index.ts +3 -1
- package/dist/chunk-CU2M5BIJ.mjs.map +0 -1
- package/dist/chunk-NHLYAJCQ.mjs.map +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,178 +1,182 @@
|
|
|
1
1
|
|
|
2
|
-
> @copilotkit/react-textarea@0.
|
|
2
|
+
> @copilotkit/react-textarea@0.11.0 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-textarea
|
|
3
3
|
> tsup --treeshake
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
[34mCLI[39m Building entry: src/index.tsx, src/components/index.ts, src/context/index.ts, src/hooks/index.ts, src/hooks/use-autosuggestions.ts, src/hooks/use-copilot-textarea-editor.tsx, src/lib/debouncer.ts, src/lib/editor-to-text.ts, src/lib/get-text-around-cursor.ts, src/lib/utils.test.ts, src/lib/utils.ts, src/types/index.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/base-copilot-textarea/use-add-branding-css.tsx, src/components/copilot-textarea/copilot-textarea.tsx, src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.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, src/types/base/autosuggestion-state.ts, src/types/base/autosuggestions-bare-function.ts, src/types/base/base-autosuggestions-config.tsx, src/types/base/base-copilot-textarea-props.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
|
|
6
|
+
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
7
|
+
[34mCLI[39m tsup v6.5.0
|
|
8
|
+
[34mCLI[39m Using tsup config: /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-textarea/tsup.config.ts
|
|
9
|
+
[34mCLI[39m Target: es6
|
|
10
|
+
[34mCLI[39m Cleaning output folder
|
|
11
|
+
[34mESM[39m Build start
|
|
12
12
|
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
|
+
[34mDTS[39m Build start
|
|
16
|
+
Generated an empty chunk: "base-copilot-textarea-props".
|
|
17
|
+
Generated an empty chunk: "custom-editor".
|
|
16
18
|
Generated an empty chunk: "minimal-chat-gpt-message".
|
|
17
19
|
Generated an empty chunk: "autosuggestion-state".
|
|
18
20
|
Generated an empty chunk: "autosuggestions-bare-function".
|
|
19
|
-
Generated an empty chunk: "custom-editor".
|
|
20
21
|
Generated an empty chunk: "chunk-FD6FGKYY".
|
|
21
|
-
Generated an empty chunk: "chunk-IU3WTXLQ".
|
|
22
22
|
Generated an empty chunk: "chunk-MMVDU6DF".
|
|
23
23
|
Generated an empty chunk: "chunk-AZQCUNBV".
|
|
24
24
|
Generated an empty chunk: "chunk-WJHSY5T6".
|
|
25
|
+
Generated an empty chunk: "chunk-IU3WTXLQ".
|
|
25
26
|
Generated an empty chunk: "chunk-H4VKQGVU".
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
27
|
+
[32mESM[39m [1mdist/index.css [22m[32m5.75 KB[39m
|
|
28
|
+
[32mESM[39m [1mdist/components/index.css [22m[32m242.00 B[39m
|
|
29
|
+
[32mESM[39m [1mdist/components/copilot-textarea/copilot-textarea.css [22m[32m253.00 B[39m
|
|
30
|
+
[32mESM[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.css [22m[32m258.00 B[39m
|
|
31
|
+
[32mESM[39m [1mdist/index.css.map [22m[32m12.37 KB[39m
|
|
32
|
+
[32mESM[39m [1mdist/components/index.css.map [22m[32m429.00 B[39m
|
|
33
|
+
[32mESM[39m [1mdist/lib/utils.test.mjs [22m[32m200.00 B[39m
|
|
34
|
+
[32mESM[39m [1mdist/lib/slatejs-edits/add-autocompletions.mjs [22m[32m186.00 B[39m
|
|
35
|
+
[32mESM[39m [1mdist/types/index.mjs [22m[32m387.00 B[39m
|
|
36
|
+
[32mESM[39m [1mdist/context/index.mjs [22m[32m98.00 B[39m
|
|
37
|
+
[32mESM[39m [1mdist/hooks/index.mjs [22m[32m98.00 B[39m
|
|
38
|
+
[32mESM[39m [1mdist/chunk-FD6FGKYY.mjs [22m[32m76.00 B[39m
|
|
39
|
+
[32mESM[39m [1mdist/chunk-MMVDU6DF.mjs [22m[32m76.00 B[39m
|
|
40
|
+
[32mESM[39m [1mdist/chunk-AZQCUNBV.mjs [22m[32m76.00 B[39m
|
|
41
|
+
[32mESM[39m [1mdist/chunk-WJHSY5T6.mjs [22m[32m76.00 B[39m
|
|
42
|
+
[32mESM[39m [1mdist/chunk-7KWRVIYV.mjs [22m[32m314.00 B[39m
|
|
43
|
+
[32mESM[39m [1mdist/chunk-IU3WTXLQ.mjs [22m[32m76.00 B[39m
|
|
44
|
+
[32mESM[39m [1mdist/chunk-H4VKQGVU.mjs [22m[32m76.00 B[39m
|
|
45
|
+
[32mESM[39m [1mdist/chunk-MRXNTQOX.mjs [22m[32m1.92 KB[39m
|
|
46
|
+
[32mESM[39m [1mdist/components/copilot-textarea/copilot-textarea.mjs [22m[32m837.00 B[39m
|
|
47
|
+
[32mESM[39m [1mdist/lib/slatejs-edits/clear-autocompletions.mjs [22m[32m192.00 B[39m
|
|
48
|
+
[32mESM[39m [1mdist/lib/slatejs-edits/replace-text.mjs [22m[32m170.00 B[39m
|
|
49
|
+
[32mESM[39m [1mdist/lib/slatejs-edits/with-partial-history.mjs [22m[32m198.00 B[39m
|
|
50
|
+
[32mESM[39m [1mdist/lib/get-text-around-cursor.mjs [22m[32m232.00 B[39m
|
|
51
|
+
[32mESM[39m [1mdist/lib/utils.mjs [22m[32m220.00 B[39m
|
|
52
|
+
[32mESM[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.mjs [22m[32m706.00 B[39m
|
|
53
|
+
[32mESM[39m [1mdist/components/base-copilot-textarea/render-element.mjs [22m[32m180.00 B[39m
|
|
54
|
+
[32mESM[39m [1mdist/components/base-copilot-textarea/render-placeholder.mjs [22m[32m188.00 B[39m
|
|
55
|
+
[32mESM[39m [1mdist/components/base-copilot-textarea/use-add-branding-css.mjs [22m[32m178.00 B[39m
|
|
56
|
+
[32mESM[39m [1mdist/index.mjs [22m[32m1.00 KB[39m
|
|
57
|
+
[32mESM[39m [1mdist/components/index.mjs [22m[32m824.00 B[39m
|
|
58
|
+
[32mESM[39m [1mdist/chunk-YTT5NE6B.mjs [22m[32m1.06 KB[39m
|
|
59
|
+
[32mESM[39m [1mdist/chunk-A3SFEHWZ.mjs [22m[32m2.09 KB[39m
|
|
60
|
+
[32mESM[39m [1mdist/chunk-EHQ5TN4R.mjs [22m[32m2.75 KB[39m
|
|
61
|
+
[32mESM[39m [1mdist/chunk-YICIML6J.mjs [22m[32m5.58 KB[39m
|
|
62
|
+
[32mESM[39m [1mdist/chunk-WJYQWL4I.mjs [22m[32m595.00 B[39m
|
|
63
|
+
[32mESM[39m [1mdist/chunk-4XYYSJ5C.mjs [22m[32m527.00 B[39m
|
|
64
|
+
[32mESM[39m [1mdist/chunk-TSF4AJIK.mjs [22m[32m716.00 B[39m
|
|
65
|
+
[32mESM[39m [1mdist/chunk-3UQM3NLM.mjs [22m[32m1.76 KB[39m
|
|
66
|
+
[32mESM[39m [1mdist/chunk-LNAIMEB2.mjs [22m[32m1.09 KB[39m
|
|
67
|
+
[32mESM[39m [1mdist/chunk-OELUUJZY.mjs [22m[32m625.00 B[39m
|
|
68
|
+
[32mESM[39m [1mdist/chunk-THWPPG6M.mjs [22m[32m1.40 KB[39m
|
|
69
|
+
[32mESM[39m [1mdist/hooks/use-autosuggestions.mjs [22m[32m268.00 B[39m
|
|
70
|
+
[32mESM[39m [1mdist/chunk-E2UEE45I.mjs [22m[32m3.02 KB[39m
|
|
71
|
+
[32mESM[39m [1mdist/chunk-UW3ITU2Y.mjs [22m[32m496.00 B[39m
|
|
72
|
+
[32mESM[39m [1mdist/chunk-KGKLUWKW.mjs [22m[32m1.37 KB[39m
|
|
73
|
+
[32mESM[39m [1mdist/hooks/use-copilot-textarea-editor.mjs [22m[32m218.00 B[39m
|
|
74
|
+
[32mESM[39m [1mdist/chunk-6SYD77G6.mjs [22m[32m2.01 KB[39m
|
|
75
|
+
[32mESM[39m [1mdist/chunk-KCHYD3EB.mjs [22m[32m3.08 KB[39m
|
|
76
|
+
[32mESM[39m [1mdist/lib/debouncer.mjs [22m[32m153.00 B[39m
|
|
77
|
+
[32mESM[39m [1mdist/chunk-NKW5OU2S.mjs [22m[32m959.00 B[39m
|
|
78
|
+
[32mESM[39m [1mdist/lib/editor-to-text.mjs [22m[32m1.34 KB[39m
|
|
79
|
+
[32mESM[39m [1mdist/components/copilot-textarea/copilot-textarea.css.map [22m[32m432.00 B[39m
|
|
80
|
+
[32mESM[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.css.map [22m[32m432.00 B[39m
|
|
81
|
+
[32mESM[39m [1mdist/types/base/base-copilot-textarea-props.mjs [22m[32m89.00 B[39m
|
|
82
|
+
[32mESM[39m [1mdist/types/standard-autosuggestions/minimal-chat-gpt-message.mjs [22m[32m86.00 B[39m
|
|
83
|
+
[32mESM[39m [1mdist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs [22m[32m220.00 B[39m
|
|
84
|
+
[32mESM[39m [1mdist/types/base/custom-editor.mjs [22m[32m75.00 B[39m
|
|
85
|
+
[32mESM[39m [1mdist/types/base/autosuggestion-state.mjs [22m[32m82.00 B[39m
|
|
86
|
+
[32mESM[39m [1mdist/types/base/autosuggestions-bare-function.mjs [22m[32m91.00 B[39m
|
|
87
|
+
[32mESM[39m [1mdist/types/base/base-autosuggestions-config.mjs [22m[32m200.00 B[39m
|
|
88
|
+
[32mESM[39m [1mdist/types/base/editor-autocomplete-state.mjs [22m[32m227.00 B[39m
|
|
89
|
+
[32mESM[39m [1mdist/types/base/index.mjs [22m[32m213.00 B[39m
|
|
90
|
+
[32mESM[39m [1mdist/types/standard-autosuggestions/autosuggestions-config.mjs [22m[32m310.00 B[39m
|
|
91
|
+
[32mESM[39m [1mdist/types/standard-autosuggestions/index.mjs [22m[32m328.00 B[39m
|
|
92
|
+
[32mESM[39m [1mdist/lib/utils.test.mjs.map [22m[32m349.00 B[39m
|
|
93
|
+
[32mESM[39m [1mdist/lib/slatejs-edits/add-autocompletions.mjs.map [22m[32m51.00 B[39m
|
|
94
|
+
[32mESM[39m [1mdist/types/index.mjs.map [22m[32m51.00 B[39m
|
|
95
|
+
[32mESM[39m [1mdist/context/index.mjs.map [22m[32m51.00 B[39m
|
|
96
|
+
[32mESM[39m [1mdist/hooks/index.mjs.map [22m[32m51.00 B[39m
|
|
97
|
+
[32mESM[39m [1mdist/chunk-FD6FGKYY.mjs.map [22m[32m51.00 B[39m
|
|
98
|
+
[32mESM[39m [1mdist/chunk-MMVDU6DF.mjs.map [22m[32m51.00 B[39m
|
|
99
|
+
[32mESM[39m [1mdist/chunk-AZQCUNBV.mjs.map [22m[32m51.00 B[39m
|
|
100
|
+
[32mESM[39m [1mdist/chunk-WJHSY5T6.mjs.map [22m[32m51.00 B[39m
|
|
101
|
+
[32mESM[39m [1mdist/chunk-7KWRVIYV.mjs.map [22m[32m623.00 B[39m
|
|
102
|
+
[32mESM[39m [1mdist/chunk-IU3WTXLQ.mjs.map [22m[32m51.00 B[39m
|
|
103
|
+
[32mESM[39m [1mdist/chunk-H4VKQGVU.mjs.map [22m[32m51.00 B[39m
|
|
104
|
+
[32mESM[39m [1mdist/chunk-MRXNTQOX.mjs.map [22m[32m71.00 B[39m
|
|
105
|
+
[32mESM[39m [1mdist/components/copilot-textarea/copilot-textarea.mjs.map [22m[32m51.00 B[39m
|
|
106
|
+
[32mESM[39m [1mdist/lib/slatejs-edits/clear-autocompletions.mjs.map [22m[32m51.00 B[39m
|
|
107
|
+
[32mESM[39m [1mdist/lib/slatejs-edits/replace-text.mjs.map [22m[32m51.00 B[39m
|
|
108
|
+
[32mESM[39m [1mdist/lib/slatejs-edits/with-partial-history.mjs.map [22m[32m51.00 B[39m
|
|
109
|
+
[32mESM[39m [1mdist/lib/get-text-around-cursor.mjs.map [22m[32m51.00 B[39m
|
|
110
|
+
[32mESM[39m [1mdist/lib/utils.mjs.map [22m[32m51.00 B[39m
|
|
111
|
+
[32mESM[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.mjs.map [22m[32m51.00 B[39m
|
|
112
|
+
[32mESM[39m [1mdist/components/base-copilot-textarea/render-element.mjs.map [22m[32m51.00 B[39m
|
|
113
|
+
[32mESM[39m [1mdist/components/base-copilot-textarea/render-placeholder.mjs.map [22m[32m51.00 B[39m
|
|
114
|
+
[32mESM[39m [1mdist/components/base-copilot-textarea/use-add-branding-css.mjs.map [22m[32m51.00 B[39m
|
|
115
|
+
[32mESM[39m [1mdist/index.mjs.map [22m[32m51.00 B[39m
|
|
116
|
+
[32mESM[39m [1mdist/components/index.mjs.map [22m[32m51.00 B[39m
|
|
117
|
+
[32mESM[39m [1mdist/chunk-YTT5NE6B.mjs.map [22m[32m1.81 KB[39m
|
|
118
|
+
[32mESM[39m [1mdist/chunk-A3SFEHWZ.mjs.map [22m[32m4.73 KB[39m
|
|
119
|
+
[32mESM[39m [1mdist/chunk-EHQ5TN4R.mjs.map [22m[32m4.01 KB[39m
|
|
120
|
+
[32mESM[39m [1mdist/chunk-YICIML6J.mjs.map [22m[32m10.01 KB[39m
|
|
121
|
+
[32mESM[39m [1mdist/chunk-WJYQWL4I.mjs.map [22m[32m1.04 KB[39m
|
|
122
|
+
[32mESM[39m [1mdist/chunk-4XYYSJ5C.mjs.map [22m[32m921.00 B[39m
|
|
123
|
+
[32mESM[39m [1mdist/chunk-TSF4AJIK.mjs.map [22m[32m1.31 KB[39m
|
|
124
|
+
[32mESM[39m [1mdist/chunk-3UQM3NLM.mjs.map [22m[32m3.63 KB[39m
|
|
125
|
+
[32mESM[39m [1mdist/chunk-LNAIMEB2.mjs.map [22m[32m1.73 KB[39m
|
|
126
|
+
[32mESM[39m [1mdist/chunk-OELUUJZY.mjs.map [22m[32m957.00 B[39m
|
|
127
|
+
[32mESM[39m [1mdist/chunk-THWPPG6M.mjs.map [22m[32m2.24 KB[39m
|
|
128
|
+
[32mESM[39m [1mdist/hooks/use-autosuggestions.mjs.map [22m[32m51.00 B[39m
|
|
129
|
+
[32mESM[39m [1mdist/chunk-E2UEE45I.mjs.map [22m[32m5.78 KB[39m
|
|
130
|
+
[32mESM[39m [1mdist/chunk-UW3ITU2Y.mjs.map [22m[32m878.00 B[39m
|
|
131
|
+
[32mESM[39m [1mdist/chunk-KGKLUWKW.mjs.map [22m[32m2.45 KB[39m
|
|
132
|
+
[32mESM[39m [1mdist/hooks/use-copilot-textarea-editor.mjs.map [22m[32m51.00 B[39m
|
|
133
|
+
[32mESM[39m [1mdist/chunk-6SYD77G6.mjs.map [22m[32m3.78 KB[39m
|
|
134
|
+
[32mESM[39m [1mdist/chunk-KCHYD3EB.mjs.map [22m[32m6.12 KB[39m
|
|
135
|
+
[32mESM[39m [1mdist/lib/debouncer.mjs.map [22m[32m51.00 B[39m
|
|
136
|
+
[32mESM[39m [1mdist/chunk-NKW5OU2S.mjs.map [22m[32m1.60 KB[39m
|
|
137
|
+
[32mESM[39m [1mdist/lib/editor-to-text.mjs.map [22m[32m2.83 KB[39m
|
|
138
|
+
[32mESM[39m [1mdist/types/base/base-copilot-textarea-props.mjs.map [22m[32m51.00 B[39m
|
|
139
|
+
[32mESM[39m [1mdist/types/standard-autosuggestions/minimal-chat-gpt-message.mjs.map [22m[32m51.00 B[39m
|
|
140
|
+
[32mESM[39m [1mdist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map [22m[32m51.00 B[39m
|
|
141
|
+
[32mESM[39m [1mdist/types/base/custom-editor.mjs.map [22m[32m51.00 B[39m
|
|
142
|
+
[32mESM[39m [1mdist/types/base/autosuggestion-state.mjs.map [22m[32m51.00 B[39m
|
|
143
|
+
[32mESM[39m [1mdist/types/base/autosuggestions-bare-function.mjs.map [22m[32m51.00 B[39m
|
|
144
|
+
[32mESM[39m [1mdist/types/base/base-autosuggestions-config.mjs.map [22m[32m51.00 B[39m
|
|
145
|
+
[32mESM[39m [1mdist/types/base/editor-autocomplete-state.mjs.map [22m[32m51.00 B[39m
|
|
146
|
+
[32mESM[39m [1mdist/types/base/index.mjs.map [22m[32m51.00 B[39m
|
|
147
|
+
[32mESM[39m [1mdist/types/standard-autosuggestions/autosuggestions-config.mjs.map [22m[32m51.00 B[39m
|
|
148
|
+
[32mESM[39m [1mdist/types/standard-autosuggestions/index.mjs.map [22m[32m51.00 B[39m
|
|
149
|
+
[32mESM[39m ⚡️ Build success in 3609ms
|
|
150
|
+
[32mDTS[39m ⚡️ Build success in 6074ms
|
|
151
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m825.00 B[39m
|
|
152
|
+
[32mDTS[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.d.ts [22m[32m445.00 B[39m
|
|
153
|
+
[32mDTS[39m [1mdist/components/copilot-textarea/copilot-textarea.d.ts [22m[32m641.00 B[39m
|
|
154
|
+
[32mDTS[39m [1mdist/types/base/base-autosuggestions-config.d.ts [22m[32m355.00 B[39m
|
|
155
|
+
[32mDTS[39m [1mdist/types/base/autosuggestions-bare-function.d.ts [22m[32m162.00 B[39m
|
|
156
|
+
[32mDTS[39m [1mdist/types/base/base-copilot-textarea-props.d.ts [22m[32m1.89 KB[39m
|
|
157
|
+
[32mDTS[39m [1mdist/types/standard-autosuggestions/autosuggestions-config.d.ts [22m[32m884.00 B[39m
|
|
158
|
+
[32mDTS[39m [1mdist/types/standard-autosuggestions/minimal-chat-gpt-message.d.ts [22m[32m129.00 B[39m
|
|
159
|
+
[32mDTS[39m [1mdist/components/index.d.ts [22m[32m509.00 B[39m
|
|
160
|
+
[32mDTS[39m [1mdist/context/index.d.ts [22m[32m1.00 B[39m
|
|
161
|
+
[32mDTS[39m [1mdist/hooks/index.d.ts [22m[32m1.00 B[39m
|
|
162
|
+
[32mDTS[39m [1mdist/hooks/use-autosuggestions.d.ts [22m[32m879.00 B[39m
|
|
163
|
+
[32mDTS[39m [1mdist/types/base/autosuggestion-state.d.ts [22m[32m143.00 B[39m
|
|
164
|
+
[32mDTS[39m [1mdist/types/base/editor-autocomplete-state.d.ts [22m[32m342.00 B[39m
|
|
165
|
+
[32mDTS[39m [1mdist/hooks/use-copilot-textarea-editor.d.ts [22m[32m223.00 B[39m
|
|
166
|
+
[32mDTS[39m [1mdist/types/base/custom-editor.d.ts [22m[32m801.00 B[39m
|
|
167
|
+
[32mDTS[39m [1mdist/lib/debouncer.d.ts [22m[32m372.00 B[39m
|
|
168
|
+
[32mDTS[39m [1mdist/lib/editor-to-text.d.ts [22m[32m243.00 B[39m
|
|
169
|
+
[32mDTS[39m [1mdist/lib/get-text-around-cursor.d.ts [22m[32m453.00 B[39m
|
|
170
|
+
[32mDTS[39m [1mdist/lib/utils.test.d.ts [22m[32m1.00 B[39m
|
|
171
|
+
[32mDTS[39m [1mdist/lib/utils.d.ts [22m[32m638.00 B[39m
|
|
172
|
+
[32mDTS[39m [1mdist/types/index.d.ts [22m[32m589.00 B[39m
|
|
173
|
+
[32mDTS[39m [1mdist/components/base-copilot-textarea/render-element.d.ts [22m[32m292.00 B[39m
|
|
174
|
+
[32mDTS[39m [1mdist/components/base-copilot-textarea/render-placeholder.d.ts [22m[32m321.00 B[39m
|
|
175
|
+
[32mDTS[39m [1mdist/components/base-copilot-textarea/use-add-branding-css.d.ts [22m[32m158.00 B[39m
|
|
176
|
+
[32mDTS[39m [1mdist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts [22m[32m1.79 KB[39m
|
|
177
|
+
[32mDTS[39m [1mdist/lib/slatejs-edits/add-autocompletions.d.ts [22m[32m302.00 B[39m
|
|
178
|
+
[32mDTS[39m [1mdist/lib/slatejs-edits/clear-autocompletions.d.ts [22m[32m250.00 B[39m
|
|
179
|
+
[32mDTS[39m [1mdist/lib/slatejs-edits/replace-text.d.ts [22m[32m139.00 B[39m
|
|
180
|
+
[32mDTS[39m [1mdist/lib/slatejs-edits/with-partial-history.d.ts [22m[32m542.00 B[39m
|
|
181
|
+
[32mDTS[39m [1mdist/types/base/index.d.ts [22m[32m287.00 B[39m
|
|
182
|
+
[32mDTS[39m [1mdist/types/standard-autosuggestions/index.d.ts [22m[32m286.00 B[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -92,14 +92,18 @@ function BaseCopilotTextarea(props) {
|
|
|
92
92
|
onValueChange,
|
|
93
93
|
autosuggestionsConfig: autosuggestionsConfigFromProps,
|
|
94
94
|
autosuggestionsFunction,
|
|
95
|
-
className
|
|
95
|
+
className,
|
|
96
|
+
onChange,
|
|
97
|
+
onKeyDown
|
|
96
98
|
} = _a, propsToForward = __objRest(_a, [
|
|
97
99
|
"placeholderStyle",
|
|
98
100
|
"value",
|
|
99
101
|
"onValueChange",
|
|
100
102
|
"autosuggestionsConfig",
|
|
101
103
|
"autosuggestionsFunction",
|
|
102
|
-
"className"
|
|
104
|
+
"className",
|
|
105
|
+
"onChange",
|
|
106
|
+
"onKeyDown"
|
|
103
107
|
]);
|
|
104
108
|
const moddedClassName = (() => {
|
|
105
109
|
const baseClassName = "copilot-textarea";
|
|
@@ -112,22 +116,39 @@ function BaseCopilotTextarea(props) {
|
|
|
112
116
|
editor,
|
|
113
117
|
initialValue,
|
|
114
118
|
onChange: (value2) => {
|
|
115
|
-
var _a2;
|
|
119
|
+
var _a2, _b;
|
|
116
120
|
const newEditorState = getTextAroundCursor(editor);
|
|
117
121
|
const fullEditorText = newEditorState ? newEditorState.textBeforeCursor + newEditorState.textAfterCursor : getFullEditorTextWithNewlines(editor);
|
|
118
122
|
setLastKnownFullEditorText(fullEditorText);
|
|
119
123
|
onChangeHandlerForAutocomplete(newEditorState);
|
|
120
124
|
(_a2 = props.onValueChange) == null ? void 0 : _a2.call(props, fullEditorText);
|
|
125
|
+
(_b = props.onChange) == null ? void 0 : _b.call(props, makeSemiFakeReactTextAreaEvent(fullEditorText));
|
|
121
126
|
},
|
|
122
127
|
children: /* @__PURE__ */ jsx(Editable, __spreadValues({
|
|
123
128
|
renderElement: renderElementMemoized,
|
|
124
129
|
renderPlaceholder: renderPlaceholderMemoized,
|
|
125
|
-
onKeyDown:
|
|
130
|
+
onKeyDown: (event) => {
|
|
131
|
+
var _a2;
|
|
132
|
+
onKeyDownHandlerForAutocomplete(event);
|
|
133
|
+
(_a2 = props.onKeyDown) == null ? void 0 : _a2.call(props, event);
|
|
134
|
+
},
|
|
126
135
|
className: moddedClassName
|
|
127
136
|
}, propsToForward))
|
|
128
137
|
});
|
|
129
138
|
}
|
|
139
|
+
function makeSemiFakeReactTextAreaEvent(currentText) {
|
|
140
|
+
return {
|
|
141
|
+
target: {
|
|
142
|
+
value: currentText,
|
|
143
|
+
type: "copilot-textarea"
|
|
144
|
+
},
|
|
145
|
+
currentTarget: {
|
|
146
|
+
value: currentText,
|
|
147
|
+
type: "copilot-textarea"
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
}
|
|
130
151
|
|
|
131
152
|
export { BaseCopilotTextarea };
|
|
132
153
|
//# sourceMappingURL=out.js.map
|
|
133
|
-
//# sourceMappingURL=chunk-
|
|
154
|
+
//# sourceMappingURL=chunk-YICIML6J.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":["import { useCallback, useEffect, useMemo, useState } 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 { BaseCopilotTextareaProps } from \"../../types/base/base-copilot-textarea-props\";\nimport \"./base-copilot-textarea.css\";\nimport { makeRenderElementFunction } from \"./render-element\";\nimport { makeRenderPlaceholderFunction } from \"./render-placeholder\";\nimport { useAddBrandingCss } from \"./use-add-branding-css\";\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 autosuggestionsConfig.disabled\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 suggestionStyleAugmented: React.CSSProperties = useMemo(() => {\n return {\n fontStyle: \"italic\",\n color: \"gray\",\n ...props.suggestionsStyle,\n };\n }, [props.suggestionsStyle]);\n\n useAddBrandingCss(suggestionStyleAugmented, props.disableBranding);\n\n const renderElementMemoized = useMemo(() => {\n return makeRenderElementFunction(suggestionStyleAugmented);\n }, [suggestionStyleAugmented]);\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 onChange,\n onKeyDown,\n ...propsToForward\n } = props;\n\n const moddedClassName = (() => {\n const baseClassName = \"copilot-textarea\";\n const brandingClass = props.disableBranding\n ? \"no-branding\"\n : \"with-branding\";\n const defaultTailwindClassName = \"bg-white overflow-y-auto resize-y\";\n const mergedClassName = twMerge(defaultTailwindClassName, className ?? \"\");\n return `${baseClassName} ${brandingClass} ${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\n props.onValueChange?.(fullEditorText);\n props.onChange?.(makeSemiFakeReactTextAreaEvent(fullEditorText));\n }}\n >\n <Editable\n renderElement={renderElementMemoized}\n renderPlaceholder={renderPlaceholderMemoized}\n onKeyDown={(event) => {\n onKeyDownHandlerForAutocomplete(event); // forward the event for internal use\n props.onKeyDown?.(event); // forward the event for external use\n }}\n className={moddedClassName}\n {...propsToForward}\n />\n </Slate>\n );\n}\n\n// Consumers of <textarea> expect a `onChange: (React.ChangeEvent<HTMLTextAreaElement>) => void` event handler to be passed in.\n// This is *extremely* common, and we want to support it.\n//\n// We can't support the full functionality, but in 99% of cases, the consumer only cares about the `event.target.value` property --\n// that's how they get the new value of the textarea.\n//\n// So, the tradeoff we are making is minimizing compiler complaint, with a small chance of runtime error.\n// The alternative would be defining a different onChange entrypoint (we actually do have that in `onValueChange`),\n// And starting to explain subtleties to users the moment they try to use the component for the first time for very basic functionality.\n//\n// If this proves problematic, we can always revisit this decision.\nfunction makeSemiFakeReactTextAreaEvent(\n currentText: string\n): React.ChangeEvent<HTMLTextAreaElement> {\n return {\n target: {\n value: currentText,\n type: \"copilot-textarea\",\n },\n currentTarget: {\n value: currentText,\n type: \"copilot-textarea\",\n },\n } as React.ChangeEvent<HTMLTextAreaElement>;\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useMakeStandardAutosuggestionFunction } from './chunk-A3SFEHWZ.mjs';
|
|
2
2
|
import { defaultAutosuggestionsConfig } from './chunk-EHQ5TN4R.mjs';
|
|
3
|
-
import { BaseCopilotTextarea } from './chunk-
|
|
3
|
+
import { BaseCopilotTextarea } from './chunk-YICIML6J.mjs';
|
|
4
4
|
import { __spreadValues, __spreadProps } from './chunk-MRXNTQOX.mjs';
|
|
5
5
|
import { jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -22,4 +22,4 @@ function CopilotTextarea(props) {
|
|
|
22
22
|
|
|
23
23
|
export { CopilotTextarea };
|
|
24
24
|
//# sourceMappingURL=out.js.map
|
|
25
|
-
//# sourceMappingURL=chunk-
|
|
25
|
+
//# sourceMappingURL=chunk-YTT5NE6B.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/copilot-textarea/copilot-textarea.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AA+BI;AAhBG,SAAS,gBAAgB,OAA0C;AACxE,QAAM,wBAA+C,kCAChD,+BACA,MAAM;AAGX,QAAM,0BAA0B;AAAA,IAC9B,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,EACxB;AAEA,SACE,oBAAC,sDACK,QADL;AAAA,IAEC;AAAA,IACA;AAAA,IACF;AAEJ","sourcesContent":["// This example is for an Editor with `ReactEditor` and `HistoryEditor`\nimport { useMakeStandardAutosuggestionFunction } from \"../../hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function\";\nimport { BaseCopilotTextareaProps } from \"../../types/base/base-copilot-textarea-props\";\nimport {\n AutosuggestionsConfig,\n defaultAutosuggestionsConfig,\n} from \"../../types/standard-autosuggestions\";\nimport { BaseCopilotTextarea } from \"../base-copilot-textarea/base-copilot-textarea\";\n\nexport interface CopilotTextareaProps extends BaseCopilotTextareaProps {\n autosuggestionsConfig: Partial<AutosuggestionsConfig> & {\n purposePrompt: string;\n };\n}\n\nexport function CopilotTextarea(props: CopilotTextareaProps): JSX.Element {\n const autosuggestionsConfig: AutosuggestionsConfig = {\n ...defaultAutosuggestionsConfig,\n ...props.autosuggestionsConfig,\n };\n\n const autosuggestionsFunction = useMakeStandardAutosuggestionFunction(\n autosuggestionsConfig.purposePrompt,\n autosuggestionsConfig.apiEndpoint,\n autosuggestionsConfig.makeSystemPrompt,\n autosuggestionsConfig.fewShotMessages,\n autosuggestionsConfig.externalContextCategories,\n autosuggestionsConfig.forwardedParams\n );\n\n return (\n <BaseCopilotTextarea\n {...props}\n autosuggestionsConfig={autosuggestionsConfig}\n autosuggestionsFunction={autosuggestionsFunction}\n />\n );\n}\n"]}
|
|
@@ -1,19 +1,10 @@
|
|
|
1
|
-
import { TextareaHTMLAttributes } from 'react';
|
|
2
|
-
import { BaseAutosuggestionsConfig } from '../../types/base/base-autosuggestions-config.js';
|
|
3
1
|
import { AutosuggestionsBareFunction } from '../../types/base/autosuggestions-bare-function.js';
|
|
2
|
+
import { BaseCopilotTextareaProps } from '../../types/base/base-copilot-textarea-props.js';
|
|
3
|
+
import 'react';
|
|
4
|
+
import '../../types/base/base-autosuggestions-config.js';
|
|
4
5
|
|
|
5
|
-
interface BaseCopilotTextareaProps extends TextareaHTMLAttributes<HTMLDivElement> {
|
|
6
|
-
disableBranding?: boolean;
|
|
7
|
-
placeholderStyle?: React.CSSProperties;
|
|
8
|
-
suggestionsStyle?: React.CSSProperties;
|
|
9
|
-
value?: string;
|
|
10
|
-
onValueChange?: (value: string) => void;
|
|
11
|
-
autosuggestionsConfig: Partial<BaseAutosuggestionsConfig> & {
|
|
12
|
-
purposePrompt: string;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
6
|
declare function BaseCopilotTextarea(props: BaseCopilotTextareaProps & {
|
|
16
7
|
autosuggestionsFunction: AutosuggestionsBareFunction;
|
|
17
8
|
}): JSX.Element;
|
|
18
9
|
|
|
19
|
-
export { BaseCopilotTextarea
|
|
10
|
+
export { BaseCopilotTextarea };
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
import { BaseCopilotTextareaProps } from '../../types/base/base-copilot-textarea-props.js';
|
|
1
2
|
import { AutosuggestionsConfig } from '../../types/standard-autosuggestions/autosuggestions-config.js';
|
|
2
|
-
import
|
|
3
|
+
import 'react';
|
|
3
4
|
import '../../types/base/base-autosuggestions-config.js';
|
|
4
5
|
import '../../types/standard-autosuggestions/minimal-chat-gpt-message.js';
|
|
5
|
-
import 'react';
|
|
6
|
-
import '../../types/base/autosuggestions-bare-function.js';
|
|
7
6
|
|
|
8
7
|
interface CopilotTextareaProps extends BaseCopilotTextareaProps {
|
|
9
8
|
autosuggestionsConfig: Partial<AutosuggestionsConfig> & {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { CopilotTextarea } from '../../chunk-
|
|
1
|
+
export { CopilotTextarea } from '../../chunk-YTT5NE6B.mjs';
|
|
2
2
|
import '../../chunk-A3SFEHWZ.mjs';
|
|
3
3
|
import '../../chunk-AZQCUNBV.mjs';
|
|
4
4
|
import '../../chunk-EHQ5TN4R.mjs';
|
|
5
|
-
import '../../chunk-
|
|
5
|
+
import '../../chunk-YICIML6J.mjs';
|
|
6
6
|
import '../../chunk-WJYQWL4I.mjs';
|
|
7
7
|
import '../../chunk-4XYYSJ5C.mjs';
|
|
8
8
|
import '../../chunk-TSF4AJIK.mjs';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export { BaseCopilotTextarea
|
|
1
|
+
export { BaseCopilotTextarea } from './base-copilot-textarea/base-copilot-textarea.js';
|
|
2
2
|
export { CopilotTextarea, CopilotTextareaProps } from './copilot-textarea/copilot-textarea.js';
|
|
3
|
+
import '../types/base/autosuggestions-bare-function.js';
|
|
4
|
+
import '../types/base/base-copilot-textarea-props.js';
|
|
3
5
|
import 'react';
|
|
4
6
|
import '../types/base/base-autosuggestions-config.js';
|
|
5
|
-
import '../types/base/autosuggestions-bare-function.js';
|
|
6
7
|
import '../types/standard-autosuggestions/autosuggestions-config.js';
|
|
7
8
|
import '../types/standard-autosuggestions/minimal-chat-gpt-message.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import '../chunk-MMVDU6DF.mjs';
|
|
2
|
-
export { CopilotTextarea } from '../chunk-
|
|
2
|
+
export { CopilotTextarea } from '../chunk-YTT5NE6B.mjs';
|
|
3
3
|
import '../chunk-A3SFEHWZ.mjs';
|
|
4
4
|
import '../chunk-AZQCUNBV.mjs';
|
|
5
5
|
import '../chunk-EHQ5TN4R.mjs';
|
|
6
|
-
export { BaseCopilotTextarea } from '../chunk-
|
|
6
|
+
export { BaseCopilotTextarea } from '../chunk-YICIML6J.mjs';
|
|
7
7
|
import '../chunk-WJYQWL4I.mjs';
|
|
8
8
|
import '../chunk-4XYYSJ5C.mjs';
|
|
9
9
|
import '../chunk-TSF4AJIK.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
export { BaseCopilotTextarea
|
|
1
|
+
export { BaseCopilotTextarea } from './components/base-copilot-textarea/base-copilot-textarea.js';
|
|
2
2
|
export { CopilotTextarea, CopilotTextareaProps } from './components/copilot-textarea/copilot-textarea.js';
|
|
3
3
|
export { BaseAutosuggestionsConfig, defaultBaseAutosuggestionsConfig } from './types/base/base-autosuggestions-config.js';
|
|
4
4
|
export { AutosuggestionsBareFunction } from './types/base/autosuggestions-bare-function.js';
|
|
5
|
+
export { BaseCopilotTextareaProps } from './types/base/base-copilot-textarea-props.js';
|
|
5
6
|
export { AutosuggestionsConfig, MakeSystemPrompt, defaultAutosuggestionsConfig, defaultFewShotMessages, defaultMakeSystemPrompt } from './types/standard-autosuggestions/autosuggestions-config.js';
|
|
6
7
|
export { MinimalChatGPTMessage } from './types/standard-autosuggestions/minimal-chat-gpt-message.js';
|
|
7
8
|
import 'react';
|
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import './chunk-FD6FGKYY.mjs';
|
|
2
|
-
import './chunk-IU3WTXLQ.mjs';
|
|
3
2
|
import './chunk-MMVDU6DF.mjs';
|
|
4
|
-
export { CopilotTextarea } from './chunk-
|
|
3
|
+
export { CopilotTextarea } from './chunk-YTT5NE6B.mjs';
|
|
5
4
|
import './chunk-A3SFEHWZ.mjs';
|
|
6
5
|
import './chunk-AZQCUNBV.mjs';
|
|
7
6
|
export { defaultAutosuggestionsConfig, defaultFewShotMessages, defaultMakeSystemPrompt } from './chunk-EHQ5TN4R.mjs';
|
|
8
|
-
export { BaseCopilotTextarea } from './chunk-
|
|
7
|
+
export { BaseCopilotTextarea } from './chunk-YICIML6J.mjs';
|
|
9
8
|
import './chunk-WJYQWL4I.mjs';
|
|
10
9
|
import './chunk-4XYYSJ5C.mjs';
|
|
11
10
|
import './chunk-TSF4AJIK.mjs';
|
|
@@ -15,6 +14,7 @@ export { defaultBaseAutosuggestionsConfig } from './chunk-7KWRVIYV.mjs';
|
|
|
15
14
|
import './chunk-LNAIMEB2.mjs';
|
|
16
15
|
import './chunk-OELUUJZY.mjs';
|
|
17
16
|
import './chunk-THWPPG6M.mjs';
|
|
17
|
+
import './chunk-IU3WTXLQ.mjs';
|
|
18
18
|
import './chunk-H4VKQGVU.mjs';
|
|
19
19
|
import './chunk-E2UEE45I.mjs';
|
|
20
20
|
import './chunk-UW3ITU2Y.mjs';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { TextareaHTMLAttributes } from 'react';
|
|
2
|
+
import { BaseAutosuggestionsConfig } from './base-autosuggestions-config.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* `BaseCopilotTextareaProps` defines the properties for the `BaseCopilotTextarea` component.
|
|
6
|
+
*
|
|
7
|
+
* @extends {Omit<TextareaHTMLAttributes<HTMLDivElement>, "onChange">}
|
|
8
|
+
*
|
|
9
|
+
* @property {boolean} [disableBranding=false] - Determines whether branding should be disabled. Default is `false`.
|
|
10
|
+
*
|
|
11
|
+
* @property {React.CSSProperties} [placeholderStyle] - Specifies the CSS styles to apply to the placeholder text.
|
|
12
|
+
*
|
|
13
|
+
* @property {React.CSSProperties} [suggestionsStyle] - Specifies the CSS styles to apply to the suggestions list.
|
|
14
|
+
*
|
|
15
|
+
* @property {string} [value] - The initial value of the textarea. Can be controlled via `onValueChange`.
|
|
16
|
+
*
|
|
17
|
+
* @property {(value: string) => void} [onValueChange] - Callback invoked when the value of the textarea changes.
|
|
18
|
+
*
|
|
19
|
+
* @property {(event: React.ChangeEvent<HTMLTextAreaElement>) => void} [onChange] - Callback invoked when a `change` event is triggered on the textarea element. The event only actually includes the `event.target.value` and `event.currentTarget.value` properties (all that is required in 99% of cases).
|
|
20
|
+
*
|
|
21
|
+
* @property {Partial<BaseAutosuggestionsConfig> & {
|
|
22
|
+
* purposePrompt: string;
|
|
23
|
+
* }} autosuggestionsConfig - Configuration settings for the autosuggestions feature.
|
|
24
|
+
* Includes a mandatory `purposePrompt` to guide the autosuggestions.
|
|
25
|
+
*/
|
|
26
|
+
interface BaseCopilotTextareaProps extends Omit<TextareaHTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
27
|
+
disableBranding?: boolean;
|
|
28
|
+
placeholderStyle?: React.CSSProperties;
|
|
29
|
+
suggestionsStyle?: React.CSSProperties;
|
|
30
|
+
value?: string;
|
|
31
|
+
onValueChange?: (value: string) => void;
|
|
32
|
+
onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;
|
|
33
|
+
autosuggestionsConfig: Partial<BaseAutosuggestionsConfig> & {
|
|
34
|
+
purposePrompt: string;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { BaseCopilotTextareaProps };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export { BaseAutosuggestionsConfig, defaultBaseAutosuggestionsConfig } from './base-autosuggestions-config.js';
|
|
2
2
|
export { AutosuggestionsBareFunction } from './autosuggestions-bare-function.js';
|
|
3
|
+
export { BaseCopilotTextareaProps } from './base-copilot-textarea-props.js';
|
|
4
|
+
import 'react';
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { BaseAutosuggestionsConfig, defaultBaseAutosuggestionsConfig } from './base/base-autosuggestions-config.js';
|
|
2
2
|
export { AutosuggestionsBareFunction } from './base/autosuggestions-bare-function.js';
|
|
3
|
+
export { BaseCopilotTextareaProps } from './base/base-copilot-textarea-props.js';
|
|
3
4
|
export { AutosuggestionsConfig, MakeSystemPrompt, defaultAutosuggestionsConfig, defaultFewShotMessages, defaultMakeSystemPrompt } from './standard-autosuggestions/autosuggestions-config.js';
|
|
4
5
|
export { MinimalChatGPTMessage } from './standard-autosuggestions/minimal-chat-gpt-message.js';
|
|
6
|
+
import 'react';
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
-
"version": "0.
|
|
7
|
+
"version": "0.11.0",
|
|
8
8
|
"sideEffects": [
|
|
9
9
|
"**/*.css"
|
|
10
10
|
],
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"ts-jest": "^29.1.1",
|
|
31
31
|
"tsup": "^6.1.3",
|
|
32
32
|
"typescript": "^4.9.4",
|
|
33
|
+
"eslint-config-custom": "0.2.0",
|
|
33
34
|
"tailwind-config": "0.1.0",
|
|
34
|
-
"tsconfig": "0.3.0"
|
|
35
|
-
"eslint-config-custom": "0.2.0"
|
|
35
|
+
"tsconfig": "0.3.0"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"ai": "^2.1.22",
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
import "
|
|
2
|
-
import {
|
|
3
|
-
TextareaHTMLAttributes,
|
|
4
|
-
useCallback,
|
|
5
|
-
useEffect,
|
|
6
|
-
useMemo,
|
|
7
|
-
useState,
|
|
8
|
-
} from "react";
|
|
1
|
+
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
9
2
|
import { Descendant, Editor } from "slate";
|
|
10
3
|
import { Editable, Slate } from "slate-react";
|
|
11
4
|
import { twMerge } from "tailwind-merge";
|
|
@@ -24,22 +17,12 @@ import {
|
|
|
24
17
|
defaultBaseAutosuggestionsConfig,
|
|
25
18
|
} from "../../types/base";
|
|
26
19
|
import { AutosuggestionState } from "../../types/base/autosuggestion-state";
|
|
20
|
+
import { BaseCopilotTextareaProps } from "../../types/base/base-copilot-textarea-props";
|
|
21
|
+
import "./base-copilot-textarea.css";
|
|
27
22
|
import { makeRenderElementFunction } from "./render-element";
|
|
28
23
|
import { makeRenderPlaceholderFunction } from "./render-placeholder";
|
|
29
24
|
import { useAddBrandingCss } from "./use-add-branding-css";
|
|
30
25
|
|
|
31
|
-
export interface BaseCopilotTextareaProps
|
|
32
|
-
extends TextareaHTMLAttributes<HTMLDivElement> {
|
|
33
|
-
disableBranding?: boolean;
|
|
34
|
-
placeholderStyle?: React.CSSProperties;
|
|
35
|
-
suggestionsStyle?: React.CSSProperties;
|
|
36
|
-
value?: string;
|
|
37
|
-
onValueChange?: (value: string) => void;
|
|
38
|
-
autosuggestionsConfig: Partial<BaseAutosuggestionsConfig> & {
|
|
39
|
-
purposePrompt: string;
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
|
|
43
26
|
export function BaseCopilotTextarea(
|
|
44
27
|
props: BaseCopilotTextareaProps & {
|
|
45
28
|
autosuggestionsFunction: AutosuggestionsBareFunction;
|
|
@@ -145,6 +128,8 @@ export function BaseCopilotTextarea(
|
|
|
145
128
|
autosuggestionsConfig: autosuggestionsConfigFromProps,
|
|
146
129
|
autosuggestionsFunction,
|
|
147
130
|
className,
|
|
131
|
+
onChange,
|
|
132
|
+
onKeyDown,
|
|
148
133
|
...propsToForward
|
|
149
134
|
} = props;
|
|
150
135
|
|
|
@@ -172,16 +157,47 @@ export function BaseCopilotTextarea(
|
|
|
172
157
|
|
|
173
158
|
setLastKnownFullEditorText(fullEditorText);
|
|
174
159
|
onChangeHandlerForAutocomplete(newEditorState);
|
|
160
|
+
|
|
175
161
|
props.onValueChange?.(fullEditorText);
|
|
162
|
+
props.onChange?.(makeSemiFakeReactTextAreaEvent(fullEditorText));
|
|
176
163
|
}}
|
|
177
164
|
>
|
|
178
165
|
<Editable
|
|
179
166
|
renderElement={renderElementMemoized}
|
|
180
167
|
renderPlaceholder={renderPlaceholderMemoized}
|
|
181
|
-
onKeyDown={
|
|
168
|
+
onKeyDown={(event) => {
|
|
169
|
+
onKeyDownHandlerForAutocomplete(event); // forward the event for internal use
|
|
170
|
+
props.onKeyDown?.(event); // forward the event for external use
|
|
171
|
+
}}
|
|
182
172
|
className={moddedClassName}
|
|
183
173
|
{...propsToForward}
|
|
184
174
|
/>
|
|
185
175
|
</Slate>
|
|
186
176
|
);
|
|
187
177
|
}
|
|
178
|
+
|
|
179
|
+
// Consumers of <textarea> expect a `onChange: (React.ChangeEvent<HTMLTextAreaElement>) => void` event handler to be passed in.
|
|
180
|
+
// This is *extremely* common, and we want to support it.
|
|
181
|
+
//
|
|
182
|
+
// We can't support the full functionality, but in 99% of cases, the consumer only cares about the `event.target.value` property --
|
|
183
|
+
// that's how they get the new value of the textarea.
|
|
184
|
+
//
|
|
185
|
+
// So, the tradeoff we are making is minimizing compiler complaint, with a small chance of runtime error.
|
|
186
|
+
// The alternative would be defining a different onChange entrypoint (we actually do have that in `onValueChange`),
|
|
187
|
+
// And starting to explain subtleties to users the moment they try to use the component for the first time for very basic functionality.
|
|
188
|
+
//
|
|
189
|
+
// If this proves problematic, we can always revisit this decision.
|
|
190
|
+
function makeSemiFakeReactTextAreaEvent(
|
|
191
|
+
currentText: string
|
|
192
|
+
): React.ChangeEvent<HTMLTextAreaElement> {
|
|
193
|
+
return {
|
|
194
|
+
target: {
|
|
195
|
+
value: currentText,
|
|
196
|
+
type: "copilot-textarea",
|
|
197
|
+
},
|
|
198
|
+
currentTarget: {
|
|
199
|
+
value: currentText,
|
|
200
|
+
type: "copilot-textarea",
|
|
201
|
+
},
|
|
202
|
+
} as React.ChangeEvent<HTMLTextAreaElement>;
|
|
203
|
+
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
// This example is for an Editor with `ReactEditor` and `HistoryEditor`
|
|
2
2
|
import { useMakeStandardAutosuggestionFunction } from "../../hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function";
|
|
3
|
+
import { BaseCopilotTextareaProps } from "../../types/base/base-copilot-textarea-props";
|
|
3
4
|
import {
|
|
4
5
|
AutosuggestionsConfig,
|
|
5
6
|
defaultAutosuggestionsConfig,
|
|
6
7
|
} from "../../types/standard-autosuggestions";
|
|
7
|
-
import {
|
|
8
|
-
BaseCopilotTextarea,
|
|
9
|
-
BaseCopilotTextareaProps,
|
|
10
|
-
} from "../base-copilot-textarea/base-copilot-textarea";
|
|
8
|
+
import { BaseCopilotTextarea } from "../base-copilot-textarea/base-copilot-textarea";
|
|
11
9
|
|
|
12
10
|
export interface CopilotTextareaProps extends BaseCopilotTextareaProps {
|
|
13
11
|
autosuggestionsConfig: Partial<AutosuggestionsConfig> & {
|
package/src/components/index.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { BaseCopilotTextarea } from "./base-copilot-textarea/base-copilot-textarea";
|
|
2
|
-
export type { BaseCopilotTextareaProps } from "./base-copilot-textarea/base-copilot-textarea";
|
|
3
2
|
|
|
4
3
|
export { CopilotTextarea } from "./copilot-textarea/copilot-textarea";
|
|
5
4
|
export type { CopilotTextareaProps } from "./copilot-textarea/copilot-textarea";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { TextareaHTMLAttributes } from "react";
|
|
2
|
+
import { BaseAutosuggestionsConfig } from ".";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* `BaseCopilotTextareaProps` defines the properties for the `BaseCopilotTextarea` component.
|
|
6
|
+
*
|
|
7
|
+
* @extends {Omit<TextareaHTMLAttributes<HTMLDivElement>, "onChange">}
|
|
8
|
+
*
|
|
9
|
+
* @property {boolean} [disableBranding=false] - Determines whether branding should be disabled. Default is `false`.
|
|
10
|
+
*
|
|
11
|
+
* @property {React.CSSProperties} [placeholderStyle] - Specifies the CSS styles to apply to the placeholder text.
|
|
12
|
+
*
|
|
13
|
+
* @property {React.CSSProperties} [suggestionsStyle] - Specifies the CSS styles to apply to the suggestions list.
|
|
14
|
+
*
|
|
15
|
+
* @property {string} [value] - The initial value of the textarea. Can be controlled via `onValueChange`.
|
|
16
|
+
*
|
|
17
|
+
* @property {(value: string) => void} [onValueChange] - Callback invoked when the value of the textarea changes.
|
|
18
|
+
*
|
|
19
|
+
* @property {(event: React.ChangeEvent<HTMLTextAreaElement>) => void} [onChange] - Callback invoked when a `change` event is triggered on the textarea element. The event only actually includes the `event.target.value` and `event.currentTarget.value` properties (all that is required in 99% of cases).
|
|
20
|
+
*
|
|
21
|
+
* @property {Partial<BaseAutosuggestionsConfig> & {
|
|
22
|
+
* purposePrompt: string;
|
|
23
|
+
* }} autosuggestionsConfig - Configuration settings for the autosuggestions feature.
|
|
24
|
+
* Includes a mandatory `purposePrompt` to guide the autosuggestions.
|
|
25
|
+
*/
|
|
26
|
+
export interface BaseCopilotTextareaProps
|
|
27
|
+
extends Omit<TextareaHTMLAttributes<HTMLDivElement>, "onChange"> {
|
|
28
|
+
disableBranding?: boolean;
|
|
29
|
+
placeholderStyle?: React.CSSProperties;
|
|
30
|
+
suggestionsStyle?: React.CSSProperties;
|
|
31
|
+
value?: string;
|
|
32
|
+
onValueChange?: (value: string) => void;
|
|
33
|
+
onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;
|
|
34
|
+
autosuggestionsConfig: Partial<BaseAutosuggestionsConfig> & {
|
|
35
|
+
purposePrompt: string;
|
|
36
|
+
};
|
|
37
|
+
}
|
package/src/types/base/index.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { defaultBaseAutosuggestionsConfig } from "./base-autosuggestions-config";
|
|
2
2
|
|
|
3
|
-
export type { BaseAutosuggestionsConfig } from "./base-autosuggestions-config";
|
|
4
3
|
export type { AutosuggestionsBareFunction } from "./autosuggestions-bare-function";
|
|
4
|
+
export type { BaseAutosuggestionsConfig } from "./base-autosuggestions-config";
|
|
5
|
+
|
|
6
|
+
export type { BaseCopilotTextareaProps } from "./base-copilot-textarea-props";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/base-copilot-textarea/base-copilot-textarea.tsx"],"names":["_a","value"],"mappings":"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","sourcesContent":["import \"./base-copilot-textarea.css\";\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\";\nimport { useAddBrandingCss } from \"./use-add-branding-css\";\n\nexport interface BaseCopilotTextareaProps\n extends TextareaHTMLAttributes<HTMLDivElement> {\n disableBranding?: boolean;\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 autosuggestionsConfig.disabled\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 suggestionStyleAugmented: React.CSSProperties = useMemo(() => {\n return {\n fontStyle: \"italic\",\n color: \"gray\",\n ...props.suggestionsStyle,\n };\n }, [props.suggestionsStyle]);\n\n useAddBrandingCss(suggestionStyleAugmented, props.disableBranding);\n\n const renderElementMemoized = useMemo(() => {\n return makeRenderElementFunction(suggestionStyleAugmented);\n }, [suggestionStyleAugmented]);\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 brandingClass = props.disableBranding\n ? \"no-branding\"\n : \"with-branding\";\n const defaultTailwindClassName = \"bg-white overflow-y-auto resize-y\";\n const mergedClassName = twMerge(defaultTailwindClassName, className ?? \"\");\n return `${baseClassName} ${brandingClass} ${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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/copilot-textarea/copilot-textarea.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAiCI;AAhBG,SAAS,gBAAgB,OAA0C;AACxE,QAAM,wBAA+C,kCAChD,+BACA,MAAM;AAGX,QAAM,0BAA0B;AAAA,IAC9B,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,EACxB;AAEA,SACE,oBAAC,sDACK,QADL;AAAA,IAEC;AAAA,IACA;AAAA,IACF;AAEJ","sourcesContent":["// This example is for an Editor with `ReactEditor` and `HistoryEditor`\nimport { useMakeStandardAutosuggestionFunction } from \"../../hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function\";\nimport {\n AutosuggestionsConfig,\n defaultAutosuggestionsConfig,\n} from \"../../types/standard-autosuggestions\";\nimport {\n BaseCopilotTextarea,\n BaseCopilotTextareaProps,\n} from \"../base-copilot-textarea/base-copilot-textarea\";\n\nexport interface CopilotTextareaProps extends BaseCopilotTextareaProps {\n autosuggestionsConfig: Partial<AutosuggestionsConfig> & {\n purposePrompt: string;\n };\n}\n\nexport function CopilotTextarea(props: CopilotTextareaProps): JSX.Element {\n const autosuggestionsConfig: AutosuggestionsConfig = {\n ...defaultAutosuggestionsConfig,\n ...props.autosuggestionsConfig,\n };\n\n const autosuggestionsFunction = useMakeStandardAutosuggestionFunction(\n autosuggestionsConfig.purposePrompt,\n autosuggestionsConfig.apiEndpoint,\n autosuggestionsConfig.makeSystemPrompt,\n autosuggestionsConfig.fewShotMessages,\n autosuggestionsConfig.externalContextCategories,\n autosuggestionsConfig.forwardedParams\n );\n\n return (\n <BaseCopilotTextarea\n {...props}\n autosuggestionsConfig={autosuggestionsConfig}\n autosuggestionsFunction={autosuggestionsFunction}\n />\n );\n}\n"]}
|