@copilotkit/react-textarea 0.21.0 → 0.24.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.
Files changed (59) hide show
  1. package/.turbo/turbo-build.log +30 -30
  2. package/CHANGELOG.md +28 -0
  3. package/dist/{chunk-IJC2EXRO.mjs → chunk-3L6CNVCE.mjs} +3 -3
  4. package/dist/chunk-3L6CNVCE.mjs.map +1 -0
  5. package/dist/{chunk-WPIA53HF.mjs → chunk-4HHYJGZE.mjs} +1 -1
  6. package/dist/chunk-4HHYJGZE.mjs.map +1 -0
  7. package/dist/{chunk-PGGR6HL5.mjs → chunk-4LOLCQGR.mjs} +3 -1
  8. package/dist/chunk-4LOLCQGR.mjs.map +1 -0
  9. package/dist/{chunk-DYGPLRY3.mjs → chunk-4UYKBG35.mjs} +1 -1
  10. package/dist/{chunk-DYGPLRY3.mjs.map → chunk-4UYKBG35.mjs.map} +1 -1
  11. package/dist/{chunk-S6JUGJK2.mjs → chunk-6Z2ATUNY.mjs} +4 -2
  12. package/dist/chunk-6Z2ATUNY.mjs.map +1 -0
  13. package/dist/{chunk-UIN6BEVR.mjs → chunk-AQHORK66.mjs} +7 -7
  14. package/dist/{chunk-UIN6BEVR.mjs.map → chunk-AQHORK66.mjs.map} +1 -1
  15. package/dist/{chunk-MRPRZQMN.mjs → chunk-GIJ3JZ4P.mjs} +2 -2
  16. package/dist/{chunk-F2TIBXML.mjs → chunk-GUH3Y2H4.mjs} +4 -4
  17. package/dist/chunk-GUH3Y2H4.mjs.map +1 -0
  18. package/dist/{chunk-JBI2MZB4.mjs → chunk-JYVC4AW3.mjs} +7 -4
  19. package/dist/chunk-JYVC4AW3.mjs.map +1 -0
  20. package/dist/{chunk-NO3EYPQH.mjs → chunk-O4MHJSK2.mjs} +2 -2
  21. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +6 -6
  22. package/dist/components/copilot-textarea/copilot-textarea.mjs +10 -10
  23. package/dist/components/hovering-toolbar/hovering-toolbar.d.ts +1 -0
  24. package/dist/components/hovering-toolbar/hovering-toolbar.mjs +4 -4
  25. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs +2 -2
  26. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs +3 -3
  27. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.mjs +1 -1
  28. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs +3 -3
  29. package/dist/components/index.mjs +10 -10
  30. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts +1 -1
  31. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs +3 -3
  32. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.d.ts +1 -1
  33. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs +3 -3
  34. package/dist/index.mjs +10 -10
  35. package/dist/types/autosuggestions-config/autosuggestions-config.d.ts +1 -1
  36. package/dist/types/autosuggestions-config/autosuggestions-config.mjs +2 -2
  37. package/dist/types/autosuggestions-config/index.mjs +2 -2
  38. package/dist/types/base/base-autosuggestions-config.mjs +1 -1
  39. package/dist/types/base/base-copilot-textarea-props.d.ts +3 -0
  40. package/dist/types/base/index.mjs +1 -1
  41. package/dist/types/index.mjs +2 -2
  42. package/package.json +2 -2
  43. package/src/components/base-copilot-textarea/base-copilot-textarea.tsx +2 -0
  44. package/src/components/copilot-textarea/copilot-textarea.tsx +2 -2
  45. package/src/components/hovering-toolbar/hovering-toolbar.tsx +5 -1
  46. package/src/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.tsx +7 -1
  47. package/src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx +1 -1
  48. package/src/hooks/make-autosuggestions-function/use-make-standard-insertion-function.tsx +1 -1
  49. package/src/types/autosuggestions-config/autosuggestions-config.tsx +4 -3
  50. package/src/types/base/base-autosuggestions-config.tsx +2 -1
  51. package/src/types/base/base-copilot-textarea-props.tsx +3 -0
  52. package/dist/chunk-F2TIBXML.mjs.map +0 -1
  53. package/dist/chunk-IJC2EXRO.mjs.map +0 -1
  54. package/dist/chunk-JBI2MZB4.mjs.map +0 -1
  55. package/dist/chunk-PGGR6HL5.mjs.map +0 -1
  56. package/dist/chunk-S6JUGJK2.mjs.map +0 -1
  57. package/dist/chunk-WPIA53HF.mjs.map +0 -1
  58. /package/dist/{chunk-MRPRZQMN.mjs.map → chunk-GIJ3JZ4P.mjs.map} +0 -0
  59. /package/dist/{chunk-NO3EYPQH.mjs.map → chunk-O4MHJSK2.mjs.map} +0 -0
@@ -1,5 +1,5 @@
1
1
 
2
- > @copilotkit/react-textarea@0.21.0 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-textarea
2
+ > @copilotkit/react-textarea@0.24.0 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-textarea
3
3
  > tsup --treeshake
4
4
 
5
5
  CLI Building entry: src/index.tsx, src/components/index.ts, src/context/index.ts, src/hooks/index.ts, src/lib/debouncer.ts, src/lib/editor-to-text.ts, src/lib/get-text-around-cursor.ts, src/lib/retry.tsx, src/lib/stream-promise-flatten.ts, src/lib/utils.test.ts, src/lib/utils.ts, src/types/html-copilot-textarea-element.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/track-cursor-moved-since-last-text-change.tsx, src/components/base-copilot-textarea/use-add-branding-css.tsx, src/components/copilot-textarea/copilot-textarea.tsx, src/components/hovering-toolbar/hovering-editor-provider.tsx, src/components/hovering-toolbar/hovering-toolbar-components.tsx, src/components/hovering-toolbar/hovering-toolbar.tsx, src/components/manual-ui/chip-with-icon.tsx, src/components/source-search-box/source-search-box.tsx, src/components/ui/button.tsx, src/components/ui/card.tsx, src/components/ui/command.tsx, src/components/ui/dialog.tsx, src/components/ui/label.tsx, src/components/ui/separator.tsx, src/components/ui/textarea.tsx, src/hooks/base-copilot-textarea-implementation/use-autosuggestions.ts, src/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.tsx, src/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.ts, src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx, src/hooks/make-autosuggestions-function/use-make-standard-insertion-function.tsx, src/hooks/misc/use-autosize-textarea.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/autosuggestions-config/autosuggestions-config-user-specified.tsx, src/types/autosuggestions-config/autosuggestions-config.tsx, src/types/autosuggestions-config/editing-api-config.tsx, src/types/autosuggestions-config/index.ts, src/types/autosuggestions-config/insertions-api-config.tsx, src/types/autosuggestions-config/suggestions-api-config.tsx, 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/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.tsx, src/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.tsx, src/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.tsx, src/components/hovering-toolbar/text-insertion-prompt-box/index.ts, src/types/autosuggestions-config/subtypes/chatlike-api-endpoint.tsx, src/types/autosuggestions-config/subtypes/make-system-prompt.ts, src/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.tsx
@@ -58,7 +58,6 @@ Generated an empty chunk: "chunk-H4VKQGVU".
58
58
  ESM dist/chunk-WADHCMPK.mjs 76.00 B
59
59
  ESM dist/chunk-L7VVZH4Q.mjs 76.00 B
60
60
  ESM dist/chunk-WJHSY5T6.mjs 76.00 B
61
- ESM dist/chunk-S6JUGJK2.mjs 410.00 B
62
61
  ESM dist/chunk-IU3WTXLQ.mjs 76.00 B
63
62
  ESM dist/chunk-H4VKQGVU.mjs 76.00 B
64
63
  ESM dist/chunk-4S5ZJH3I.mjs 502.00 B
@@ -85,12 +84,12 @@ Generated an empty chunk: "chunk-H4VKQGVU".
85
84
  ESM dist/components/base-copilot-textarea/render-placeholder.mjs 188.00 B
86
85
  ESM dist/index.mjs 1.71 KB
87
86
  ESM dist/components/index.mjs 1.59 KB
88
- ESM dist/chunk-UIN6BEVR.mjs 1.87 KB
89
- ESM dist/chunk-DYGPLRY3.mjs 1.83 KB
90
- ESM dist/chunk-WPIA53HF.mjs 3.73 KB
87
+ ESM dist/chunk-AQHORK66.mjs 1.85 KB
88
+ ESM dist/chunk-4UYKBG35.mjs 1.83 KB
89
+ ESM dist/chunk-4HHYJGZE.mjs 3.73 KB
91
90
  ESM dist/chunk-QJDMIGLU.mjs 1.24 KB
92
- ESM dist/chunk-F2TIBXML.mjs 846.00 B
93
- ESM dist/chunk-JBI2MZB4.mjs 7.77 KB
91
+ ESM dist/chunk-GUH3Y2H4.mjs 874.00 B
92
+ ESM dist/chunk-JYVC4AW3.mjs 7.85 KB
94
93
  ESM dist/chunk-CSGFJU3L.mjs 2.01 KB
95
94
  ESM dist/chunk-KCHYD3EB.mjs 3.08 KB
96
95
  ESM dist/chunk-YQU7WG7T.mjs 2.57 KB
@@ -101,10 +100,10 @@ Generated an empty chunk: "chunk-H4VKQGVU".
101
100
  ESM dist/chunk-JAFCXEPU.mjs 496.00 B
102
101
  ESM dist/chunk-OD7ZMOVE.mjs 1.35 KB
103
102
  ESM dist/chunk-MPME5BW2.mjs 2.16 KB
