@copilotkit/react-textarea 0.33.0 → 0.34.0-mme-fix-esm-error.1

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 (49) hide show
  1. package/.turbo/turbo-build.log +61 -61
  2. package/CHANGELOG.md +36 -0
  3. package/dist/{chunk-QLRPU7CE.mjs → chunk-22TYLEZZ.mjs} +8 -3
  4. package/dist/{chunk-QLRPU7CE.mjs.map → chunk-22TYLEZZ.mjs.map} +1 -1
  5. package/dist/{chunk-P4QVFRLY.mjs → chunk-CF5GISTC.mjs} +8 -8
  6. package/dist/chunk-CF5GISTC.mjs.map +1 -0
  7. package/dist/{chunk-F4ZGXQBM.mjs → chunk-COQISBP2.mjs} +2 -2
  8. package/dist/{chunk-6GJ732U4.mjs → chunk-DMLXXOXD.mjs} +4 -4
  9. package/dist/chunk-DMLXXOXD.mjs.map +1 -0
  10. package/dist/{chunk-SN7BEUGH.mjs → chunk-OGLVRSCO.mjs} +3 -5
  11. package/dist/chunk-OGLVRSCO.mjs.map +1 -0
  12. package/dist/{chunk-TH4DT752.mjs → chunk-SP5HFO3H.mjs} +2 -2
  13. package/dist/components/base-copilot-textarea/base-copilot-textarea.js +16 -13
  14. package/dist/components/base-copilot-textarea/base-copilot-textarea.js.map +1 -1
  15. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +5 -5
  16. package/dist/components/copilot-textarea/copilot-textarea.js +16 -13
  17. package/dist/components/copilot-textarea/copilot-textarea.js.map +1 -1
  18. package/dist/components/copilot-textarea/copilot-textarea.mjs +6 -6
  19. package/dist/components/hovering-toolbar/hovering-toolbar-components.js +7 -7
  20. package/dist/components/hovering-toolbar/hovering-toolbar-components.js.map +1 -1
  21. package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs +1 -1
  22. package/dist/components/hovering-toolbar/hovering-toolbar.js +10 -12
  23. package/dist/components/hovering-toolbar/hovering-toolbar.js.map +1 -1
  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.js +2 -4
  26. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js.map +1 -1
  27. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs +1 -1
  28. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js +2 -4
  29. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js.map +1 -1
  30. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs +2 -2
  31. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js +2 -4
  32. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js.map +1 -1
  33. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs +2 -2
  34. package/dist/components/index.js +16 -13
  35. package/dist/components/index.js.map +1 -1
  36. package/dist/components/index.mjs +6 -6
  37. package/dist/index.js +16 -13
  38. package/dist/index.js.map +1 -1
  39. package/dist/index.mjs +6 -6
  40. package/package.json +7 -7
  41. package/src/components/base-copilot-textarea/base-copilot-textarea.tsx +5 -0
  42. package/src/components/hovering-toolbar/hovering-toolbar-components.tsx +20 -18
  43. package/src/components/hovering-toolbar/hovering-toolbar.tsx +1 -1
  44. package/src/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.tsx +1 -7
  45. package/dist/chunk-6GJ732U4.mjs.map +0 -1
  46. package/dist/chunk-P4QVFRLY.mjs.map +0 -1
  47. package/dist/chunk-SN7BEUGH.mjs.map +0 -1
  48. /package/dist/{chunk-F4ZGXQBM.mjs.map → chunk-COQISBP2.mjs.map} +0 -0
  49. /package/dist/{chunk-TH4DT752.mjs.map → chunk-SP5HFO3H.mjs.map} +0 -0
@@ -1,5 +1,5 @@
1
1
 
2
- > @copilotkit/react-textarea@0.33.0 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-textarea
2
+ > @copilotkit/react-textarea@0.34.0-mme-fix-esm-error.1 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-textarea
3
3
  > tsup --clean
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/make-system-prompt.ts, src/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.tsx
@@ -25,10 +25,10 @@ Browserslist: caniuse-lite is outdated. Please run:
25
25
  ESM dist/lib/debouncer.mjs 147.00 B
26
26
  ESM dist/components/copilot-textarea/copilot-textarea.css 253.00 B
27
27
  ESM dist/components/base-copilot-textarea/base-copilot-textarea.css 258.00 B
28
- ESM dist/chunk-DE5K76I2.mjs 43.00 B
29
28
  ESM dist/chunk-WADHCMPK.mjs 43.00 B
29
+ ESM dist/chunk-DE5K76I2.mjs 43.00 B
30
30
  ESM dist/chunk-MMVDU6DF.mjs 43.00 B
31
- ESM dist/chunk-TH4DT752.mjs 1.88 KB
31
+ ESM dist/chunk-SP5HFO3H.mjs 1.88 KB
32
32
  ESM dist/chunk-RT4UTBH3.mjs 2.09 KB
33
33
  ESM dist/chunk-QCPS6IYI.mjs 3.85 KB
34
34
  ESM dist/chunk-RUV6NBIF.mjs 43.00 B
@@ -36,8 +36,8 @@ Browserslist: caniuse-lite is outdated. Please run:
36
36
  ESM dist/chunk-4OJ3H65F.mjs 2.50 KB
37
37
  ESM dist/chunk-RKQ6RTZM.mjs 2.89 KB
38
38
  ESM dist/chunk-KDVMG3XF.mjs 2.48 KB
39
- ESM dist/chunk-QLRPU7CE.mjs 8.56 KB
40
39
  ESM dist/chunk-DRV2FOHZ.mjs 2.06 KB
40
+ ESM dist/chunk-22TYLEZZ.mjs 8.76 KB
41
41
  ESM dist/chunk-4NHVQZ67.mjs 3.05 KB
42
42
  ESM dist/chunk-VPEH6V7T.mjs 2.63 KB
43
43
  ESM dist/chunk-2C7O2EVM.mjs 564.00 B
@@ -47,16 +47,16 @@ Browserslist: caniuse-lite is outdated. Please run:
47
47
  ESM dist/chunk-JJLQVT7S.mjs 468.00 B
48
48
  ESM dist/chunk-LQ2OWQU7.mjs 1.41 KB
49
49
  ESM dist/chunk-7LSRNPNI.mjs 2.13 KB