104
- ESM dist/chunk-IJC2EXRO.mjs 3.68 KB
105
- ESM dist/chunk-NO3EYPQH.mjs 789.00 B
106
- ESM dist/chunk-MRPRZQMN.mjs 8.46 KB
107
- ESM dist/chunk-PGGR6HL5.mjs 1.30 KB
103
+ ESM dist/chunk-3L6CNVCE.mjs 3.71 KB
104
+ ESM dist/chunk-O4MHJSK2.mjs 789.00 B
105
+ ESM dist/chunk-GIJ3JZ4P.mjs 8.46 KB
106
+ ESM dist/chunk-4LOLCQGR.mjs 1.38 KB
108
107
  ESM dist/chunk-ND5PXTAW.mjs 575.00 B
109
108
  ESM dist/chunk-2NURR2DX.mjs 1.82 KB
110
109
  ESM dist/chunk-5EJ5XOGP.mjs 815.00 B
@@ -115,6 +114,7 @@ Generated an empty chunk: "chunk-H4VKQGVU".
115
114
  ESM dist/chunk-O5OWT5GE.mjs 4.40 KB
116
115
  ESM dist/chunk-GCMQHIRF.mjs 759.00 B
117
116
  ESM dist/chunk-KGKLUWKW.mjs 1.37 KB
117
+ ESM dist/chunk-6Z2ATUNY.mjs 506.00 B
118
118
  ESM dist/chunk-LNAIMEB2.mjs 1.09 KB
119
119
  ESM dist/chunk-OELUUJZY.mjs 625.00 B
120
120
  ESM dist/lib/debouncer.mjs 153.00 B
@@ -130,11 +130,11 @@ Generated an empty chunk: "chunk-H4VKQGVU".
130
130
  ESM dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs 227.00 B
131
131
  ESM dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs 605.00 B
132
132
  ESM dist/hooks/misc/use-autosize-textarea.mjs 202.00 B
133
- ESM dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs 86.00 B
134
133
  ESM dist/types/base/base-copilot-textarea-props.mjs 89.00 B
135
134
  ESM dist/types/base/custom-editor.mjs 75.00 B
136
135
  ESM dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs 99.00 B
137
136
  ESM dist/types/base/autosuggestion-state.mjs 82.00 B
137
+ ESM dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs 86.00 B
138
138
  ESM dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs 596.00 B
139
139
  ESM dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.mjs 187.00 B
140
140
  ESM dist/types/base/base-autosuggestions-config.mjs 200.00 B
@@ -168,7 +168,6 @@ Generated an empty chunk: "chunk-H4VKQGVU".
168
168
  ESM dist/chunk-WADHCMPK.mjs.map 51.00 B
169
169
  ESM dist/chunk-L7VVZH4Q.mjs.map 51.00 B
170
170
  ESM dist/chunk-WJHSY5T6.mjs.map 51.00 B
171
- ESM dist/chunk-S6JUGJK2.mjs.map 1017.00 B
172
171
  ESM dist/chunk-IU3WTXLQ.mjs.map 51.00 B
173
172
  ESM dist/chunk-H4VKQGVU.mjs.map 51.00 B
174
173
  ESM dist/chunk-4S5ZJH3I.mjs.map 969.00 B
@@ -195,12 +194,12 @@ Generated an empty chunk: "chunk-H4VKQGVU".
195
194
  ESM dist/components/base-copilot-textarea/render-placeholder.mjs.map 51.00 B
196
195
  ESM dist/index.mjs.map 51.00 B
197
196
  ESM dist/components/index.mjs.map 51.00 B
198
- ESM dist/chunk-UIN6BEVR.mjs.map 3.40 KB
199
- ESM dist/chunk-DYGPLRY3.mjs.map 4.23 KB
200
- ESM dist/chunk-WPIA53HF.mjs.map 7.54 KB
197
+ ESM dist/chunk-AQHORK66.mjs.map 3.39 KB
198
+ ESM dist/chunk-4UYKBG35.mjs.map 4.22 KB
199
+ ESM dist/chunk-4HHYJGZE.mjs.map 7.53 KB
201
200
  ESM dist/chunk-QJDMIGLU.mjs.map 3.10 KB
202
- ESM dist/chunk-F2TIBXML.mjs.map 1.65 KB
203
- ESM dist/chunk-JBI2MZB4.mjs.map 13.85 KB
201
+ ESM dist/chunk-GUH3Y2H4.mjs.map 1.73 KB
202
+ ESM dist/chunk-JYVC4AW3.mjs.map 13.95 KB
204
203
  ESM dist/chunk-CSGFJU3L.mjs.map 3.82 KB
205
204
  ESM dist/chunk-KCHYD3EB.mjs.map 6.12 KB
206
205
  ESM dist/chunk-YQU7WG7T.mjs.map 4.80 KB
@@ -211,10 +210,10 @@ Generated an empty chunk: "chunk-H4VKQGVU".
211
210
  ESM dist/chunk-JAFCXEPU.mjs.map 880.00 B
212
211
  ESM dist/chunk-OD7ZMOVE.mjs.map 2.66 KB
213
212
  ESM dist/chunk-MPME5BW2.mjs.map 3.48 KB
214
- ESM dist/chunk-IJC2EXRO.mjs.map 6.98 KB
215
- ESM dist/chunk-NO3EYPQH.mjs.map 1.48 KB
216
- ESM dist/chunk-MRPRZQMN.mjs.map 13.64 KB
217
- ESM dist/chunk-PGGR6HL5.mjs.map 2.32 KB
213
+ ESM dist/chunk-3L6CNVCE.mjs.map 7.10 KB
214
+ ESM dist/chunk-O4MHJSK2.mjs.map 1.48 KB
215
+ ESM dist/chunk-GIJ3JZ4P.mjs.map 13.64 KB
216
+ ESM dist/chunk-4LOLCQGR.mjs.map 2.48 KB
218
217
  ESM dist/chunk-ND5PXTAW.mjs.map 1.13 KB
219
218
  ESM dist/chunk-2NURR2DX.mjs.map 2.65 KB
220
219
  ESM dist/chunk-5EJ5XOGP.mjs.map 1.15 KB
@@ -225,6 +224,7 @@ Generated an empty chunk: "chunk-H4VKQGVU".
225
224
  ESM dist/chunk-O5OWT5GE.mjs.map 5.87 KB
226
225
  ESM dist/chunk-GCMQHIRF.mjs.map 1.40 KB
227
226
  ESM dist/chunk-KGKLUWKW.mjs.map 2.45 KB
227
+ ESM dist/chunk-6Z2ATUNY.mjs.map 1.09 KB
228
228
  ESM dist/chunk-LNAIMEB2.mjs.map 1.73 KB
229
229
  ESM dist/chunk-OELUUJZY.mjs.map 957.00 B
230
230
  ESM dist/lib/debouncer.mjs.map 51.00 B
@@ -240,11 +240,11 @@ Generated an empty chunk: "chunk-H4VKQGVU".
240
240
  ESM dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs.map 51.00 B
241
241
  ESM dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map 51.00 B
242
242
  ESM dist/hooks/misc/use-autosize-textarea.mjs.map 51.00 B
243
- ESM dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs.map 51.00 B
244
243
  ESM dist/types/base/base-copilot-textarea-props.mjs.map 51.00 B
245
244
  ESM dist/types/base/custom-editor.mjs.map 51.00 B
246
245
  ESM dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs.map 51.00 B
247
246
  ESM dist/types/base/autosuggestion-state.mjs.map 51.00 B
247
+ ESM dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs.map 51.00 B
248
248
  ESM dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs.map 51.00 B
249
249
  ESM dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.mjs.map 51.00 B
250
250
  ESM dist/types/base/base-autosuggestions-config.mjs.map 51.00 B
@@ -260,16 +260,16 @@ Generated an empty chunk: "chunk-H4VKQGVU".
260
260
  ESM dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs.map 51.00 B
261
261
  ESM dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs.map 51.00 B
262
262
  ESM dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs.map 51.00 B
263
- ESM ⚡️ Build success in 4824ms
264
- DTS ⚡️ Build success in 12078ms
263
+ ESM ⚡️ Build success in 2473ms
264
+ DTS ⚡️ Build success in 6476ms
265
265
  DTS dist/index.d.ts 1.47 KB
266
266
  DTS dist/components/base-copilot-textarea/base-copilot-textarea.d.ts 628.00 B
267
267
  DTS dist/components/copilot-textarea/copilot-textarea.d.ts 1.28 KB
268
268
  DTS dist/types/base/base-autosuggestions-config.d.ts 636.00 B
269
269
  DTS dist/types/base/autosuggestions-bare-function.d.ts 970.00 B
270
- DTS dist/types/base/base-copilot-textarea-props.d.ts 2.06 KB
270
+ DTS dist/types/base/base-copilot-textarea-props.d.ts 2.19 KB
271
271
  DTS dist/types/html-copilot-textarea-element.d.ts 165.00 B
272
- DTS dist/types/autosuggestions-config/autosuggestions-config.d.ts 944.00 B
272
+ DTS dist/types/autosuggestions-config/autosuggestions-config.d.ts 924.00 B
273
273
  DTS dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.d.ts 129.00 B
274
274
  DTS dist/types/autosuggestions-config/subtypes/make-system-prompt.d.ts 114.00 B
275
275
  DTS dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.d.ts 1.29 KB
@@ -295,7 +295,7 @@ Generated an empty chunk: "chunk-H4VKQGVU".
295
295
  DTS dist/components/base-copilot-textarea/use-add-branding-css.d.ts 158.00 B
296
296
  DTS dist/components/hovering-toolbar/hovering-editor-provider.d.ts 451.00 B
297
297
  DTS dist/components/hovering-toolbar/hovering-toolbar-components.d.ts 1006.00 B
298
- DTS dist/components/hovering-toolbar/hovering-toolbar.d.ts 372.00 B
298
+ DTS dist/components/hovering-toolbar/hovering-toolbar.d.ts 416.00 B
299
299
  DTS dist/components/manual-ui/chip-with-icon.d.ts 246.00 B
300
300
  DTS dist/components/source-search-box/source-search-box.d.ts 491.00 B
301
301
  DTS dist/components/ui/button.d.ts 766.00 B
@@ -310,8 +310,8 @@ Generated an empty chunk: "chunk-H4VKQGVU".
310
310
  DTS dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.d.ts 226.00 B
311
311
  DTS dist/types/base/custom-editor.d.ts 801.00 B
312
312
  DTS dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.d.ts 326.00 B
313
- DTS dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts 1.71 KB
314
- DTS dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.d.ts 1.87 KB
313
+ DTS dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts 1.70 KB
314
+ DTS dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.d.ts 1.86 KB
315
315
  DTS dist/hooks/misc/use-autosize-textarea.d.ts 185.00 B
316
316
  DTS dist/lib/slatejs-edits/add-autocompletions.d.ts 302.00 B
317
317
  DTS dist/lib/slatejs-edits/clear-autocompletions.d.ts 250.00 B
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # ui
2
2
 
3
+ ## 0.24.0
4
+
5
+ ### Minor Changes
6
+
7
+ - contextCategories no longer optional for reading context
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies
12
+ - @copilotkit/react-core@0.13.0
13
+
14
+ ## 0.23.0
15
+
16
+ ### Minor Changes
17
+
18
+ - fixed bug: useMakeCopilotDocumentReadable category reference
19
+
20
+ ### Patch Changes
21
+
22
+ - Updated dependencies
23
+ - @copilotkit/react-core@0.12.0
24
+
25
+ ## 0.22.0
26
+
27
+ ### Minor Changes
28
+
29
+ - add support for hoverMenuClassname
30
+
3
31
  ## 0.21.0
4
32
 
5
33
  ### Minor Changes
@@ -1,4 +1,4 @@
1
- import { HoveringInsertionPromptBox } from './chunk-NO3EYPQH.mjs';
1
+ import { HoveringInsertionPromptBox } from './chunk-O4MHJSK2.mjs';
2
2
  import { useHoveringEditorContext } from './chunk-YW3REYX6.mjs';
3
3
  import { Portal, Menu } from './chunk-XHUMROEY.mjs';
4
4
  import { getTextAroundSelection, getFullEditorTextWithNewlines } from './chunk-IXJ2HCOA.mjs';