50
- ESM dist/chunk-6GJ732U4.mjs 3.82 KB
50
+ ESM dist/chunk-DMLXXOXD.mjs 3.85 KB
51
51
  ESM dist/chunk-L7VVZH4Q.mjs 43.00 B
52
- ESM dist/chunk-F4ZGXQBM.mjs 928.00 B
53
- ESM dist/chunk-SN7BEUGH.mjs 8.46 KB
52
+ ESM dist/chunk-COQISBP2.mjs 928.00 B
54
53
  ESM dist/chunk-YNXNMCDX.mjs 1.42 KB
54
+ ESM dist/chunk-OGLVRSCO.mjs 8.42 KB
55
55
  ESM dist/chunk-3PQ7GSFE.mjs 544.00 B
56
56
  ESM dist/chunk-WFTAAA7R.mjs 1.81 KB
57
57
  ESM dist/chunk-YFK5BFEI.mjs 812.00 B
58
58
  ESM dist/chunk-LYB4B6MK.mjs 672.00 B
59
- ESM dist/chunk-P4QVFRLY.mjs 2.42 KB
59
+ ESM dist/chunk-CF5GISTC.mjs 2.43 KB
60
60
  ESM dist/chunk-4OZR65UB.mjs 2.46 KB
61
61
  ESM dist/chunk-FFSICDS5.mjs 4.66 KB
62
62
  ESM dist/chunk-4HBKWUCT.mjs 4.29 KB
@@ -65,9 +65,9 @@ Browserslist: caniuse-lite is outdated. Please run:
65
65
  ESM dist/chunk-WJHSY5T6.mjs 43.00 B
66
66
  ESM dist/chunk-LCDTIJSD.mjs 905.00 B
67
67
  ESM dist/chunk-224UKA7C.mjs 1.13 KB
68
- ESM dist/chunk-XW3ICO4S.mjs 688.00 B
69
68
  ESM dist/chunk-IU3WTXLQ.mjs 43.00 B
70
69
  ESM dist/chunk-H4VKQGVU.mjs 43.00 B
70
+ ESM dist/chunk-XW3ICO4S.mjs 688.00 B
71
71
  ESM dist/chunk-DFTV4TST.mjs 931.00 B
72
72
  ESM dist/lib/editor-to-text.mjs 158.00 B
73
73
  ESM dist/chunk-T6MTDQZ7.mjs 1.31 KB
@@ -91,11 +91,11 @@ Browserslist: caniuse-lite is outdated. Please run:
91
91
  ESM dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs 645.00 B
92
92
  ESM dist/types/base/base-autosuggestions-config.mjs 217.00 B
93
93
  ESM dist/types/base/base-copilot-textarea-props.mjs 56.00 B
94
- ESM dist/types/base/custom-editor.mjs 42.00 B
95
94
  ESM dist/types/base/editor-autocomplete-state.mjs 238.00 B
95
+ ESM dist/types/base/custom-editor.mjs 42.00 B
96
96
  ESM dist/types/base/index.mjs 230.00 B
97
- ESM dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs 606.00 B
98
97
  ESM dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs 631.00 B
98
+ ESM dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs 606.00 B
99
99
  ESM dist/types/autosuggestions-config/autosuggestions-config.mjs 379.00 B
100
100
  ESM dist/types/autosuggestions-config/editing-api-config.mjs 324.00 B
101
101
  ESM dist/types/autosuggestions-config/index.mjs 397.00 B
@@ -115,8 +115,8 @@ Browserslist: caniuse-lite is outdated. Please run:
115
115
  ESM dist/components/ui/textarea.mjs 886.00 B
116
116
  ESM dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs 286.00 B
117
117
  ESM dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs 282.00 B
118
- ESM dist/components/base-copilot-textarea/use-add-branding-css.mjs 180.00 B
119
118
  ESM dist/components/copilot-textarea/copilot-textarea.mjs 1.57 KB
119
+ ESM dist/components/base-copilot-textarea/use-add-branding-css.mjs 180.00 B
120
120
  ESM dist/components/hovering-toolbar/hovering-editor-provider.mjs 250.00 B
121
121
  ESM dist/components/hovering-toolbar/hovering-toolbar-components.mjs 239.00 B
122
122
  ESM dist/components/hovering-toolbar/hovering-toolbar.mjs 697.00 B
@@ -126,8 +126,8 @@ Browserslist: caniuse-lite is outdated. Please run:
126
126
  ESM dist/types/html-copilot-textarea-element.mjs 90.00 B
127
127
  ESM dist/types/index.mjs 517.00 B
128
128
  ESM dist/components/base-copilot-textarea/base-copilot-textarea.mjs 1.27 KB
129
- ESM dist/components/base-copilot-textarea/render-element.mjs 190.00 B
130
129
  ESM dist/components/base-copilot-textarea/render-placeholder.mjs 202.00 B
130
+ ESM dist/components/base-copilot-textarea/render-element.mjs 190.00 B
131
131
  ESM dist/index.mjs.map 71.00 B
132
132
  ESM dist/components/index.mjs.map 71.00 B
133
133
  ESM dist/context/index.mjs.map 71.00 B
@@ -138,8 +138,8 @@ Browserslist: caniuse-lite is outdated. Please run:
138
138
  ESM dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs 47.00 B
139
139
  ESM dist/chunk-DE5K76I2.mjs.map 71.00 B
140
140
  ESM dist/chunk-WADHCMPK.mjs.map 71.00 B
141
+ ESM dist/chunk-SP5HFO3H.mjs.map 3.41 KB
141
142
  ESM dist/chunk-MMVDU6DF.mjs.map 71.00 B
142
- ESM dist/chunk-TH4DT752.mjs.map 3.41 KB
143
143
  ESM dist/chunk-RT4UTBH3.mjs.map 4.52 KB
144
144
  ESM dist/chunk-QCPS6IYI.mjs.map 7.62 KB
145
145
  ESM dist/chunk-RUV6NBIF.mjs.map 71.00 B
@@ -147,38 +147,38 @@ Browserslist: caniuse-lite is outdated. Please run:
147
147
  ESM dist/chunk-4OJ3H65F.mjs.map 3.91 KB
148
148
  ESM dist/chunk-RKQ6RTZM.mjs.map 4.17 KB
149
149
  ESM dist/chunk-KDVMG3XF.mjs.map 3.57 KB
150
- ESM dist/chunk-QLRPU7CE.mjs.map 15.56 KB
151
150
  ESM dist/chunk-DRV2FOHZ.mjs.map 3.80 KB
151
+ ESM dist/chunk-22TYLEZZ.mjs.map 15.84 KB
152
152
  ESM dist/chunk-4NHVQZ67.mjs.map 6.12 KB
153
153
  ESM dist/chunk-VPEH6V7T.mjs.map 4.76 KB
154
154
  ESM dist/chunk-2C7O2EVM.mjs.map 1.04 KB
155
155
  ESM dist/chunk-GQN2HYFJ.mjs.map 1.10 KB
156
156
  ESM dist/chunk-5UNJXFUO.mjs.map 1.13 KB
157
- ESM dist/chunk-QKS2IOUH.mjs.map 6.04 KB
158
157
  ESM dist/chunk-JJLQVT7S.mjs.map 882.00 B
159
- ESM dist/chunk-LQ2OWQU7.mjs.map 3.00 KB
158
+ ESM dist/chunk-QKS2IOUH.mjs.map 6.04 KB
160
159
  ESM dist/chunk-7LSRNPNI.mjs.map 3.46 KB
161
- ESM dist/chunk-6GJ732U4.mjs.map 6.93 KB
160
+ ESM dist/chunk-LQ2OWQU7.mjs.map 3.00 KB
162
161
  ESM dist/chunk-L7VVZH4Q.mjs.map 71.00 B
163
- ESM dist/chunk-F4ZGXQBM.mjs.map 1.45 KB
164
- ESM dist/chunk-SN7BEUGH.mjs.map 14.07 KB
162
+ ESM dist/chunk-DMLXXOXD.mjs.map 6.98 KB
163
+ ESM dist/chunk-COQISBP2.mjs.map 1.45 KB
165
164
  ESM dist/chunk-YNXNMCDX.mjs.map 2.41 KB
166
165
  ESM dist/chunk-3PQ7GSFE.mjs.map 1.13 KB
167
166
  ESM dist/chunk-WFTAAA7R.mjs.map 2.57 KB
167
+ ESM dist/chunk-OGLVRSCO.mjs.map 13.70 KB
168
168
  ESM dist/chunk-YFK5BFEI.mjs.map 1.09 KB
169
169
  ESM dist/chunk-LYB4B6MK.mjs.map 1.36 KB
170
- ESM dist/chunk-P4QVFRLY.mjs.map 3.55 KB
170
+ ESM dist/chunk-CF5GISTC.mjs.map 3.61 KB
171
171
  ESM dist/chunk-4OZR65UB.mjs.map 4.53 KB
172
172
  ESM dist/chunk-FFSICDS5.mjs.map 6.83 KB
173
- ESM dist/chunk-4HBKWUCT.mjs.map 5.66 KB
174
173
  ESM dist/chunk-2QDCE7PD.mjs.map 1.39 KB
174
+ ESM dist/chunk-4HBKWUCT.mjs.map 5.66 KB
175
175
  ESM dist/chunk-7SUZ6CXM.mjs.map 2.45 KB
176
176
  ESM dist/chunk-WJHSY5T6.mjs.map 71.00 B
177
- ESM dist/chunk-LCDTIJSD.mjs.map 5.30 KB
178
177
  ESM dist/chunk-224UKA7C.mjs.map 1.71 KB
179
- ESM dist/chunk-XW3ICO4S.mjs.map 947.00 B
178
+ ESM dist/chunk-LCDTIJSD.mjs.map 5.30 KB
180
179
  ESM dist/chunk-IU3WTXLQ.mjs.map 71.00 B
181
180
  ESM dist/chunk-H4VKQGVU.mjs.map 71.00 B
181
+ ESM dist/chunk-XW3ICO4S.mjs.map 947.00 B
182
182
  ESM dist/chunk-DFTV4TST.mjs.map 1.62 KB
183
183
  ESM dist/lib/editor-to-text.mjs.map 71.00 B
184
184
  ESM dist/chunk-T6MTDQZ7.mjs.map 2.82 KB
@@ -187,24 +187,27 @@ Browserslist: caniuse-lite is outdated. Please run:
187
187
  ESM dist/lib/retry.mjs.map 71.00 B
188
188
  ESM dist/chunk-KNQIEOFP.mjs.map 971.00 B
189
189
  ESM dist/chunk-MRXNTQOX.mjs.map 71.00 B
190
- ESM dist/index.css.map 29.12 KB
191
190
  ESM dist/components/index.css.map 429.00 B
192
191
  ESM dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.mjs.map 71.00 B
193
192
  ESM dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs 53.00 B
193
+ ESM dist/index.css.map 29.12 KB
194
194
  ESM dist/types/base/autosuggestions-bare-function.mjs.map 71.00 B
195
195
  ESM dist/lib/slatejs-edits/with-partial-history.mjs.map 71.00 B
196
- ESM dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs.map 71.00 B
197
- ESM dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs.map 71.00 B
198
- ESM dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map 71.00 B
199
196
  ESM dist/hooks/misc/use-autosize-textarea.mjs.map 71.00 B
197
+ ESM dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs.map 71.00 B
200
198
  ESM dist/components/ui/button.mjs.map 71.00 B
201
199
  ESM dist/components/manual-ui/chip-with-icon.mjs.map 937.00 B
202
200
  ESM dist/components/source-search-box/source-search-box.mjs.map 71.00 B
201
+ ESM dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map 71.00 B
202
+ ESM dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs.map 71.00 B
203
+ ESM dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs.map 71.00 B
203
204
  ESM dist/types/base/base-autosuggestions-config.mjs.map 71.00 B
205
+ ESM dist/types/base/base-copilot-textarea-props.mjs.map 71.00 B
204
206
  ESM dist/types/base/editor-autocomplete-state.mjs.map 71.00 B
207
+ ESM dist/types/base/custom-editor.mjs.map 71.00 B
205
208
  ESM dist/types/base/index.mjs.map 71.00 B
206
- ESM dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs.map 71.00 B
207
209
  ESM dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs.map 71.00 B