@@ -71,7 +71,7 @@ var HoveringToolbar = (props) => {
71
71
  return /* @__PURE__ */ jsx(Portal, {
72
72
  children: /* @__PURE__ */ jsx(Menu, {
73
73
  ref,
74
- className: "p-2 absolute z-10 top-[-10000px] left-[-10000px] mt-[-6px] opacity-0 transition-opacity duration-700",
74
+ className: props.hoverMenuClassname || "p-2 absolute z-10 top-[-10000px] left-[-10000px] mt-[-6px] opacity-0 transition-opacity duration-700",
75
75
  children: isDisplayed && selection && /* @__PURE__ */ jsx(HoveringInsertionPromptBox, {
76
76
  editorState: editorState(editor),
77
77
  apiConfig: props.apiConfig,
@@ -105,4 +105,4 @@ function editorState(editor, selection) {
105
105
 
106
106
  export { HoveringToolbar };
107
107
  //# sourceMappingURL=out.js.map
108
- //# sourceMappingURL=chunk-IJC2EXRO.mjs.map
108
+ //# sourceMappingURL=chunk-3L6CNVCE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/hovering-toolbar/hovering-toolbar.tsx"],"names":["selection"],"mappings":"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","sourcesContent":["import { css } from \"@emotion/css\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { BaseSelection, Editor, Range, Location, Transforms } from \"slate\";\nimport { useSlate, useSlateSelection } from \"slate-react\";\nimport { HoveringInsertionPromptBox } from \"./text-insertion-prompt-box\";\nimport { Button, Icon, Menu, Portal } from \"./hovering-toolbar-components\";\nimport { useHoveringEditorContext } from \"./hovering-editor-provider\";\nimport {\n getFullEditorTextWithNewlines,\n getTextAroundSelection,\n} from \"../../lib/get-text-around-cursor\";\nimport {\n EditingEditorState,\n InsertionEditorApiConfig,\n} from \"../../types/base/autosuggestions-bare-function\";\n\nexport interface HoveringToolbarProps {\n apiConfig: InsertionEditorApiConfig;\n contextCategories: string[];\n hoverMenuClassname: string | undefined;\n}\n\nexport const HoveringToolbar: (\n props: HoveringToolbarProps\n) => JSX.Element | null = (props) => {\n const ref = useRef<HTMLDivElement>(null);\n const editor = useSlate();\n const selection = useSlateSelection();\n const { isDisplayed, setIsDisplayed } = useHoveringEditorContext();\n\n // only render on client\n const [isClient, setIsClient] = useState(false);\n useEffect(() => {\n setIsClient(true);\n }, []);\n\n useEffect(() => {\n const el = ref.current;\n const { selection } = editor;\n\n if (!el) {\n return;\n }\n\n if (!selection) {\n el.removeAttribute(\"style\");\n return;\n }\n\n const domSelection = window.getSelection();\n if (!domSelection) {\n return;\n }\n\n const domRange = domSelection.getRangeAt(0);\n const rect = domRange.getBoundingClientRect();\n\n // We use window = (0,0,0,0) as a signal that the selection is not in the original copilot-textarea,\n // but inside the hovering window.\n //\n // in such case, we simply do nothing.\n if (\n rect.top === 0 &&\n rect.left === 0 &&\n rect.width === 0 &&\n rect.height === 0\n ) {\n return;\n }\n\n const minGapFromEdge = 60;\n const verticalOffsetFromCorner = 35;\n const horizontalOffsetFromCorner = 15;\n let top =\n rect.top + window.scrollY - el.offsetHeight + verticalOffsetFromCorner;\n // make sure top is in the viewport and not too close to the edge\n if (top < minGapFromEdge) {\n top = rect.bottom + window.scrollY + minGapFromEdge;\n } else if (top + el.offsetHeight > window.innerHeight - minGapFromEdge) {\n top = rect.top + window.scrollY - el.offsetHeight - minGapFromEdge;\n }\n\n let left =\n rect.left +\n window.scrollX -\n el.offsetWidth / 2 +\n rect.width / 2 +\n horizontalOffsetFromCorner;\n // make sure left is in the viewport and not too close to the edge\n if (left < minGapFromEdge) {\n left = minGapFromEdge;\n } else if (left + el.offsetWidth > window.innerWidth - minGapFromEdge) {\n left = window.innerWidth - el.offsetWidth - minGapFromEdge;\n }\n\n el.style.opacity = \"1\";\n el.style.top = `${top}px`;\n el.style.left = `${left}px`;\n });\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n setIsDisplayed(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [ref, setIsDisplayed]);\n\n if (!isClient) {\n return null;\n }\n\n return (\n <Portal>\n <Menu\n ref={ref}\n className={\n props.hoverMenuClassname ||\n \"p-2 absolute z-10 top-[-10000px] left-[-10000px] mt-[-6px] opacity-0 transition-opacity duration-700\"\n }\n >\n {isDisplayed && selection && (\n <HoveringInsertionPromptBox\n editorState={editorState(editor, selection)}\n apiConfig={props.apiConfig}\n closeWindow={() => {\n setIsDisplayed(false);\n }}\n performInsertion={(insertedText) => {\n console.log(\"inserted text\", insertedText);\n // replace the selection with the inserted text\n Transforms.delete(editor, { at: selection });\n Transforms.insertText(editor, insertedText, {\n at: selection,\n });\n setIsDisplayed(false);\n }}\n contextCategories={props.contextCategories}\n />\n )}\n </Menu>\n </Portal>\n );\n};\n\nfunction editorState(editor: Editor, selection: Location): EditingEditorState {\n const textAroundCursor = getTextAroundSelection(editor);\n if (textAroundCursor) {\n return textAroundCursor;\n }\n\n return {\n textBeforeCursor: getFullEditorTextWithNewlines(editor),\n textAfterCursor: \"\",\n selectedText: \"\",\n };\n}\n"]}
@@ -114,4 +114,4 @@ function useMakeStandardInsertionOrEditingFunction(textareaPurpose, contextCateg
114
114
 
115
115
  export { useMakeStandardInsertionOrEditingFunction };
116
116
  //# sourceMappingURL=out.js.map
117
- //# sourceMappingURL=chunk-WPIA53HF.mjs.map
117
+ //# sourceMappingURL=chunk-4HHYJGZE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/make-autosuggestions-function/use-make-standard-insertion-function.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,SAAS,sBAAsB;AAC/B,SAAS,aAAa,kBAAkB;AA0BjC,SAAS,0CACd,iBACA,mBACA,oBACA,kBACwC;AACxC,QAAM,EAAE,kBAAkB,iBAAiB,IAAI,WAAW,cAAc;AAExE,QAAM,oBAAoB;AAAA,IACxB,CACE,aACA,iBACA,WACA,gBACG;AACH,YAAM,MAAM,MAAM,MAAM,MAAY;AAClC,cAAM,WAAoC;AAAA,UACxC;AAAA,YACE,MAAM;AAAA,YACN,SAAS,mBAAmB;AAAA,cAC1B;AAAA,cACA,iBAAiB,WAAW,iBAAiB;AAAA,YAC/C;AAAA,UACF;AAAA,UACA,GAAG,mBAAmB;AAAA,UACtB;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS,YAAY;AAAA,UACvB;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS,YAAY;AAAA,UACvB;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS;AAAA,UACX;AAAA,QACF;AAEA,cAAM,cACJ,oBAAoB,qBAAqB,gBAAgB;AAC3D,eAAO,MAAM,YAAY;AAAA,UACvB;AAAA,UACA;AAAA,UACA,mBAAmB;AAAA,QACrB;AAAA,MACF,EAAC;AAED,aAAO;AAAA,IACT;AAAA,IACA,CAAC,oBAAoB,kBAAkB,mBAAmB,eAAe;AAAA,EAC3E;AAEA,QAAM,kBAAkB;AAAA,IACtB,CACE,aACA,eACA,WACA,gBACG;AACH,YAAM,MAAM,MAAM,MAAM,MAAY;AAClC,cAAM,WAAoC;AAAA,UACxC;AAAA,YACE,MAAM;AAAA,YACN,SAAS,iBAAiB;AAAA,cACxB;AAAA,cACA,iBAAiB,WAAW,iBAAiB;AAAA,YAC/C;AAAA,UACF;AAAA,UACA,GAAG,iBAAiB;AAAA,UACpB;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS,YAAY;AAAA,UACvB;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS,YAAY;AAAA,UACvB;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS,YAAY;AAAA,UACvB;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS;AAAA,UACX;AAAA,QACF;AAEA,cAAM,cACJ,oBAAoB,qBAAqB,gBAAgB;AAC3D,eAAO,MAAM,YAAY;AAAA,UACvB;AAAA,UACA;AAAA,UACA,iBAAiB;AAAA,QACnB;AAAA,MACF,EAAC;AAED,aAAO;AAAA,IACT;AAAA,IACA,CAAC,kBAAkB,kBAAkB,mBAAmB,eAAe;AAAA,EACzE;AAEA,QAAM,6BAA6B;AAAA,IACjC,CACE,aACA,iBACA,WACA,gBACG;AACH,UAAI,YAAY,iBAAiB,IAAI;AACnC,eAAO,MAAM;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,OAAO;AACL,eAAO,MAAM;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,mBAAmB,eAAe;AAAA,EACrC;AAEA,SAAO;AACT","sourcesContent":["import { CopilotContext } from \"@copilotkit/react-core\";\nimport { useCallback, useContext } from \"react\";\nimport { ChatlikeApiEndpoint, MinimalChatGPTMessage } from \"../../types\";\nimport { retry } from \"../../lib/retry\";\nimport {\n EditingEditorState,\n Generator_InsertionOrEditingSuggestion,\n InsertionEditorApiConfig,\n InsertionEditorState,\n} from \"../../types/base/autosuggestions-bare-function\";\nimport { InsertionsApiConfig } from \"../../types/autosuggestions-config/insertions-api-config\";\nimport { EditingApiConfig } from \"../../types/autosuggestions-config/editing-api-config\";\nimport { DocumentPointer } from \"@copilotkit/react-core\";\n\n/**\n * Returns a memoized function that sends a request to the specified API endpoint to get an autosuggestion for the user's input.\n * The function takes in the text before and after the cursor, and an abort signal.\n * It sends a POST request to the API endpoint with the messages array containing the system message, few shot messages, and user messages.\n * The function returns the suggestion from the API response.\n *\n * @param textareaPurpose - The purpose of the textarea. This is included in the system message.\n * @param apiEndpoint - The API endpoint to send the autosuggestion request to.\n * @param makeSystemMessage - A function that takes in a context string and returns a system message to include in the autosuggestion request.\n * @param fewShotMessages - An array of few shot messages to include in the autosuggestion request.\n * @param contextCategories - The categories of context strings we want to include. By default, we include the (default) \"global\" context category.\n * @returns A memoized function that sends a request to the specified API endpoint to get an autosuggestion for the user's input.\n */\nexport function useMakeStandardInsertionOrEditingFunction(\n textareaPurpose: string,\n contextCategories: string[],\n insertionApiConfig: InsertionsApiConfig,\n editingApiConfig: EditingApiConfig\n): Generator_InsertionOrEditingSuggestion {\n const { getContextString, copilotApiConfig } = useContext(CopilotContext);\n\n const insertionFunction = useCallback(\n async (\n editorState: EditingEditorState,\n insertionPrompt: string,\n documents: DocumentPointer[],\n abortSignal: AbortSignal\n ) => {\n const res = await retry(async () => {\n const messages: MinimalChatGPTMessage[] = [\n {\n role: \"system\",\n content: insertionApiConfig.makeSystemPrompt(\n textareaPurpose,\n getContextString(documents, contextCategories)\n ),\n },\n ...insertionApiConfig.fewShotMessages,\n {\n role: \"user\",\n name: \"TextAfterCursor\",\n content: editorState.textAfterCursor,\n },\n {\n role: \"user\",\n name: \"TextBeforeCursor\",\n content: editorState.textBeforeCursor,\n },\n {\n role: \"user\",\n name: \"InsertionPrompt\",\n content: insertionPrompt,\n },\n ];\n\n const apiEndpoint =\n ChatlikeApiEndpoint.fromCopilotApiConfig(copilotApiConfig);\n return await apiEndpoint.run(\n abortSignal,\n messages,\n insertionApiConfig.forwardedParams\n );\n });\n\n return res;\n },\n [insertionApiConfig, getContextString, contextCategories, textareaPurpose]\n );\n\n const editingFunction = useCallback(\n async (\n editorState: EditingEditorState,\n editingPrompt: string,\n documents: DocumentPointer[],\n abortSignal: AbortSignal\n ) => {\n const res = await retry(async () => {\n const messages: MinimalChatGPTMessage[] = [\n {\n role: \"system\",\n content: editingApiConfig.makeSystemPrompt(\n textareaPurpose,\n getContextString(documents, contextCategories)\n ),\n },\n ...editingApiConfig.fewShotMessages,\n {\n role: \"user\",\n name: \"TextBeforeCursor\",\n content: editorState.textBeforeCursor,\n },\n {\n role: \"user\",\n name: \"TextToEdit\",\n content: editorState.selectedText,\n },\n {\n role: \"user\",\n name: \"TextAfterCursor\",\n content: editorState.textAfterCursor,\n },\n {\n role: \"user\",\n name: \"EditingPrompt\",\n content: editingPrompt,\n },\n ];\n\n const apiEndpoint =\n ChatlikeApiEndpoint.fromCopilotApiConfig(copilotApiConfig);\n return await apiEndpoint.run(\n abortSignal,\n messages,\n editingApiConfig.forwardedParams\n );\n });\n\n return res;\n },\n [editingApiConfig, getContextString, contextCategories, textareaPurpose]\n );\n\n const insertionOrEditingFunction = useCallback(\n async (\n editorState: EditingEditorState,\n insertionPrompt: string,\n documents: DocumentPointer[],\n abortSignal: AbortSignal\n ) => {\n if (editorState.selectedText === \"\") {\n return await insertionFunction(\n editorState,\n insertionPrompt,\n documents,\n abortSignal\n );\n } else {\n return await editingFunction(\n editorState,\n insertionPrompt,\n documents,\n abortSignal\n );\n }\n },\n [insertionFunction, editingFunction]\n );\n\n return insertionOrEditingFunction;\n}\n"]}
@@ -38,6 +38,8 @@ var FileChipPreview = ({
38
38
  label: filePointer.name,
39
39
  onDelete,
40
40
  avatar: /* @__PURE__ */ jsx(Avatar, {
41
+ src: filePointer.iconImageUri,
42
+ alt: filePointer.sourceApplication,
41
43
  sx: { backgroundColor: "transparent" }
42
44
  })
43
45
  });
@@ -45,4 +47,4 @@ var FileChipPreview = ({
45
47
 
46
48
  export { FileChipPreview, IncludedFilesPreview };
47
49
  //# sourceMappingURL=out.js.map
48
- //# sourceMappingURL=chunk-PGGR6HL5.mjs.map
50
+ //# sourceMappingURL=chunk-4LOLCQGR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.tsx"],"names":[],"mappings":";;;;;AAGA,OAAO,UAAU;AACjB,OAAO,YAAY;AAYf,SACE,KADF;AALG,IAAM,uBAA4D,CAAC;AAAA,EACxE;AAAA,EACA;AACF,MAAM;AACJ,SACE,qBAAC;AAAA,IAAI,WAAU;AAAA,IACb;AAAA,0BAAC;AAAA,QAAM,WAAU;AAAA,QAAG;AAAA,OAAiB;AAAA,MACrC,oBAAC;AAAA,QAAI,WAAU;AAAA,QACZ,wBAAc,IAAI,CAAC,aAAa,UAAU;AACzC,iBACE,oBAAC;AAAA,YAEC;AAAA,YACA,UAAU,MAAM;AACd;AAAA,gBAAiB,CAAC,SAChB,KAAK,OAAO,CAAC,OAAO,OAAO,WAAW;AAAA,cACxC;AAAA,YACF;AAAA,aANK,QAAQ,YAAY,qBAAqB,YAAY,MAO5D;AAAA,QAEJ,CAAC;AAAA,OACH;AAAA;AAAA,GACF;AAEJ;AAOO,IAAM,kBAAiD,CAAC;AAAA,EAC7D;AAAA,EACA;AACF,MAAM;AACJ,SACE,oBAAC;AAAA,IACC,OAAO,YAAY;AAAA,IACnB;AAAA,IACA,QACE,oBAAC;AAAA,MACC,KAAK,YAAY;AAAA,MACjB,KAAK,YAAY;AAAA,MACjB,IAAI,EAAE,iBAAiB,cAAc;AAAA,KACtC;AAAA,GAEL;AAEJ","sourcesContent":["import { DocumentPointer } from \"@copilotkit/react-core\";\nimport { Label } from \"../../ui/label\";\nimport React from \"react\";\nimport Chip from \"@mui/material/Chip/Chip.js\";\nimport Avatar from \"@mui/material/Avatar/Avatar.js\";\n\nexport interface IncludedFilesPreviewProps {\n includedFiles: DocumentPointer[];\n setIncludedFiles: React.Dispatch<React.SetStateAction<DocumentPointer[]>>;\n}\n\nexport const IncludedFilesPreview: React.FC<IncludedFilesPreviewProps> = ({\n includedFiles,\n setIncludedFiles,\n}) => {\n return (\n <div className=\"flex flex-col gap-2 mt-2\">\n <Label className=\"\">Included context:</Label>\n <div className=\"flex flex-wrap gap-2\">\n {includedFiles.map((filePointer, index) => {\n return (\n <FileChipPreview\n key={`file-${filePointer.sourceApplication}.${filePointer.name}`}\n filePointer={filePointer}\n onDelete={() => {\n setIncludedFiles((prev) =>\n prev.filter((fp) => fp !== filePointer)\n );\n }}\n />\n );\n })}\n </div>\n </div>\n );\n};\n\nexport interface FileChipPreviewProp {\n filePointer: DocumentPointer;\n onDelete: () => void;\n}\n\nexport const FileChipPreview: React.FC<FileChipPreviewProp> = ({\n filePointer,\n onDelete,\n}) => {\n return (\n <Chip\n label={filePointer.name}\n onDelete={onDelete}\n avatar={\n <Avatar\n src={filePointer.iconImageUri}\n alt={filePointer.sourceApplication}\n sx={{ backgroundColor: \"transparent\" }}\n ></Avatar>\n }\n />\n );\n};\n"]}
@@ -54,4 +54,4 @@ function useMakeStandardAutosuggestionFunction(textareaPurpose, contextCategorie
54
54
 
55
55
  export { useMakeStandardAutosuggestionFunction };
56
56
  //# sourceMappingURL=out.js.map
57
- //# sourceMappingURL=chunk-DYGPLRY3.mjs.map
57
+ //# sourceMappingURL=chunk-4UYKBG35.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,SAAS,sBAAsB;AAC/B,SAAS,aAAa,kBAAkB;AAsBjC,SAAS,sCACd,iBACA,mBACA,WAC6B;AAC7B,QAAM,EAAE,kBAAkB,iBAAiB,IAAI,WAAW,cAAc;AAExE,SAAO;AAAA,IACL,CAAO,aAAmC,gBAA6B;AACrE,YAAM,MAAM,MAAM,MAAM,MAAY;AAClC,cAAM,WAAoC;AAAA,UACxC;AAAA,YACE,MAAM;AAAA,YACN,SAAS,UAAU;AAAA,cACjB;AAAA,cACA,iBAAiB,CAAC,GAAG,iBAAiB;AAAA,YACxC;AAAA,UACF;AAAA,UACA,GAAG,UAAU;AAAA,UACb;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS,YAAY;AAAA,UACvB;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS,YAAY;AAAA,UACvB;AAAA,QACF;AAEA,cAAM,cACJ,oBAAoB,qBAAqB,gBAAgB;AAC3D,cAAM,SAAS,MAAM,YAAY;AAAA,UAC/B;AAAA,UACA;AAAA,UACA,UAAU;AAAA,QACZ;AAGA,cAAM,SAAS,OAAO,UAAU;AAChC,YAAI,SAAS;AAEb,eAAO,MAAM;AACX,gBAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,cAAI,MAAM;AACR;AAAA,UACF;AACA,oBAAU;AAAA,QACZ;AAEA,eAAO;AAAA,MACT,EAAC;AAED,aAAO;AAAA,IACT;AAAA,IACA,CAAC,WAAW,kBAAkB,mBAAmB,eAAe;AAAA,EAClE;AACF","sourcesContent":["import { CopilotContext } from \"@copilotkit/react-core\";\nimport { useCallback, useContext } from \"react\";\nimport {\n AutosuggestionsBareFunction,\n ChatlikeApiEndpoint,\n MinimalChatGPTMessage,\n} from \"../../types\";\nimport { retry } from \"../../lib/retry\";\nimport { InsertionEditorState } from \"../../types/base/autosuggestions-bare-function\";\nimport { SuggestionsApiConfig } from \"../../types/autosuggestions-config/suggestions-api-config\";\n/**\n * Returns a memoized function that sends a request to the specified API endpoint to get an autosuggestion for the user's input.\n * The function takes in the text before and after the cursor, and an abort signal.\n * It sends a POST request to the API endpoint with the messages array containing the system message, few shot messages, and user messages.\n * The function returns the suggestion from the API response.\n *\n * @param textareaPurpose - The purpose of the textarea. This is included in the system message.\n * @param apiEndpoint - The API endpoint to send the autosuggestion request to.\n * @param makeSystemMessage - A function that takes in a context string and returns a system message to include in the autosuggestion request.\n * @param fewShotMessages - An array of few shot messages to include in the autosuggestion request.\n * @param contextCategories - The categories of context strings we want to include. By default, we include the (default) \"global\" context category.\n * @returns A memoized function that sends a request to the specified API endpoint to get an autosuggestion for the user's input.\n */\nexport function useMakeStandardAutosuggestionFunction(\n textareaPurpose: string,\n contextCategories: string[] | undefined,\n apiConfig: SuggestionsApiConfig\n): AutosuggestionsBareFunction {\n const { getContextString, copilotApiConfig } = useContext(CopilotContext);\n\n return useCallback(\n async (editorState: InsertionEditorState, abortSignal: AbortSignal) => {\n const res = await retry(async () => {\n const messages: MinimalChatGPTMessage[] = [\n {\n role: \"system\",\n content: apiConfig.makeSystemPrompt(\n textareaPurpose,\n getContextString([], contextCategories)\n ),\n },\n ...apiConfig.fewShotMessages,\n {\n role: \"user\",\n name: \"TextAfterCursor\",\n content: editorState.textAfterCursor,\n },\n {\n role: \"user\",\n name: \"TextBeforeCursor\",\n content: editorState.textBeforeCursor,\n },\n ];\n\n const apiEndpoint =\n ChatlikeApiEndpoint.fromCopilotApiConfig(copilotApiConfig);\n const stream = await apiEndpoint.run(\n abortSignal,\n messages,\n apiConfig.forwardedParams\n );\n\n // read the stream:\n const reader = stream.getReader();\n let result = \"\";\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n result += value;\n }\n\n return result;\n });\n\n return res;\n },\n [apiConfig, getContextString, contextCategories, textareaPurpose]\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,SAAS,sBAAsB;AAC/B,SAAS,aAAa,kBAAkB;AAsBjC,SAAS,sCACd,iBACA,mBACA,WAC6B;AAC7B,QAAM,EAAE,kBAAkB,iBAAiB,IAAI,WAAW,cAAc;AAExE,SAAO;AAAA,IACL,CAAO,aAAmC,gBAA6B;AACrE,YAAM,MAAM,MAAM,MAAM,MAAY;AAClC,cAAM,WAAoC;AAAA,UACxC;AAAA,YACE,MAAM;AAAA,YACN,SAAS,UAAU;AAAA,cACjB;AAAA,cACA,iBAAiB,CAAC,GAAG,iBAAiB;AAAA,YACxC;AAAA,UACF;AAAA,UACA,GAAG,UAAU;AAAA,UACb;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS,YAAY;AAAA,UACvB;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAM;AAAA,YACN,SAAS,YAAY;AAAA,UACvB;AAAA,QACF;AAEA,cAAM,cACJ,oBAAoB,qBAAqB,gBAAgB;AAC3D,cAAM,SAAS,MAAM,YAAY;AAAA,UAC/B;AAAA,UACA;AAAA,UACA,UAAU;AAAA,QACZ;AAGA,cAAM,SAAS,OAAO,UAAU;AAChC,YAAI,SAAS;AAEb,eAAO,MAAM;AACX,gBAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,cAAI,MAAM;AACR;AAAA,UACF;AACA,oBAAU;AAAA,QACZ;AAEA,eAAO;AAAA,MACT,EAAC;AAED,aAAO;AAAA,IACT;AAAA,IACA,CAAC,WAAW,kBAAkB,mBAAmB,eAAe;AAAA,EAClE;AACF","sourcesContent":["import { CopilotContext } from \"@copilotkit/react-core\";\nimport { useCallback, useContext } from \"react\";\nimport {\n AutosuggestionsBareFunction,\n ChatlikeApiEndpoint,\n MinimalChatGPTMessage,\n} from \"../../types\";\nimport { retry } from \"../../lib/retry\";\nimport { InsertionEditorState } from \"../../types/base/autosuggestions-bare-function\";\nimport { SuggestionsApiConfig } from \"../../types/autosuggestions-config/suggestions-api-config\";\n/**\n * Returns a memoized function that sends a request to the specified API endpoint to get an autosuggestion for the user's input.\n * The function takes in the text before and after the cursor, and an abort signal.\n * It sends a POST request to the API endpoint with the messages array containing the system message, few shot messages, and user messages.\n * The function returns the suggestion from the API response.\n *\n * @param textareaPurpose - The purpose of the textarea. This is included in the system message.\n * @param apiEndpoint - The API endpoint to send the autosuggestion request to.\n * @param makeSystemMessage - A function that takes in a context string and returns a system message to include in the autosuggestion request.\n * @param fewShotMessages - An array of few shot messages to include in the autosuggestion request.\n * @param contextCategories - The categories of context strings we want to include. By default, we include the (default) \"global\" context category.\n * @returns A memoized function that sends a request to the specified API endpoint to get an autosuggestion for the user's input.\n */\nexport function useMakeStandardAutosuggestionFunction(\n textareaPurpose: string,\n contextCategories: string[],\n apiConfig: SuggestionsApiConfig\n): AutosuggestionsBareFunction {\n const { getContextString, copilotApiConfig } = useContext(CopilotContext);\n\n return useCallback(\n async (editorState: InsertionEditorState, abortSignal: AbortSignal) => {\n const res = await retry(async () => {\n const messages: MinimalChatGPTMessage[] = [\n {\n role: \"system\",\n content: apiConfig.makeSystemPrompt(\n textareaPurpose,\n getContextString([], contextCategories)\n ),\n },\n ...apiConfig.fewShotMessages,\n {\n role: \"user\",\n name: \"TextAfterCursor\",\n content: editorState.textAfterCursor,\n },\n {\n role: \"user\",\n name: \"TextBeforeCursor\",\n content: editorState.textBeforeCursor,\n },\n ];\n\n const apiEndpoint =\n ChatlikeApiEndpoint.fromCopilotApiConfig(copilotApiConfig);\n const stream = await apiEndpoint.run(\n abortSignal,\n messages,\n apiConfig.forwardedParams\n );\n\n // read the stream:\n const reader = stream.getReader();\n let result = \"\";\n\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n result += value;\n }\n\n return result;\n });\n\n return res;\n },\n [apiConfig, getContextString, contextCategories, textareaPurpose]\n );\n}\n"]}
@@ -1,7 +1,9 @@
1
+ import { defaultCopilotContextCategories } from '@copilotkit/react-core';
2
+
1
3
  // src/types/base/base-autosuggestions-config.tsx
2
4
  var defaultBaseAutosuggestionsConfig = {
3
5
  debounceTime: 250,
4
- contextCategories: ["global"],
6
+ contextCategories: defaultCopilotContextCategories,
5
7
  acceptAutosuggestionKey: "Tab",
6
8
  disableWhenEmpty: true,
7
9
  disabled: false,
@@ -10,4 +12,4 @@ var defaultBaseAutosuggestionsConfig = {
10
12
 
11
13
  export { defaultBaseAutosuggestionsConfig };
12
14
  //# sourceMappingURL=out.js.map
13
- //# sourceMappingURL=chunk-S6JUGJK2.mjs.map
15
+ //# sourceMappingURL=chunk-6Z2ATUNY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/base/base-autosuggestions-config.tsx"],"names":[],"mappings":";AACA,SAAS,uCAAuC;AAazC,IAAM,mCAGT;AAAA,EACF,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,yBAAyB;AAAA,EACzB,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,uDAAuD;AACzD","sourcesContent":["import { BaseCopilotTextareaApiConfig } from \"./autosuggestions-bare-function\";\nimport { defaultCopilotContextCategories } from \"@copilotkit/react-core\";\n\nexport interface BaseAutosuggestionsConfig {\n textareaPurpose: string;\n contextCategories: string[];\n debounceTime: number;\n acceptAutosuggestionKey: string;\n disableWhenEmpty: boolean;\n disabled: boolean;\n temporarilyDisableWhenMovingCursorWithoutChangingText: boolean;\n apiConfig: BaseCopilotTextareaApiConfig;\n}\n\nexport const defaultBaseAutosuggestionsConfig: Omit<\n BaseAutosuggestionsConfig,\n \"textareaPurpose\" | \"apiConfig\"\n> = {\n debounceTime: 250,\n contextCategories: defaultCopilotContextCategories,\n acceptAutosuggestionKey: \"Tab\",\n disableWhenEmpty: true,\n disabled: false,\n temporarilyDisableWhenMovingCursorWithoutChangingText: true,\n};\n"]}
@@ -1,7 +1,7 @@
1
- import { useMakeStandardAutosuggestionFunction } from './chunk-DYGPLRY3.mjs';
2
- import { useMakeStandardInsertionOrEditingFunction } from './chunk-WPIA53HF.mjs';
3
- import { defaultAutosuggestionsConfig } from './chunk-F2TIBXML.mjs';
4
- import { BaseCopilotTextarea } from './chunk-JBI2MZB4.mjs';
1
+ import { useMakeStandardAutosuggestionFunction } from './chunk-4UYKBG35.mjs';
2
+ import { useMakeStandardInsertionOrEditingFunction } from './chunk-4HHYJGZE.mjs';
3
+ import { defaultAutosuggestionsConfig } from './chunk-GUH3Y2H4.mjs';
4
+ import { BaseCopilotTextarea } from './chunk-JYVC4AW3.mjs';
5
5
  import { __objRest, __spreadProps, __spreadValues } from './chunk-MRXNTQOX.mjs';
6
6
  import React from 'react';
7
7
  import merge from 'lodash.merge';
@@ -20,12 +20,12 @@ var CopilotTextarea = React.forwardRef(
20
20
  );
21
21
  const autosuggestionsFunction = useMakeStandardAutosuggestionFunction(
22
22
  autosuggestionsConfig.textareaPurpose,
23
- autosuggestionsConfig.externalContextCategories,
23
+ autosuggestionsConfig.contextCategories,
24
24
  autosuggestionsConfig.chatApiConfigs.suggestionsApiConfig
25
25
  );
26
26
  const insertionOrEditingFunction = useMakeStandardInsertionOrEditingFunction(
27
27
  autosuggestionsConfig.textareaPurpose,
28
- autosuggestionsConfig.externalContextCategories,
28
+ autosuggestionsConfig.contextCategories,
29
29
  autosuggestionsConfig.chatApiConfigs.insertionApiConfig,
30
30
  autosuggestionsConfig.chatApiConfigs.editingApiConfig
31
31
  );
@@ -46,4 +46,4 @@ var CopilotTextarea = React.forwardRef(
46
46
 
47
47
  export { CopilotTextarea };
48
48
  //# sourceMappingURL=out.js.map
49
- //# sourceMappingURL=chunk-UIN6BEVR.mjs.map
49
+ //# sourceMappingURL=chunk-AQHORK66.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/copilot-textarea/copilot-textarea.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AACA,OAAO,WAAW;AAUlB,OAAO,WAAW;AAyCZ,mBACE,WADF;AA/BC,IAAM,kBAAkB,MAAM;AAAA,EACnC,CACE,OACA,QACgB;AAEhB,UAGI,YAFF;AAAA,6BAAuB;AAAA,IA5B7B,IA8BQ,IADC,2BACD,IADC;AAAA,MADH;AAAA;AAIF,UAAM,wBAA+C;AAAA,MACnD;AAAA,MACA;AAAA,IACF;AAEA,UAAM,0BAA0B;AAAA,MAC9B,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,MACtB,sBAAsB,eAAe;AAAA,IACvC;AAEA,UAAM,6BACJ;AAAA,MACE,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,MACtB,sBAAsB,eAAe;AAAA,MACrC,sBAAsB,eAAe;AAAA,IACvC;AAEF,WACE;AAAA,MACE,8BAAC;AAAA,QACC;AAAA,SACI,iBAFL;AAAA,QAGC,2BAA2B,iCACtB,wBADsB;AAAA,UAEzB,WAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACF;AAAA,KACF;AAAA,EAEJ;AACF","sourcesContent":["// This example is for an Editor with `ReactEditor` and `HistoryEditor`\nimport React from \"react\";\nimport { useMakeStandardAutosuggestionFunction } from \"../../hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function\";\nimport { HTMLCopilotTextAreaElement } from \"../../types\";\nimport { BaseCopilotTextareaProps } from \"../../types/base/base-copilot-textarea-props\";\nimport {\n AutosuggestionsConfig,\n defaultAutosuggestionsConfig,\n} from \"../../types/autosuggestions-config\";\nimport { BaseCopilotTextarea } from \"../base-copilot-textarea/base-copilot-textarea\";\nimport { useMakeStandardInsertionOrEditingFunction } from \"../../hooks/make-autosuggestions-function/use-make-standard-insertion-function\";\nimport merge from \"lodash.merge\";\nimport { AutosuggestionsConfigUserSpecified } from \"../../types/autosuggestions-config/autosuggestions-config-user-specified\";\n\n// Like the base copilot textarea props,\n// but with baseAutosuggestionsConfig replaced with autosuggestionsConfig.\nexport interface CopilotTextareaProps\n extends Omit<BaseCopilotTextareaProps, \"baseAutosuggestionsConfig\"> {\n autosuggestionsConfig: AutosuggestionsConfigUserSpecified;\n}\n\nexport const CopilotTextarea = React.forwardRef(\n (\n props: CopilotTextareaProps,\n ref: React.Ref<HTMLCopilotTextAreaElement>\n ): JSX.Element => {\n // separate the AutosuggestionsConfigUserSpecified from the rest of the props\n const {\n autosuggestionsConfig: autosuggestionsConfigUserSpecified,\n ...forwardedProps\n } = props;\n\n const autosuggestionsConfig: AutosuggestionsConfig = merge(\n defaultAutosuggestionsConfig,\n autosuggestionsConfigUserSpecified\n );\n\n const autosuggestionsFunction = useMakeStandardAutosuggestionFunction(\n autosuggestionsConfig.textareaPurpose,\n autosuggestionsConfig.externalContextCategories,\n autosuggestionsConfig.chatApiConfigs.suggestionsApiConfig\n );\n\n const insertionOrEditingFunction =\n useMakeStandardInsertionOrEditingFunction(\n autosuggestionsConfig.textareaPurpose,\n autosuggestionsConfig.externalContextCategories,\n autosuggestionsConfig.chatApiConfigs.insertionApiConfig,\n autosuggestionsConfig.chatApiConfigs.editingApiConfig\n );\n\n return (\n <>\n <BaseCopilotTextarea\n ref={ref}\n {...forwardedProps}\n baseAutosuggestionsConfig={{\n ...autosuggestionsConfig,\n apiConfig: {\n insertionOrEditingFunction: insertionOrEditingFunction,\n autosuggestionsFunction: autosuggestionsFunction,\n },\n }}\n />\n </>\n );\n }\n);\n"]}
1
+ {"version":3,"sources":["../src/components/copilot-textarea/copilot-textarea.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AACA,OAAO,WAAW;AAUlB,OAAO,WAAW;AAyCZ,mBACE,WADF;AA/BC,IAAM,kBAAkB,MAAM;AAAA,EACnC,CACE,OACA,QACgB;AAEhB,UAGI,YAFF;AAAA,6BAAuB;AAAA,IA5B7B,IA8BQ,IADC,2BACD,IADC;AAAA,MADH;AAAA;AAIF,UAAM,wBAA+C;AAAA,MACnD;AAAA,MACA;AAAA,IACF;AAEA,UAAM,0BAA0B;AAAA,MAC9B,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,MACtB,sBAAsB,eAAe;AAAA,IACvC;AAEA,UAAM,6BACJ;AAAA,MACE,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,MACtB,sBAAsB,eAAe;AAAA,MACrC,sBAAsB,eAAe;AAAA,IACvC;AAEF,WACE;AAAA,MACE,8BAAC;AAAA,QACC;AAAA,SACI,iBAFL;AAAA,QAGC,2BAA2B,iCACtB,wBADsB;AAAA,UAEzB,WAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACF;AAAA,KACF;AAAA,EAEJ;AACF","sourcesContent":["// This example is for an Editor with `ReactEditor` and `HistoryEditor`\nimport React from \"react\";\nimport { useMakeStandardAutosuggestionFunction } from \"../../hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function\";\nimport { HTMLCopilotTextAreaElement } from \"../../types\";\nimport { BaseCopilotTextareaProps } from \"../../types/base/base-copilot-textarea-props\";\nimport {\n AutosuggestionsConfig,\n defaultAutosuggestionsConfig,\n} from \"../../types/autosuggestions-config\";\nimport { BaseCopilotTextarea } from \"../base-copilot-textarea/base-copilot-textarea\";\nimport { useMakeStandardInsertionOrEditingFunction } from \"../../hooks/make-autosuggestions-function/use-make-standard-insertion-function\";\nimport merge from \"lodash.merge\";\nimport { AutosuggestionsConfigUserSpecified } from \"../../types/autosuggestions-config/autosuggestions-config-user-specified\";\n\n// Like the base copilot textarea props,\n// but with baseAutosuggestionsConfig replaced with autosuggestionsConfig.\nexport interface CopilotTextareaProps\n extends Omit<BaseCopilotTextareaProps, \"baseAutosuggestionsConfig\"> {\n autosuggestionsConfig: AutosuggestionsConfigUserSpecified;\n}\n\nexport const CopilotTextarea = React.forwardRef(\n (\n props: CopilotTextareaProps,\n ref: React.Ref<HTMLCopilotTextAreaElement>\n ): JSX.Element => {\n // separate the AutosuggestionsConfigUserSpecified from the rest of the props\n const {\n autosuggestionsConfig: autosuggestionsConfigUserSpecified,\n ...forwardedProps\n } = props;\n\n const autosuggestionsConfig: AutosuggestionsConfig = merge(\n defaultAutosuggestionsConfig,\n autosuggestionsConfigUserSpecified\n );\n\n const autosuggestionsFunction = useMakeStandardAutosuggestionFunction(\n autosuggestionsConfig.textareaPurpose,\n autosuggestionsConfig.contextCategories,\n autosuggestionsConfig.chatApiConfigs.suggestionsApiConfig\n );\n\n const insertionOrEditingFunction =\n useMakeStandardInsertionOrEditingFunction(\n autosuggestionsConfig.textareaPurpose,\n autosuggestionsConfig.contextCategories,\n autosuggestionsConfig.chatApiConfigs.insertionApiConfig,\n autosuggestionsConfig.chatApiConfigs.editingApiConfig\n );\n\n return (\n <>\n <BaseCopilotTextarea\n ref={ref}\n {...forwardedProps}\n baseAutosuggestionsConfig={{\n ...autosuggestionsConfig,\n apiConfig: {\n insertionOrEditingFunction: insertionOrEditingFunction,\n autosuggestionsFunction: autosuggestionsFunction,\n },\n }}\n />\n </>\n );\n }\n);\n"]}
@@ -1,4 +1,4 @@
1
- import { IncludedFilesPreview } from './chunk-PGGR6HL5.mjs';
1
+ import { IncludedFilesPreview } from './chunk-4LOLCQGR.mjs';
2
2
  import { use_autosize_textarea_default } from './chunk-ND5PXTAW.mjs';
3
3
  import { Button } from './chunk-2NURR2DX.mjs';
4
4
  import { Label } from './chunk-5EJ5XOGP.mjs';
@@ -221,4 +221,4 @@ var HoveringInsertionPromptBoxCore = ({
221
221
 
222
222
  export { HoveringInsertionPromptBoxCore };
223
223
  //# sourceMappingURL=out.js.map
224
- //# sourceMappingURL=chunk-MRPRZQMN.mjs.map
224
+ //# sourceMappingURL=chunk-GIJ3JZ4P.mjs.map
@@ -1,12 +1,12 @@
1
1
  import { defaultEditingApiConfig } from './chunk-AXN37AHC.mjs';
2
2
  import { defaultInsertionsApiConfig } from './chunk-RR6OQGTI.mjs';
3
3
  import { defaultSuggestionsApiConfig } from './chunk-JHTAOLEW.mjs';
4
- import { defaultBaseAutosuggestionsConfig } from './chunk-S6JUGJK2.mjs';
4
+ import { defaultBaseAutosuggestionsConfig } from './chunk-6Z2ATUNY.mjs';
5
5
  import { __spreadProps, __spreadValues } from './chunk-MRXNTQOX.mjs';
6
+ import { defaultCopilotContextCategories } from '@copilotkit/react-core';
6
7
 
7
- // src/types/autosuggestions-config/autosuggestions-config.tsx
8
8
  var defaultAutosuggestionsConfig = __spreadProps(__spreadValues({}, defaultBaseAutosuggestionsConfig), {
9
- externalContextCategories: void 0,
9
+ contextCategories: defaultCopilotContextCategories,
10
10
  chatApiConfigs: {
11
11
  suggestionsApiConfig: defaultSuggestionsApiConfig,
12
12
  insertionApiConfig: defaultInsertionsApiConfig,
@@ -16,4 +16,4 @@ var defaultAutosuggestionsConfig = __spreadProps(__spreadValues({}, defaultBaseA
16
16
 
17
17
  export { defaultAutosuggestionsConfig };
18
18
  //# sourceMappingURL=out.js.map
19
- //# sourceMappingURL=chunk-F2TIBXML.mjs.map
19
+ //# sourceMappingURL=chunk-GUH3Y2H4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/autosuggestions-config/autosuggestions-config.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,SAAS,uCAAuC;AAezC,IAAM,+BAGT,iCACC,mCADD;AAAA,EAEF,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,IACd,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,EACpB;AACF","sourcesContent":["import {\n BaseAutosuggestionsConfig,\n defaultBaseAutosuggestionsConfig,\n} from \"../base\";\nimport {\n SuggestionsApiConfig,\n defaultSuggestionsApiConfig,\n} from \"./suggestions-api-config\";\nimport {\n InsertionsApiConfig,\n defaultInsertionsApiConfig,\n} from \"./insertions-api-config\";\nimport { ChatlikeApiEndpoint } from \".\";\nimport {\n EditingApiConfig,\n defaultEditingApiConfig,\n} from \"./editing-api-config\";\nimport { defaultCopilotContextCategories } from \"@copilotkit/react-core\";\n\n// Like the base autosuggestions config, with 2 additional fields:\n// 1. contextCategories: string[] | undefined;\n// 2. instead of apiConfigs, we have chatApiConfigs: a higher-level abstraction that uses a ChatGPT-like API endpoint.\nexport interface AutosuggestionsConfig\n extends Omit<BaseAutosuggestionsConfig, \"apiConfig\"> {\n contextCategories: string[];\n chatApiConfigs: {\n suggestionsApiConfig: SuggestionsApiConfig;\n insertionApiConfig: InsertionsApiConfig;\n editingApiConfig: EditingApiConfig;\n };\n}\n\nexport const defaultAutosuggestionsConfig: Omit<\n AutosuggestionsConfig,\n \"textareaPurpose\" | \"apiEndpoint\"\n> = {\n ...defaultBaseAutosuggestionsConfig,\n contextCategories: defaultCopilotContextCategories,\n chatApiConfigs: {\n suggestionsApiConfig: defaultSuggestionsApiConfig,\n insertionApiConfig: defaultInsertionsApiConfig,\n editingApiConfig: defaultEditingApiConfig,\n },\n};\n"]}
@@ -6,9 +6,9 @@ import { replaceEditorText } from './chunk-RQHOUUXQ.mjs';
6
6
  import { useAutosuggestions } from './chunk-UHD44NC5.mjs';
7
7
  import { TrackerTextEditedSinceLastCursorMovement } from './chunk-OD7ZMOVE.mjs';
8
8
  import { useAddBrandingCss } from './chunk-MPME5BW2.mjs';
9
- import { HoveringToolbar } from './chunk-IJC2EXRO.mjs';
9
+ import { HoveringToolbar } from './chunk-3L6CNVCE.mjs';
10
10
  import { useHoveringEditorContext, HoveringEditorProvider } from './chunk-YW3REYX6.mjs';
11
- import { defaultBaseAutosuggestionsConfig } from './chunk-S6JUGJK2.mjs';
11
+ import { defaultBaseAutosuggestionsConfig } from './chunk-6Z2ATUNY.mjs';
12
12
  import { makeRenderElementFunction } from './chunk-LNAIMEB2.mjs';
13
13
  import { makeRenderPlaceholderFunction } from './chunk-OELUUJZY.mjs';
14
14
  import { getTextAroundCollapsedCursor, getFullEditorTextWithNewlines } from './chunk-IXJ2HCOA.mjs';
@@ -107,6 +107,7 @@ var BaseCopilotTextareaWithHoveringContext = React.forwardRef(
107
107
  const _a = props, {
108
108
  placeholderStyle,
109
109
  value,
110
+ hoverMenuClassname,
110
111
  onValueChange,
111
112
  baseAutosuggestionsConfig: autosuggestionsConfigFromProps,
112
113
  className,
@@ -116,6 +117,7 @@ var BaseCopilotTextareaWithHoveringContext = React.forwardRef(
116
117
  } = _a, propsToForward = __objRest(_a, [
117
118
  "placeholderStyle",
118
119
  "value",
120
+ "hoverMenuClassname",
119
121
  "onValueChange",
120
122
  "baseAutosuggestionsConfig",
121
123
  "className",
@@ -158,7 +160,8 @@ var BaseCopilotTextareaWithHoveringContext = React.forwardRef(
158
160
  }),
159
161
  /* @__PURE__ */ jsx(HoveringToolbar, {
160
162
  apiConfig: autosuggestionsConfig.apiConfig,
161
- contextCategories: autosuggestionsConfig.contextCategories
163
+ contextCategories: autosuggestionsConfig.contextCategories,
164
+ hoverMenuClassname
162
165
  }),
163
166
  /* @__PURE__ */ jsx(Editable, __spreadValues({
164
167
  renderElement: renderElementMemoized,
@@ -199,4 +202,4 @@ var BaseCopilotTextarea = React.forwardRef(
199
202
 
200
203
  export { BaseCopilotTextarea };
201
204
  //# sourceMappingURL=out.js.map
202
- //# sourceMappingURL=chunk-JBI2MZB4.mjs.map
205
+ //# sourceMappingURL=chunk-JYVC4AW3.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 React, { 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/base-copilot-textarea-implementation/use-autosuggestions\";\nimport { useCopilotTextareaEditor } from \"../../hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor\";\nimport { usePopulateCopilotTextareaRef } from \"../../hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref\";\nimport {\n getFullEditorTextWithNewlines,\n getTextAroundCollapsedCursor,\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 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 { HoveringToolbar } from \"../hovering-toolbar/hovering-toolbar\";\nimport { makeRenderElementFunction } from \"./render-element\";\nimport { makeRenderPlaceholderFunction } from \"./render-placeholder\";\nimport { useAddBrandingCss } from \"./use-add-branding-css\";\nimport {\n HoveringEditorProvider,\n useHoveringEditorContext,\n} from \"../hovering-toolbar/hovering-editor-provider\";\nimport { EditorAutocompleteState } from \"../../types/base/editor-autocomplete-state\";\nimport { TrackerTextEditedSinceLastCursorMovement } from \"./track-cursor-moved-since-last-text-change\";\n\nexport interface HTMLCopilotTextAreaElement extends HTMLElement {\n value: string;\n focus: () => void;\n blur: () => void;\n}\n\nconst BaseCopilotTextareaWithHoveringContext = React.forwardRef(\n (\n props: BaseCopilotTextareaProps,\n ref: React.Ref<HTMLCopilotTextAreaElement>\n ): JSX.Element => {\n const autosuggestionsConfig: BaseAutosuggestionsConfig = {\n ...defaultBaseAutosuggestionsConfig,\n ...props.baseAutosuggestionsConfig,\n };\n\n const valueOnInitialRender = useMemo(() => props.value ?? \"\", []);\n const [lastKnownFullEditorText, setLastKnownFullEditorText] =\n useState(valueOnInitialRender);\n const [cursorMovedSinceLastTextChange, setCursorMovedSinceLastTextChange] =\n useState(false);\n\n // // When the editor text changes, we want to reset the `textEditedSinceLastCursorMovement` state.\n // useEffect(() => {\n // setCursorMovedSinceLastTextChange(false);\n // }, [lastKnownFullEditorText]);\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 {\n isDisplayed: hoveringEditorIsDisplayed,\n setIsDisplayed: setHoveringEditorIsDisplayed,\n } = useHoveringEditorContext();\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 autosuggestionsConfig.apiConfig.autosuggestionsFunction,\n insertText,\n autosuggestionsConfig.disableWhenEmpty,\n autosuggestionsConfig.disabled ||\n hoveringEditorIsDisplayed || // disable autosuggestions when the hovering editor is displayed\n (cursorMovedSinceLastTextChange &&\n autosuggestionsConfig.temporarilyDisableWhenMovingCursorWithoutChangingText) // disable autosuggestions when the cursor has moved since the last text change\n );\n const onKeyDownHandlerForHoveringEditor = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // if command-k, toggle the hovering editor\n if (event.key === \"k\" && event.metaKey) {\n event.preventDefault();\n setHoveringEditorIsDisplayed(!hoveringEditorIsDisplayed);\n }\n },\n [hoveringEditorIsDisplayed, setHoveringEditorIsDisplayed]\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 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 hoverMenuClassname,\n onValueChange,\n baseAutosuggestionsConfig: autosuggestionsConfigFromProps,\n className,\n onChange,\n onKeyDown,\n disableBranding,\n ...propsToForward\n } = props;\n\n useAddBrandingCss(suggestionStyleAugmented, disableBranding);\n usePopulateCopilotTextareaRef(editor, ref);\n\n const moddedClassName = (() => {\n const baseClassName = \"copilot-textarea\";\n const brandingClass = disableBranding ? \"no-branding\" : \"with-branding\";\n const defaultTailwindClassName = \"bg-white overflow-y-auto resize-y\";\n const mergedClassName = twMerge(\n defaultTailwindClassName,\n className ?? \"\"\n );\n return `${baseClassName} ${brandingClass} ${mergedClassName}`;\n })();\n\n return (\n <Slate\n editor={editor}\n initialValue={initialValue}\n onChange={(value) => {\n const newEditorState = getTextAroundCollapsedCursor(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((prev) => {\n if (prev !== fullEditorText) {\n setCursorMovedSinceLastTextChange(false);\n }\n return fullEditorText;\n });\n onChangeHandlerForAutocomplete(newEditorState);\n\n props.onValueChange?.(fullEditorText);\n props.onChange?.(makeSemiFakeReactTextAreaEvent(fullEditorText));\n }}\n >\n <TrackerTextEditedSinceLastCursorMovement\n setCursorMovedSinceLastTextChange={setCursorMovedSinceLastTextChange}\n />\n <HoveringToolbar\n apiConfig={autosuggestionsConfig.apiConfig}\n contextCategories={autosuggestionsConfig.contextCategories}\n hoverMenuClassname={hoverMenuClassname}\n />\n <Editable\n renderElement={renderElementMemoized}\n renderPlaceholder={renderPlaceholderMemoized}\n onKeyDown={(event) => {\n onKeyDownHandlerForHoveringEditor(event); // forward the event for internal use\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\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\nexport const BaseCopilotTextarea = React.forwardRef(\n (\n props: BaseCopilotTextareaProps,\n ref: React.Ref<HTMLCopilotTextAreaElement>\n ): JSX.Element => {\n return (\n <HoveringEditorProvider>\n <BaseCopilotTextareaWithHoveringContext {...props} ref={ref} />\n </HoveringEditorProvider>\n );\n }\n);\n"]}
@@ -1,4 +1,4 @@
1
- import { HoveringInsertionPromptBoxCore } from './chunk-MRPRZQMN.mjs';
1
+ import { HoveringInsertionPromptBoxCore } from './chunk-GIJ3JZ4P.mjs';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
 
4
4
  var HoveringInsertionPromptBox = (props) => {
@@ -18,4 +18,4 @@ var HoveringInsertionPromptBox = (props) => {
18
18
 
19
19
  export { HoveringInsertionPromptBox };
20
20
  //# sourceMappingURL=out.js.map
21
- //# sourceMappingURL=chunk-NO3EYPQH.mjs.map
21
+ //# sourceMappingURL=chunk-O4MHJSK2.mjs.map
@@ -1,4 +1,4 @@
1
- export { BaseCopilotTextarea } from '../../chunk-JBI2MZB4.mjs';
1
+ export { BaseCopilotTextarea } from '../../chunk-JYVC4AW3.mjs';
2
2
  import '../../chunk-CSGFJU3L.mjs';
3
3
  import '../../chunk-KCHYD3EB.mjs';
4
4
  import '../../chunk-YQU7WG7T.mjs';
@@ -9,11 +9,11 @@ import '../../chunk-UHD44NC5.mjs';
9
9
  import '../../chunk-JAFCXEPU.mjs';
10
10
  import '../../chunk-OD7ZMOVE.mjs';
11
11
  import '../../chunk-MPME5BW2.mjs';
12
- import '../../chunk-IJC2EXRO.mjs';
12
+ import '../../chunk-3L6CNVCE.mjs';
13
13
  import '../../chunk-L7VVZH4Q.mjs';
14
- import '../../chunk-NO3EYPQH.mjs';
15
- import '../../chunk-MRPRZQMN.mjs';
16
- import '../../chunk-PGGR6HL5.mjs';
14
+ import '../../chunk-O4MHJSK2.mjs';
15
+ import '../../chunk-GIJ3JZ4P.mjs';
16
+ import '../../chunk-4LOLCQGR.mjs';
17
17
  import '../../chunk-ND5PXTAW.mjs';
18
18
  import '../../chunk-2NURR2DX.mjs';
19
19
  import '../../chunk-5EJ5XOGP.mjs';
@@ -25,7 +25,7 @@ import '../../chunk-O5OWT5GE.mjs';
25
25
  import '../../chunk-GCMQHIRF.mjs';
26
26
  import '../../chunk-KGKLUWKW.mjs';
27
27
  import '../../chunk-WJHSY5T6.mjs';
28
- import '../../chunk-S6JUGJK2.mjs';
28
+ import '../../chunk-6Z2ATUNY.mjs';
29
29
  import '../../chunk-LNAIMEB2.mjs';
30
30
  import '../../chunk-OELUUJZY.mjs';
31
31
  import '../../chunk-NKW5OU2S.mjs';