210
+ ESM dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs.map 71.00 B
208
211
  ESM dist/types/autosuggestions-config/autosuggestions-config.mjs.map 71.00 B
209
212
  ESM dist/types/autosuggestions-config/editing-api-config.mjs.map 71.00 B
210
213
  ESM dist/types/autosuggestions-config/index.mjs.map 71.00 B
@@ -214,42 +217,39 @@ Browserslist: caniuse-lite is outdated. Please run:
214
217
  ESM dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs.map 71.00 B
215
218
  ESM dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs.map 71.00 B
216
219
  ESM dist/lib/slatejs-edits/add-autocompletions.mjs.map 71.00 B
217
- ESM dist/types/base/custom-editor.mjs.map 71.00 B
218
- ESM dist/lib/slatejs-edits/clear-autocompletions.mjs.map 71.00 B
219
220
  ESM dist/lib/slatejs-edits/replace-text.mjs.map 71.00 B
220
- ESM dist/components/ui/command.mjs.map 71.00 B
221
+ ESM dist/lib/slatejs-edits/clear-autocompletions.mjs.map 71.00 B
221
222
  ESM dist/components/ui/card.mjs.map 3.08 KB
222
- ESM dist/components/ui/label.mjs.map 71.00 B
223
+ ESM dist/components/ui/command.mjs.map 71.00 B
223
224
  ESM dist/components/ui/dialog.mjs.map 71.00 B
225
+ ESM dist/components/ui/label.mjs.map 71.00 B
224
226
  ESM dist/components/ui/textarea.mjs.map 1.11 KB
225
227
  ESM dist/components/ui/separator.mjs.map 1.20 KB
226
228
  ESM dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs.map 71.00 B
227
229
  ESM dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs.map 71.00 B
228
230
  ESM dist/components/copilot-textarea/copilot-textarea.mjs.map 71.00 B
229
231
  ESM dist/components/base-copilot-textarea/use-add-branding-css.mjs.map 71.00 B
230
- ESM dist/components/hovering-toolbar/hovering-toolbar-components.mjs.map 71.00 B
231
232
  ESM dist/components/hovering-toolbar/hovering-editor-provider.mjs.map 71.00 B
233
+ ESM dist/components/hovering-toolbar/hovering-toolbar-components.mjs.map 71.00 B
232
234
  ESM dist/components/hovering-toolbar/hovering-toolbar.mjs.map 71.00 B
235
+ ESM dist/lib/stream-promise-flatten.mjs.map 71.00 B
233
236
  ESM dist/lib/utils.test.mjs.map 350.00 B
234
237
  ESM dist/lib/utils.mjs.map 71.00 B
235
238
  ESM dist/types/html-copilot-textarea-element.mjs.map 71.00 B
236
239
  ESM dist/types/index.mjs.map 71.00 B
240
+ ESM dist/components/base-copilot-textarea/render-placeholder.mjs.map 71.00 B
237
241
  ESM dist/components/base-copilot-textarea/base-copilot-textarea.mjs.map 71.00 B
238
242
  ESM dist/components/base-copilot-textarea/render-element.mjs.map 71.00 B
239
- ESM dist/components/base-copilot-textarea/render-placeholder.mjs.map 71.00 B
240
- ESM dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs.map 71.00 B
241
- ESM dist/types/base/base-copilot-textarea-props.mjs.map 71.00 B
242
- ESM dist/lib/stream-promise-flatten.mjs.map 71.00 B
243
243
  ESM dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs.map 71.00 B
244
244
  ESM dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs.map 71.00 B
245
- ESM ⚡️ Build success in 2051ms
246
- CJS dist/index.js 79.47 KB
247
- CJS dist/components/index.js 79.28 KB
245
+ ESM ⚡️ Build success in 1584ms
246
+ CJS dist/index.js 79.68 KB
248
247
  CJS dist/index.css 18.82 KB
249
248
  CJS dist/components/index.css 242.00 B
249
+ CJS dist/components/index.js 79.49 KB
250
250
  CJS dist/context/index.js 803.00 B
251
- CJS dist/lib/debouncer.js 2.38 KB
252
251
  CJS dist/hooks/index.js 797.00 B
252
+ CJS dist/lib/debouncer.js 2.38 KB
253
253
  CJS dist/lib/editor-to-text.js 2.35 KB
254
254
  CJS dist/lib/get-text-around-cursor.js 4.09 KB
255
255
  CJS dist/lib/retry.js 1.43 KB
@@ -258,17 +258,17 @@ Browserslist: caniuse-lite is outdated. Please run:
258
258
  CJS dist/lib/utils.js 3.08 KB
259
259
  CJS dist/types/html-copilot-textarea-element.js 893.00 B
260
260
  CJS dist/types/index.js 10.66 KB
261
- CJS dist/components/base-copilot-textarea/base-copilot-textarea.js 63.54 KB
262
261
  CJS dist/components/base-copilot-textarea/base-copilot-textarea.css 258.00 B
262
+ CJS dist/components/base-copilot-textarea/base-copilot-textarea.js 63.75 KB
263
263
  CJS dist/components/base-copilot-textarea/render-element.js 2.94 KB
264
264
  CJS dist/components/base-copilot-textarea/render-placeholder.js 2.84 KB
265
265
  CJS dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js 4.02 KB
266
266
  CJS dist/components/base-copilot-textarea/use-add-branding-css.js 3.19 KB
267
- CJS dist/components/copilot-textarea/copilot-textarea.js 79.21 KB
267
+ CJS dist/components/copilot-textarea/copilot-textarea.js 79.42 KB
268
268
  CJS dist/components/copilot-textarea/copilot-textarea.css 253.00 B
269
269
  CJS dist/components/hovering-toolbar/hovering-editor-provider.js 1.85 KB
270
- CJS dist/components/hovering-toolbar/hovering-toolbar-components.js 5.54 KB
271
- CJS dist/components/hovering-toolbar/hovering-toolbar.js 33.65 KB
270
+ CJS dist/components/hovering-toolbar/hovering-toolbar-components.js 5.55 KB
271
+ CJS dist/components/hovering-toolbar/hovering-toolbar.js 33.66 KB
272
272
  CJS dist/components/manual-ui/chip-with-icon.js 1.73 KB
273
273
  CJS dist/components/source-search-box/source-search-box.js 9.53 KB
274
274
  CJS dist/components/ui/button.js 4.82 KB
@@ -301,19 +301,19 @@ Browserslist: caniuse-lite is outdated. Please run:
301
301
  CJS dist/types/base/custom-editor.js 835.00 B
302
302
  CJS dist/types/base/editor-autocomplete-state.js 1.92 KB
303
303
  CJS dist/types/base/index.js 1.93 KB
304
- CJS dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js 24.50 KB
305
- CJS dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js 25.28 KB
304
+ CJS dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js 24.47 KB
305
+ CJS dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js 25.25 KB
306
306
  CJS dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.js 5.48 KB
307
- CJS dist/components/hovering-toolbar/text-insertion-prompt-box/index.js 25.22 KB
307
+ CJS dist/components/hovering-toolbar/text-insertion-prompt-box/index.js 25.19 KB
308
308
  CJS dist/types/autosuggestions-config/subtypes/make-system-prompt.js 881.00 B
309
309
  CJS dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.js 906.00 B
310
- CJS dist/index.js.map 142.77 KB
311
- CJS dist/components/index.js.map 142.97 KB
310
+ CJS dist/index.js.map 142.79 KB
312
311
  CJS dist/index.css.map 29.12 KB
313
312
  CJS dist/components/index.css.map 429.00 B
313
+ CJS dist/components/index.js.map 142.99 KB
314
314
  CJS dist/context/index.js.map 139.00 B
315
- CJS dist/lib/debouncer.js.map 1.68 KB
316
315
  CJS dist/hooks/index.js.map 137.00 B
316
+ CJS dist/lib/debouncer.js.map 1.68 KB
317
317
  CJS dist/lib/editor-to-text.js.map 2.86 KB
318
318
  CJS dist/lib/get-text-around-cursor.js.map 5.75 KB
319
319
  CJS dist/lib/retry.js.map 1018.00 B
@@ -322,17 +322,17 @@ Browserslist: caniuse-lite is outdated. Please run:
322
322
  CJS dist/lib/utils.js.map 2.53 KB
323
323
  CJS dist/types/html-copilot-textarea-element.js.map 280.00 B
324
324
  CJS dist/types/index.js.map 18.56 KB
325
- CJS dist/components/base-copilot-textarea/base-copilot-textarea.js.map 113.28 KB
326
325
  CJS dist/components/base-copilot-textarea/base-copilot-textarea.css.map 432.00 B
326
+ CJS dist/components/base-copilot-textarea/base-copilot-textarea.js.map 113.30 KB
327
327
  CJS dist/components/base-copilot-textarea/render-element.js.map 1.75 KB
328
328
  CJS dist/components/base-copilot-textarea/render-placeholder.js.map 1020.00 B
329
329
  CJS dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js.map 5.80 KB
330
330
  CJS dist/components/base-copilot-textarea/use-add-branding-css.js.map 3.50 KB
331
- CJS dist/components/copilot-textarea/copilot-textarea.js.map 142.80 KB
331
+ CJS dist/components/copilot-textarea/copilot-textarea.js.map 142.82 KB
332
332
  CJS dist/components/copilot-textarea/copilot-textarea.css.map 432.00 B
333
333
  CJS dist/components/hovering-toolbar/hovering-editor-provider.js.map 1.40 KB
334
- CJS dist/components/hovering-toolbar/hovering-toolbar-components.js.map 3.68 KB
335
- CJS dist/components/hovering-toolbar/hovering-toolbar.js.map 53.78 KB
334
+ CJS dist/components/hovering-toolbar/hovering-toolbar-components.js.map 3.75 KB
335
+ CJS dist/components/hovering-toolbar/hovering-toolbar.js.map 53.52 KB
336
336
  CJS dist/components/manual-ui/chip-with-icon.js.map 969.00 B
337
337
  CJS dist/components/source-search-box/source-search-box.js.map 13.01 KB
338
338
  CJS dist/components/ui/button.js.map 4.34 KB
@@ -365,14 +365,14 @@ Browserslist: caniuse-lite is outdated. Please run:
365
365
  CJS dist/types/base/custom-editor.js.map 886.00 B
366
366
  CJS dist/types/base/editor-autocomplete-state.js.map 2.64 KB
367
367
  CJS dist/types/base/index.js.map 5.72 KB
368
- CJS dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js.map 36.71 KB
369
- CJS dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js.map 38.12 KB
368
+ CJS dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js.map 36.34 KB
369
+ CJS dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js.map 37.75 KB
370
370
  CJS dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.js.map 5.26 KB
371
- CJS dist/components/hovering-toolbar/text-insertion-prompt-box/index.js.map 38.35 KB
371
+ CJS dist/components/hovering-toolbar/text-insertion-prompt-box/index.js.map 37.98 KB
372
372
  CJS dist/types/autosuggestions-config/subtypes/make-system-prompt.js.map 268.00 B
373
373
  CJS dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.js.map 283.00 B
374
- CJS ⚡️ Build success in 2110ms
375
- DTS ⚡️ Build success in 16297ms
374
+ CJS ⚡️ Build success in 1638ms
375
+ DTS ⚡️ Build success in 15419ms
376
376
  DTS dist/index.d.ts 1.34 KB
377
377
  DTS dist/components/base-copilot-textarea/base-copilot-textarea.d.ts 1.62 KB
378
378
  DTS dist/components/copilot-textarea/copilot-textarea.d.ts 1.36 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # ui
2
2
 
3
+ ## 0.34.0-mme-fix-esm-error.1
4
+
5
+ ### Minor Changes
6
+
7
+ - ESM by default
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies
12
+ - @copilotkit/react-core@0.24.0-mme-fix-esm-error.1
13
+ - @copilotkit/shared@0.8.0-mme-fix-esm-error.1
14
+
15
+ ## 0.34.0-mme-fix-esm-error.0
16
+
17
+ ### Minor Changes
18
+
19
+ - Use esm by default
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies
24
+ - @copilotkit/react-core@0.24.0-mme-fix-esm-error.0
25
+ - @copilotkit/shared@0.8.0-mme-fix-esm-error.0
26
+
27
+ ## 0.34.0-mme-fix-esm-error.0
28
+
29
+ ### Minor Changes
30
+
31
+ - Add distinct exports for cjs and esm
32
+
33
+ ### Patch Changes
34
+
35
+ - Updated dependencies
36
+ - @copilotkit/react-core@0.24.0-mme-fix-esm-error.0
37
+ - @copilotkit/shared@0.8.0-mme-fix-esm-error.0
38
+
3
39
  ## 0.33.0
4
40
 
5
41
  ### Minor Changes
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-7LSRNPNI.mjs";
25
25
  import {
26
26
  HoveringToolbar
27
- } from "./chunk-6GJ732U4.mjs";
27
+ } from "./chunk-DMLXXOXD.mjs";
28
28
  import {
29
29
  HoveringEditorProvider,
30
30
  useHoveringEditorContext
@@ -227,7 +227,12 @@ var BaseCopilotTextareaWithHoveringContext = React.forwardRef(
227
227
  onKeyDownHandlerForAutocomplete(event);
228
228
  (_a2 = props.onKeyDown) == null ? void 0 : _a2.call(props, event);
229
229
  },
230
- className: moddedClassName
230
+ className: moddedClassName,
231
+ onBlur: (ev) => {
232
+ var _a2;
233
+ (_a2 = props.onBlur) == null ? void 0 : _a2.call(props, ev);
234
+ clearAutocompletionsFromEditor(editor);
235
+ }
231
236
  }, propsToForward)
232
237
  )
233
238
  ]
@@ -251,4 +256,4 @@ function makeSemiFakeReactTextAreaEvent(currentText) {
251
256
  export {
252
257
  BaseCopilotTextarea
253
258
  };
254
- //# sourceMappingURL=chunk-QLRPU7CE.mjs.map
259
+ //# sourceMappingURL=chunk-22TYLEZZ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/base-copilot-textarea/base-copilot-textarea.tsx"],"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 { BaseAutosuggestionsConfig, defaultBaseAutosuggestionsConfig } 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 { TrackerTextEditedSinceLastCursorMovement } from \"./track-cursor-moved-since-last-text-change\";\n\n/**\n * Purpose: to be used as the `ref` type for `CopilotTextarea` and `BaseCopilotTextarea`.\n *\n * This interface extends `HTMLElement`, and is the subset of `HTMLTextAreaElement` that \"actually matters\".\n * It provides the core functionality that consumers of `HTMLTextAreaElement` need 99.9% of the time:\n * - `value`: the current value of the textarea\n * - `focus`: make the textarea focused\n * - `blur`: make the textarea unfocused\n */\nexport interface HTMLCopilotTextAreaElement extends HTMLElement {\n /**\n * The current value of the textarea.\n */\n value: string;\n\n /**\n * focus on the textarea\n */\n focus: () => void;\n\n /**\n * unfocus the textarea.\n *\n * Called `blur` for syntactic compatibility with `HTMLTextAreaElement`.\n */\n blur: () => void;\n}\n\n/**\n * Not intended for direct use. Use CopilotTextarea instead.\n *\n * The `BaseCopilotTextarea` includes the basic UX component,\n * without the business logic / AI logic that makes the content useful and coherent.\n *\n * It is useful if you want to build your own backend, with fully custom business logic\n * for figuring out which contnet to fill in.\n */\nexport const BaseCopilotTextarea = React.forwardRef(\n (props: BaseCopilotTextareaProps, ref: React.Ref<HTMLCopilotTextAreaElement>) => {\n return (\n <HoveringEditorProvider>\n <BaseCopilotTextareaWithHoveringContext {...props} ref={ref} />\n </HoveringEditorProvider>\n );\n },\n);\n\n/**\n * Not intended for direct use. Use `CopilotTextarea` instead.\n *\n * This is the private core of the `BaseCopilotTextarea` component.\n * For practical purposes the implementation is cleaner assuming containment in a `HoveringEditorProviderContext`.\n *\n * Therefore we separate the core logic into this component,\n * and wrap it in a `HoveringEditorProviderContext` in `BaseCopilotTextarea`.\n */\nconst BaseCopilotTextareaWithHoveringContext = React.forwardRef(\n (props: BaseCopilotTextareaProps, ref: React.Ref<HTMLCopilotTextAreaElement>) => {\n const autosuggestionsConfig: BaseAutosuggestionsConfig = {\n ...defaultBaseAutosuggestionsConfig,\n ...props.baseAutosuggestionsConfig,\n };\n\n const valueOnInitialRender = useMemo(() => props.value ?? \"\", []);\n const [lastKnownFullEditorText, setLastKnownFullEditorText] = useState(valueOnInitialRender);\n const [cursorMovedSinceLastTextChange, setCursorMovedSinceLastTextChange] = 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 { isDisplayed: hoveringEditorIsDisplayed, 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 shouldDisableAutosuggestions =\n // textarea is manually disabled:\n autosuggestionsConfig.disabled ||\n // hovering editor is displayed:\n hoveringEditorIsDisplayed ||\n // the cursor has moved since the last text change AND we are configured to disable autosuggestions in this case:\n (cursorMovedSinceLastTextChange &&\n autosuggestionsConfig.temporarilyDisableWhenMovingCursorWithoutChangingText);\n\n const {\n currentAutocompleteSuggestion,\n onChangeHandler: onChangeHandlerForAutocomplete,\n onKeyDownHandler: onKeyDownHandlerForAutocomplete,\n } = useAutosuggestions(\n autosuggestionsConfig.debounceTime,\n autosuggestionsConfig.shouldAcceptAutosuggestionOnKeyPress,\n autosuggestionsConfig.apiConfig.autosuggestionsFunction,\n insertText,\n autosuggestionsConfig.disableWhenEmpty,\n shouldDisableAutosuggestions,\n );\n\n const onKeyDownHandlerForHoveringEditor = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (\n autosuggestionsConfig.shouldToggleHoveringEditorOnKeyPress(event, props.shortcut ?? \"k\")\n ) {\n event.preventDefault();\n setHoveringEditorIsDisplayed(!hoveringEditorIsDisplayed);\n }\n },\n [\n hoveringEditorIsDisplayed,\n setHoveringEditorIsDisplayed,\n autosuggestionsConfig.shouldToggleHoveringEditorOnKeyPress,\n ],\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(defaultTailwindClassName, className ?? \"\");\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"],"mappings":"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","names":["_a","value"]}
1
+ {"version":3,"sources":["../src/components/base-copilot-textarea/base-copilot-textarea.tsx"],"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 { BaseAutosuggestionsConfig, defaultBaseAutosuggestionsConfig } 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 { TrackerTextEditedSinceLastCursorMovement } from \"./track-cursor-moved-since-last-text-change\";\n\n/**\n * Purpose: to be used as the `ref` type for `CopilotTextarea` and `BaseCopilotTextarea`.\n *\n * This interface extends `HTMLElement`, and is the subset of `HTMLTextAreaElement` that \"actually matters\".\n * It provides the core functionality that consumers of `HTMLTextAreaElement` need 99.9% of the time:\n * - `value`: the current value of the textarea\n * - `focus`: make the textarea focused\n * - `blur`: make the textarea unfocused\n */\nexport interface HTMLCopilotTextAreaElement extends HTMLElement {\n /**\n * The current value of the textarea.\n */\n value: string;\n\n /**\n * focus on the textarea\n */\n focus: () => void;\n\n /**\n * unfocus the textarea.\n *\n * Called `blur` for syntactic compatibility with `HTMLTextAreaElement`.\n */\n blur: () => void;\n}\n\n/**\n * Not intended for direct use. Use CopilotTextarea instead.\n *\n * The `BaseCopilotTextarea` includes the basic UX component,\n * without the business logic / AI logic that makes the content useful and coherent.\n *\n * It is useful if you want to build your own backend, with fully custom business logic\n * for figuring out which contnet to fill in.\n */\nexport const BaseCopilotTextarea = React.forwardRef(\n (props: BaseCopilotTextareaProps, ref: React.Ref<HTMLCopilotTextAreaElement>) => {\n return (\n <HoveringEditorProvider>\n <BaseCopilotTextareaWithHoveringContext {...props} ref={ref} />\n </HoveringEditorProvider>\n );\n },\n);\n\n/**\n * Not intended for direct use. Use `CopilotTextarea` instead.\n *\n * This is the private core of the `BaseCopilotTextarea` component.\n * For practical purposes the implementation is cleaner assuming containment in a `HoveringEditorProviderContext`.\n *\n * Therefore we separate the core logic into this component,\n * and wrap it in a `HoveringEditorProviderContext` in `BaseCopilotTextarea`.\n */\nconst BaseCopilotTextareaWithHoveringContext = React.forwardRef(\n (props: BaseCopilotTextareaProps, ref: React.Ref<HTMLCopilotTextAreaElement>) => {\n const autosuggestionsConfig: BaseAutosuggestionsConfig = {\n ...defaultBaseAutosuggestionsConfig,\n ...props.baseAutosuggestionsConfig,\n };\n\n const valueOnInitialRender = useMemo(() => props.value ?? \"\", []);\n const [lastKnownFullEditorText, setLastKnownFullEditorText] = useState(valueOnInitialRender);\n const [cursorMovedSinceLastTextChange, setCursorMovedSinceLastTextChange] = 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 { isDisplayed: hoveringEditorIsDisplayed, 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 shouldDisableAutosuggestions =\n // textarea is manually disabled:\n autosuggestionsConfig.disabled ||\n // hovering editor is displayed:\n hoveringEditorIsDisplayed ||\n // the cursor has moved since the last text change AND we are configured to disable autosuggestions in this case:\n (cursorMovedSinceLastTextChange &&\n autosuggestionsConfig.temporarilyDisableWhenMovingCursorWithoutChangingText);\n\n const {\n currentAutocompleteSuggestion,\n onChangeHandler: onChangeHandlerForAutocomplete,\n onKeyDownHandler: onKeyDownHandlerForAutocomplete,\n } = useAutosuggestions(\n autosuggestionsConfig.debounceTime,\n autosuggestionsConfig.shouldAcceptAutosuggestionOnKeyPress,\n autosuggestionsConfig.apiConfig.autosuggestionsFunction,\n insertText,\n autosuggestionsConfig.disableWhenEmpty,\n shouldDisableAutosuggestions,\n );\n\n const onKeyDownHandlerForHoveringEditor = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (\n autosuggestionsConfig.shouldToggleHoveringEditorOnKeyPress(event, props.shortcut ?? \"k\")\n ) {\n event.preventDefault();\n setHoveringEditorIsDisplayed(!hoveringEditorIsDisplayed);\n }\n },\n [\n hoveringEditorIsDisplayed,\n setHoveringEditorIsDisplayed,\n autosuggestionsConfig.shouldToggleHoveringEditorOnKeyPress,\n ],\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(defaultTailwindClassName, className ?? \"\");\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 onBlur={(ev) => {\n // clear autocompletion on blur\n props.onBlur?.(ev);\n clearAutocompletionsFromEditor(editor);\n }}\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"],"mappings":"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","names":["_a","value"]}
@@ -65,14 +65,14 @@ var Menu = React.forwardRef(
65
65
  className: cx(
66
66
  className,
67
67
  css`
68
- & > * {
69
- display: inline-block;
70
- }
68
+ & > * {
69
+ display: inline-block;
70
+ }
71
71
 
72
- & > * + * {
73
- margin-left: 15px;
74
- }
75
- `
72
+ & > * + * {
73
+ margin-left: 15px;
74
+ }
75
+ `
76
76
  )
77
77
  })
78
78
  );
@@ -110,4 +110,4 @@ export {
110
110
  Portal,
111
111
  Toolbar
112
112
  };
113
- //# sourceMappingURL=chunk-P4QVFRLY.mjs.map
113
+ //# sourceMappingURL=chunk-CF5GISTC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/hovering-toolbar/hovering-toolbar-components.tsx"],"sourcesContent":["import { css, cx } from \"@emotion/css\";\nimport React, { PropsWithChildren, Ref } from \"react\";\nimport ReactDOM from \"react-dom\";\n\ninterface BaseProps {\n className: string;\n [key: string]: unknown;\n}\n\nexport const Button = React.forwardRef(\n (\n {\n className,\n active,\n reversed,\n ...props\n }: PropsWithChildren<\n {\n active: boolean;\n reversed: boolean;\n } & BaseProps\n >,\n ref: Ref<HTMLSpanElement | null>,\n ) => (\n <span\n {...props}\n ref={ref as Ref<HTMLSpanElement>}\n className={cx(\n className,\n css`\n cursor: pointer;\n color: ${reversed ? (active ? \"white\" : \"#aaa\") : active ? \"black\" : \"#ccc\"};\n `,\n )}\n />\n ),\n);\n\nexport const Icon = React.forwardRef(\n ({ className, ...props }: PropsWithChildren<BaseProps>, ref: Ref<HTMLSpanElement | null>) => (\n <span\n {...props}\n ref={ref as Ref<HTMLSpanElement>}\n className={cx(\n \"material-icons\",\n className,\n css`\n font-size: 18px;\n vertical-align: text-bottom;\n `,\n )}\n />\n ),\n);\n\nexport const Menu = React.forwardRef(\n ({ className, ...props }: PropsWithChildren<BaseProps>, ref: Ref<HTMLDivElement | null>) => {\n return (\n <div\n {...props}\n data-test-id=\"menu\"\n ref={ref as Ref<HTMLDivElement>}\n className={cx(\n className,\n css`\n & > * {\n display: inline-block;\n }\n\n & > * + * {\n margin-left: 15px;\n }\n `,\n )}\n />\n );\n },\n);\nexport const Portal = ({ children }: { children: React.ReactNode }) => {\n return typeof document === \"object\" ? ReactDOM.createPortal(children, document.body) : null;\n};\n\nexport const Toolbar = React.forwardRef(\n ({ className, ...props }: PropsWithChildren<BaseProps>, ref?: Ref<HTMLDivElement>) => (\n <Menu\n {...props}\n ref={ref}\n className={cx(\n className,\n css`\n position: relative;\n padding: 1px 18px 17px;\n margin: 0 -20px;\n border-bottom: 2px solid #eee;\n margin-bottom: 20px;\n `,\n )}\n />\n ),\n);\n"],"mappings":";;;;;;;AAAA,SAAS,KAAK,UAAU;AACxB,OAAO,WAAuC;AAC9C,OAAO,cAAc;AAsBjB;AAfG,IAAM,SAAS,MAAM;AAAA,EAC1B,CACE,IAWA,QACA;AAZA,iBACE;AAAA;AAAA,MACA;AAAA,MACA;AAAA,IAdN,IAWI,IAIK,kBAJL,IAIK;AAAA,MAHH;AAAA,MACA;AAAA,MACA;AAAA;AAUF;AAAA,MAAC;AAAA,uCACK,QADL;AAAA,QAEC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA;AAAA,mBAEW,WAAY,SAAS,UAAU,SAAU,SAAS,UAAU;AAAA;AAAA,QAEzE;AAAA;AAAA,IACF;AAAA;AAEJ;AAEO,IAAM,OAAO,MAAM;AAAA,EACxB,CAAC,IAAuD,QAAkC;AAAzF,iBAAE,YAvCL,IAuCG,IAAgB,kBAAhB,IAAgB,CAAd;AACD;AAAA,MAAC;AAAA,uCACK,QADL;AAAA,QAEC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA;AAAA;AAAA;AAAA,QAIF;AAAA;AAAA,IACF;AAAA;AAEJ;AAEO,IAAM,OAAO,MAAM;AAAA,EACxB,CAAC,IAAuD,QAAoC;AAA3F,iBAAE,YAxDL,IAwDG,IAAgB,kBAAhB,IAAgB,CAAd;AACD,WACE;AAAA,MAAC;AAAA,uCACK,QADL;AAAA,QAEC,gBAAa;AAAA,QACb;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QASF;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACO,IAAM,SAAS,CAAC,EAAE,SAAS,MAAqC;AACrE,SAAO,OAAO,aAAa,WAAW,SAAS,aAAa,UAAU,SAAS,IAAI,IAAI;AACzF;AAEO,IAAM,UAAU,MAAM;AAAA,EAC3B,CAAC,IAAuD,QAA2B;AAAlF,iBAAE,YAnFL,IAmFG,IAAgB,kBAAhB,IAAgB,CAAd;AACD;AAAA,MAAC;AAAA,uCACK,QADL;AAAA,QAEC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOF;AAAA;AAAA,IACF;AAAA;AAEJ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  HoveringInsertionPromptBoxCore
3
- } from "./chunk-SN7BEUGH.mjs";
3
+ } from "./chunk-OGLVRSCO.mjs";
4
4
 
5
5
  // src/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.tsx
6
6
  import { jsx } from "react/jsx-runtime";
@@ -28,4 +28,4 @@ var HoveringInsertionPromptBox = (props) => {
28
28
  export {
29
29
  HoveringInsertionPromptBox
30
30
  };
31
- //# sourceMappingURL=chunk-F4ZGXQBM.mjs.map
31
+ //# sourceMappingURL=chunk-COQISBP2.mjs.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  HoveringInsertionPromptBox
3
- } from "./chunk-F4ZGXQBM.mjs";
3
+ } from "./chunk-COQISBP2.mjs";
4
4
  import {
5
5
  useHoveringEditorContext
6
6
  } from "./chunk-LYB4B6MK.mjs";
7
7
  import {
8
8
  Menu,
9
9
  Portal
10
- } from "./chunk-P4QVFRLY.mjs";
10
+ } from "./chunk-CF5GISTC.mjs";
11
11
  import {
12
12
  getFullEditorTextWithNewlines,
13
13
  getTextAroundSelection
@@ -38,7 +38,7 @@ var HoveringToolbar = (props) => {
38
38
  return;
39
39
  }
40
40
  const domSelection = window.getSelection();
41
- if (!domSelection) {
41
+ if (!domSelection || domSelection.rangeCount === 0) {
42
42
  return;
43
43
  }
44
44
  const domRange = domSelection.getRangeAt(0);
@@ -121,4 +121,4 @@ function editorState(editor, selection) {
121
121
  export {
122
122
  HoveringToolbar
123
123
  };
124
- //# sourceMappingURL=chunk-6GJ732U4.mjs.map
124
+ //# sourceMappingURL=chunk-DMLXXOXD.mjs.map