@copilotkit/react-textarea 0.33.0 → 0.34.0-mme-fix-esm-error.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +53 -53
- package/CHANGELOG.md +48 -0
- package/dist/{chunk-QLRPU7CE.mjs → chunk-22TYLEZZ.mjs} +8 -3
- package/dist/{chunk-QLRPU7CE.mjs.map → chunk-22TYLEZZ.mjs.map} +1 -1
- package/dist/{chunk-P4QVFRLY.mjs → chunk-CF5GISTC.mjs} +8 -8
- package/dist/chunk-CF5GISTC.mjs.map +1 -0
- package/dist/{chunk-F4ZGXQBM.mjs → chunk-COQISBP2.mjs} +2 -2
- package/dist/{chunk-6GJ732U4.mjs → chunk-DMLXXOXD.mjs} +4 -4
- package/dist/chunk-DMLXXOXD.mjs.map +1 -0
- package/dist/{chunk-SN7BEUGH.mjs → chunk-OGLVRSCO.mjs} +3 -5
- package/dist/chunk-OGLVRSCO.mjs.map +1 -0
- package/dist/{chunk-TH4DT752.mjs → chunk-SP5HFO3H.mjs} +2 -2
- package/dist/components/base-copilot-textarea/base-copilot-textarea.js +16 -13
- package/dist/components/base-copilot-textarea/base-copilot-textarea.js.map +1 -1
- package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +5 -5
- package/dist/components/copilot-textarea/copilot-textarea.js +16 -13
- package/dist/components/copilot-textarea/copilot-textarea.js.map +1 -1
- package/dist/components/copilot-textarea/copilot-textarea.mjs +6 -6
- package/dist/components/hovering-toolbar/hovering-toolbar-components.js +7 -7
- package/dist/components/hovering-toolbar/hovering-toolbar-components.js.map +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar.js +10 -12
- package/dist/components/hovering-toolbar/hovering-toolbar.js.map +1 -1
- package/dist/components/hovering-toolbar/hovering-toolbar.mjs +4 -4
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js +2 -4
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js +2 -4
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs +2 -2
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js +2 -4
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js.map +1 -1
- package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs +2 -2
- package/dist/components/index.js +16 -13
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +6 -6
- package/dist/index.js +16 -13
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +6 -6
- package/package.json +7 -7
- package/src/components/base-copilot-textarea/base-copilot-textarea.tsx +5 -0
- package/src/components/hovering-toolbar/hovering-toolbar-components.tsx +20 -18
- package/src/components/hovering-toolbar/hovering-toolbar.tsx +1 -1
- package/src/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.tsx +1 -7
- package/dist/chunk-6GJ732U4.mjs.map +0 -1
- package/dist/chunk-P4QVFRLY.mjs.map +0 -1
- package/dist/chunk-SN7BEUGH.mjs.map +0 -1
- /package/dist/{chunk-F4ZGXQBM.mjs.map → chunk-COQISBP2.mjs.map} +0 -0
- /package/dist/{chunk-TH4DT752.mjs.map → chunk-SP5HFO3H.mjs.map} +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @copilotkit/react-textarea@0.
|
|
2
|
+
> @copilotkit/react-textarea@0.34.0-mme-fix-esm-error.2 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-textarea
|
|
3
3
|
> tsup --clean
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m 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
|
|
@@ -28,7 +28,7 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
28
28
|
[32mESM[39m [1mdist/chunk-DE5K76I2.mjs [22m[32m43.00 B[39m
|
|
29
29
|
[32mESM[39m [1mdist/chunk-WADHCMPK.mjs [22m[32m43.00 B[39m
|
|
30
30
|
[32mESM[39m [1mdist/chunk-MMVDU6DF.mjs [22m[32m43.00 B[39m
|
|
31
|
-
[32mESM[39m [1mdist/chunk-
|
|
31
|
+
[32mESM[39m [1mdist/chunk-SP5HFO3H.mjs [22m[32m1.88 KB[39m
|
|
32
32
|
[32mESM[39m [1mdist/chunk-RT4UTBH3.mjs [22m[32m2.09 KB[39m
|
|
33
33
|
[32mESM[39m [1mdist/chunk-QCPS6IYI.mjs [22m[32m3.85 KB[39m
|
|
34
34
|
[32mESM[39m [1mdist/chunk-RUV6NBIF.mjs [22m[32m43.00 B[39m
|
|
@@ -36,7 +36,7 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
36
36
|
[32mESM[39m [1mdist/chunk-4OJ3H65F.mjs [22m[32m2.50 KB[39m
|
|
37
37
|
[32mESM[39m [1mdist/chunk-RKQ6RTZM.mjs [22m[32m2.89 KB[39m
|
|
38
38
|
[32mESM[39m [1mdist/chunk-KDVMG3XF.mjs [22m[32m2.48 KB[39m
|
|
39
|
-
[32mESM[39m [1mdist/chunk-
|
|
39
|
+
[32mESM[39m [1mdist/chunk-22TYLEZZ.mjs [22m[32m8.76 KB[39m
|
|
40
40
|
[32mESM[39m [1mdist/chunk-DRV2FOHZ.mjs [22m[32m2.06 KB[39m
|
|
41
41
|
[32mESM[39m [1mdist/chunk-4NHVQZ67.mjs [22m[32m3.05 KB[39m
|
|
42
42
|
[32mESM[39m [1mdist/chunk-VPEH6V7T.mjs [22m[32m2.63 KB[39m
|
|
@@ -47,16 +47,16 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
47
47
|
[32mESM[39m [1mdist/chunk-JJLQVT7S.mjs [22m[32m468.00 B[39m
|
|
48
48
|
[32mESM[39m [1mdist/chunk-LQ2OWQU7.mjs [22m[32m1.41 KB[39m
|
|
49
49
|
[32mESM[39m [1mdist/chunk-7LSRNPNI.mjs [22m[32m2.13 KB[39m
|
|
50
|
-
[32mESM[39m [1mdist/chunk-
|
|
50
|
+
[32mESM[39m [1mdist/chunk-DMLXXOXD.mjs [22m[32m3.85 KB[39m
|
|
51
51
|
[32mESM[39m [1mdist/chunk-L7VVZH4Q.mjs [22m[32m43.00 B[39m
|
|
52
|
-
[32mESM[39m [1mdist/chunk-
|
|
53
|
-
[32mESM[39m [1mdist/chunk-
|
|
52
|
+
[32mESM[39m [1mdist/chunk-COQISBP2.mjs [22m[32m928.00 B[39m
|
|
53
|
+
[32mESM[39m [1mdist/chunk-OGLVRSCO.mjs [22m[32m8.42 KB[39m
|
|
54
54
|
[32mESM[39m [1mdist/chunk-YNXNMCDX.mjs [22m[32m1.42 KB[39m
|
|
55
55
|
[32mESM[39m [1mdist/chunk-3PQ7GSFE.mjs [22m[32m544.00 B[39m
|
|
56
56
|
[32mESM[39m [1mdist/chunk-WFTAAA7R.mjs [22m[32m1.81 KB[39m
|
|
57
57
|
[32mESM[39m [1mdist/chunk-YFK5BFEI.mjs [22m[32m812.00 B[39m
|
|
58
58
|
[32mESM[39m [1mdist/chunk-LYB4B6MK.mjs [22m[32m672.00 B[39m
|
|
59
|
-
[32mESM[39m [1mdist/chunk-
|
|
59
|
+
[32mESM[39m [1mdist/chunk-CF5GISTC.mjs [22m[32m2.43 KB[39m
|
|
60
60
|
[32mESM[39m [1mdist/chunk-4OZR65UB.mjs [22m[32m2.46 KB[39m
|
|
61
61
|
[32mESM[39m [1mdist/chunk-FFSICDS5.mjs [22m[32m4.66 KB[39m
|
|
62
62
|
[32mESM[39m [1mdist/chunk-4HBKWUCT.mjs [22m[32m4.29 KB[39m
|
|
@@ -139,7 +139,7 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
139
139
|
[32mESM[39m [1mdist/chunk-DE5K76I2.mjs.map [22m[32m71.00 B[39m
|
|
140
140
|
[32mESM[39m [1mdist/chunk-WADHCMPK.mjs.map [22m[32m71.00 B[39m
|
|
141
141
|
[32mESM[39m [1mdist/chunk-MMVDU6DF.mjs.map [22m[32m71.00 B[39m
|
|
142
|
-
[32mESM[39m [1mdist/chunk-
|
|
142
|
+
[32mESM[39m [1mdist/chunk-SP5HFO3H.mjs.map [22m[32m3.41 KB[39m
|
|
143
143
|
[32mESM[39m [1mdist/chunk-RT4UTBH3.mjs.map [22m[32m4.52 KB[39m
|
|
144
144
|
[32mESM[39m [1mdist/chunk-QCPS6IYI.mjs.map [22m[32m7.62 KB[39m
|
|
145
145
|
[32mESM[39m [1mdist/chunk-RUV6NBIF.mjs.map [22m[32m71.00 B[39m
|
|
@@ -147,7 +147,7 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
147
147
|
[32mESM[39m [1mdist/chunk-4OJ3H65F.mjs.map [22m[32m3.91 KB[39m
|
|
148
148
|
[32mESM[39m [1mdist/chunk-RKQ6RTZM.mjs.map [22m[32m4.17 KB[39m
|
|
149
149
|
[32mESM[39m [1mdist/chunk-KDVMG3XF.mjs.map [22m[32m3.57 KB[39m
|
|
150
|
-
[32mESM[39m [1mdist/chunk-
|
|
150
|
+
[32mESM[39m [1mdist/chunk-22TYLEZZ.mjs.map [22m[32m15.84 KB[39m
|
|
151
151
|
[32mESM[39m [1mdist/chunk-DRV2FOHZ.mjs.map [22m[32m3.80 KB[39m
|
|
152
152
|
[32mESM[39m [1mdist/chunk-4NHVQZ67.mjs.map [22m[32m6.12 KB[39m
|
|
153
153
|
[32mESM[39m [1mdist/chunk-VPEH6V7T.mjs.map [22m[32m4.76 KB[39m
|
|
@@ -158,16 +158,16 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
158
158
|
[32mESM[39m [1mdist/chunk-JJLQVT7S.mjs.map [22m[32m882.00 B[39m
|
|
159
159
|
[32mESM[39m [1mdist/chunk-LQ2OWQU7.mjs.map [22m[32m3.00 KB[39m
|
|
160
160
|
[32mESM[39m [1mdist/chunk-7LSRNPNI.mjs.map [22m[32m3.46 KB[39m
|
|
161
|
-
[32mESM[39m [1mdist/chunk-
|
|
161
|
+
[32mESM[39m [1mdist/chunk-DMLXXOXD.mjs.map [22m[32m6.98 KB[39m
|
|
162
162
|
[32mESM[39m [1mdist/chunk-L7VVZH4Q.mjs.map [22m[32m71.00 B[39m
|
|
163
|
-
[32mESM[39m [1mdist/chunk-
|
|
164
|
-
[32mESM[39m [1mdist/chunk-
|
|
163
|
+
[32mESM[39m [1mdist/chunk-COQISBP2.mjs.map [22m[32m1.45 KB[39m
|
|
164
|
+
[32mESM[39m [1mdist/chunk-OGLVRSCO.mjs.map [22m[32m13.70 KB[39m
|
|
165
165
|
[32mESM[39m [1mdist/chunk-YNXNMCDX.mjs.map [22m[32m2.41 KB[39m
|
|
166
166
|
[32mESM[39m [1mdist/chunk-3PQ7GSFE.mjs.map [22m[32m1.13 KB[39m
|
|
167
167
|
[32mESM[39m [1mdist/chunk-WFTAAA7R.mjs.map [22m[32m2.57 KB[39m
|
|
168
168
|
[32mESM[39m [1mdist/chunk-YFK5BFEI.mjs.map [22m[32m1.09 KB[39m
|
|
169
169
|
[32mESM[39m [1mdist/chunk-LYB4B6MK.mjs.map [22m[32m1.36 KB[39m
|
|
170
|
-
[32mESM[39m [1mdist/chunk-
|
|
170
|
+
[32mESM[39m [1mdist/chunk-CF5GISTC.mjs.map [22m[32m3.61 KB[39m
|
|
171
171
|
[32mESM[39m [1mdist/chunk-4OZR65UB.mjs.map [22m[32m4.53 KB[39m
|
|
172
172
|
[32mESM[39m [1mdist/chunk-FFSICDS5.mjs.map [22m[32m6.83 KB[39m
|
|
173
173
|
[32mESM[39m [1mdist/chunk-4HBKWUCT.mjs.map [22m[32m5.66 KB[39m
|
|
@@ -200,7 +200,10 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
200
200
|
[32mESM[39m [1mdist/components/ui/button.mjs.map [22m[32m71.00 B[39m
|
|
201
201
|
[32mESM[39m [1mdist/components/manual-ui/chip-with-icon.mjs.map [22m[32m937.00 B[39m
|
|
202
202
|
[32mESM[39m [1mdist/components/source-search-box/source-search-box.mjs.map [22m[32m71.00 B[39m
|
|
203
|
+
[32mESM[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs.map [22m[32m71.00 B[39m
|
|
203
204
|
[32mESM[39m [1mdist/types/base/base-autosuggestions-config.mjs.map [22m[32m71.00 B[39m
|
|
205
|
+
[32mESM[39m [1mdist/types/base/base-copilot-textarea-props.mjs.map [22m[32m71.00 B[39m
|
|
206
|
+
[32mESM[39m [1mdist/types/base/custom-editor.mjs.map [22m[32m71.00 B[39m
|
|
204
207
|
[32mESM[39m [1mdist/types/base/editor-autocomplete-state.mjs.map [22m[32m71.00 B[39m
|
|
205
208
|
[32mESM[39m [1mdist/types/base/index.mjs.map [22m[32m71.00 B[39m
|
|
206
209
|
[32mESM[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs.map [22m[32m71.00 B[39m
|
|
@@ -214,22 +217,22 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
214
217
|
[32mESM[39m [1mdist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs.map [22m[32m71.00 B[39m
|
|
215
218
|
[32mESM[39m [1mdist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs.map [22m[32m71.00 B[39m
|
|
216
219
|
[32mESM[39m [1mdist/lib/slatejs-edits/add-autocompletions.mjs.map [22m[32m71.00 B[39m
|
|
217
|
-
[32mESM[39m [1mdist/types/base/custom-editor.mjs.map [22m[32m71.00 B[39m
|
|
218
220
|
[32mESM[39m [1mdist/lib/slatejs-edits/clear-autocompletions.mjs.map [22m[32m71.00 B[39m
|
|
219
221
|
[32mESM[39m [1mdist/lib/slatejs-edits/replace-text.mjs.map [22m[32m71.00 B[39m
|
|
220
|
-
[32mESM[39m [1mdist/components/ui/command.mjs.map [22m[32m71.00 B[39m
|
|
221
222
|
[32mESM[39m [1mdist/components/ui/card.mjs.map [22m[32m3.08 KB[39m
|
|
222
|
-
[32mESM[39m [1mdist/components/ui/
|
|
223
|
+
[32mESM[39m [1mdist/components/ui/command.mjs.map [22m[32m71.00 B[39m
|
|
223
224
|
[32mESM[39m [1mdist/components/ui/dialog.mjs.map [22m[32m71.00 B[39m
|
|
224
|
-
[32mESM[39m [1mdist/components/ui/
|
|
225
|
+
[32mESM[39m [1mdist/components/ui/label.mjs.map [22m[32m71.00 B[39m
|
|
225
226
|
[32mESM[39m [1mdist/components/ui/separator.mjs.map [22m[32m1.20 KB[39m
|
|
227
|
+
[32mESM[39m [1mdist/components/ui/textarea.mjs.map [22m[32m1.11 KB[39m
|
|
226
228
|
[32mESM[39m [1mdist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs.map [22m[32m71.00 B[39m
|
|
227
229
|
[32mESM[39m [1mdist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs.map [22m[32m71.00 B[39m
|
|
228
|
-
[32mESM[39m [1mdist/components/copilot-textarea/copilot-textarea.mjs.map [22m[32m71.00 B[39m
|
|
229
230
|
[32mESM[39m [1mdist/components/base-copilot-textarea/use-add-branding-css.mjs.map [22m[32m71.00 B[39m
|
|
230
|
-
[32mESM[39m [1mdist/components/
|
|
231
|
+
[32mESM[39m [1mdist/components/copilot-textarea/copilot-textarea.mjs.map [22m[32m71.00 B[39m
|
|
231
232
|
[32mESM[39m [1mdist/components/hovering-toolbar/hovering-editor-provider.mjs.map [22m[32m71.00 B[39m
|
|
233
|
+
[32mESM[39m [1mdist/components/hovering-toolbar/hovering-toolbar-components.mjs.map [22m[32m71.00 B[39m
|
|
232
234
|
[32mESM[39m [1mdist/components/hovering-toolbar/hovering-toolbar.mjs.map [22m[32m71.00 B[39m
|
|
235
|
+
[32mESM[39m [1mdist/lib/stream-promise-flatten.mjs.map [22m[32m71.00 B[39m
|
|
233
236
|
[32mESM[39m [1mdist/lib/utils.test.mjs.map [22m[32m350.00 B[39m
|
|
234
237
|
[32mESM[39m [1mdist/lib/utils.mjs.map [22m[32m71.00 B[39m
|
|
235
238
|
[32mESM[39m [1mdist/types/html-copilot-textarea-element.mjs.map [22m[32m71.00 B[39m
|
|
@@ -237,19 +240,16 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
237
240
|
[32mESM[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.mjs.map [22m[32m71.00 B[39m
|
|
238
241
|
[32mESM[39m [1mdist/components/base-copilot-textarea/render-element.mjs.map [22m[32m71.00 B[39m
|
|
239
242
|
[32mESM[39m [1mdist/components/base-copilot-textarea/render-placeholder.mjs.map [22m[32m71.00 B[39m
|
|
240
|
-
[32mESM[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs.map [22m[32m71.00 B[39m
|
|
241
|
-
[32mESM[39m [1mdist/types/base/base-copilot-textarea-props.mjs.map [22m[32m71.00 B[39m
|
|
242
|
-
[32mESM[39m [1mdist/lib/stream-promise-flatten.mjs.map [22m[32m71.00 B[39m
|
|
243
243
|
[32mESM[39m [1mdist/types/autosuggestions-config/subtypes/make-system-prompt.mjs.map [22m[32m71.00 B[39m
|
|
244
244
|
[32mESM[39m [1mdist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs.map [22m[32m71.00 B[39m
|
|
245
|
-
[32mESM[39m ⚡️ Build success in
|
|
246
|
-
[32mCJS[39m [1mdist/index.js [22m[32m79.
|
|
247
|
-
[32mCJS[39m [1mdist/components/index.js [22m[32m79.28 KB[39m
|
|
245
|
+
[32mESM[39m ⚡️ Build success in 1905ms
|
|
246
|
+
[32mCJS[39m [1mdist/index.js [22m[32m79.68 KB[39m
|
|
248
247
|
[32mCJS[39m [1mdist/index.css [22m[32m18.82 KB[39m
|
|
248
|
+
[32mCJS[39m [1mdist/components/index.js [22m[32m79.49 KB[39m
|
|
249
249
|
[32mCJS[39m [1mdist/components/index.css [22m[32m242.00 B[39m
|
|
250
250
|
[32mCJS[39m [1mdist/context/index.js [22m[32m803.00 B[39m
|
|
251
|
-
[32mCJS[39m [1mdist/lib/debouncer.js [22m[32m2.38 KB[39m
|
|
252
251
|
[32mCJS[39m [1mdist/hooks/index.js [22m[32m797.00 B[39m
|
|
252
|
+
[32mCJS[39m [1mdist/lib/debouncer.js [22m[32m2.38 KB[39m
|
|
253
253
|
[32mCJS[39m [1mdist/lib/editor-to-text.js [22m[32m2.35 KB[39m
|
|
254
254
|
[32mCJS[39m [1mdist/lib/get-text-around-cursor.js [22m[32m4.09 KB[39m
|
|
255
255
|
[32mCJS[39m [1mdist/lib/retry.js [22m[32m1.43 KB[39m
|
|
@@ -258,17 +258,17 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
258
258
|
[32mCJS[39m [1mdist/lib/utils.js [22m[32m3.08 KB[39m
|
|
259
259
|
[32mCJS[39m [1mdist/types/html-copilot-textarea-element.js [22m[32m893.00 B[39m
|
|
260
260
|
[32mCJS[39m [1mdist/types/index.js [22m[32m10.66 KB[39m
|
|
261
|
-
[32mCJS[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.js [22m[32m63.
|
|
261
|
+
[32mCJS[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.js [22m[32m63.75 KB[39m
|
|
262
262
|
[32mCJS[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.css [22m[32m258.00 B[39m
|
|
263
263
|
[32mCJS[39m [1mdist/components/base-copilot-textarea/render-element.js [22m[32m2.94 KB[39m
|
|
264
264
|
[32mCJS[39m [1mdist/components/base-copilot-textarea/render-placeholder.js [22m[32m2.84 KB[39m
|
|
265
265
|
[32mCJS[39m [1mdist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js [22m[32m4.02 KB[39m
|
|
266
266
|
[32mCJS[39m [1mdist/components/base-copilot-textarea/use-add-branding-css.js [22m[32m3.19 KB[39m
|
|
267
|
-
[32mCJS[39m [1mdist/components/copilot-textarea/copilot-textarea.js [22m[32m79.
|
|
267
|
+
[32mCJS[39m [1mdist/components/copilot-textarea/copilot-textarea.js [22m[32m79.42 KB[39m
|
|
268
268
|
[32mCJS[39m [1mdist/components/copilot-textarea/copilot-textarea.css [22m[32m253.00 B[39m
|
|
269
269
|
[32mCJS[39m [1mdist/components/hovering-toolbar/hovering-editor-provider.js [22m[32m1.85 KB[39m
|
|
270
|
-
[32mCJS[39m [1mdist/components/hovering-toolbar/hovering-toolbar-components.js [22m[32m5.
|
|
271
|
-
[32mCJS[39m [1mdist/components/hovering-toolbar/hovering-toolbar.js [22m[32m33.
|
|
270
|
+
[32mCJS[39m [1mdist/components/hovering-toolbar/hovering-toolbar-components.js [22m[32m5.55 KB[39m
|
|
271
|
+
[32mCJS[39m [1mdist/components/hovering-toolbar/hovering-toolbar.js [22m[32m33.66 KB[39m
|
|
272
272
|
[32mCJS[39m [1mdist/components/manual-ui/chip-with-icon.js [22m[32m1.73 KB[39m
|
|
273
273
|
[32mCJS[39m [1mdist/components/source-search-box/source-search-box.js [22m[32m9.53 KB[39m
|
|
274
274
|
[32mCJS[39m [1mdist/components/ui/button.js [22m[32m4.82 KB[39m
|
|
@@ -301,78 +301,78 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
301
301
|
[32mCJS[39m [1mdist/types/base/custom-editor.js [22m[32m835.00 B[39m
|
|
302
302
|
[32mCJS[39m [1mdist/types/base/editor-autocomplete-state.js [22m[32m1.92 KB[39m
|
|
303
303
|
[32mCJS[39m [1mdist/types/base/index.js [22m[32m1.93 KB[39m
|
|
304
|
-
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js [22m[32m24.
|
|
305
|
-
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js [22m[32m25.
|
|
304
|
+
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js [22m[32m24.47 KB[39m
|
|
305
|
+
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js [22m[32m25.25 KB[39m
|
|
306
306
|
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.js [22m[32m5.48 KB[39m
|
|
307
|
-
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/index.js [22m[32m25.
|
|
307
|
+
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/index.js [22m[32m25.19 KB[39m
|
|
308
308
|
[32mCJS[39m [1mdist/types/autosuggestions-config/subtypes/make-system-prompt.js [22m[32m881.00 B[39m
|
|
309
309
|
[32mCJS[39m [1mdist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.js [22m[32m906.00 B[39m
|
|
310
|
-
[32mCJS[39m [1mdist/index.js.map [22m[32m142.
|
|
311
|
-
[32mCJS[39m [1mdist/components/index.js.map [22m[32m142.
|
|
310
|
+
[32mCJS[39m [1mdist/index.js.map [22m[32m142.79 KB[39m
|
|
311
|
+
[32mCJS[39m [1mdist/components/index.js.map [22m[32m142.99 KB[39m
|
|
312
312
|
[32mCJS[39m [1mdist/index.css.map [22m[32m29.12 KB[39m
|
|
313
|
-
[32mCJS[39m [1mdist/components/index.css.map [22m[32m429.00 B[39m
|
|
314
313
|
[32mCJS[39m [1mdist/context/index.js.map [22m[32m139.00 B[39m
|
|
315
|
-
[32mCJS[39m [1mdist/lib/debouncer.js.map [22m[32m1.68 KB[39m
|
|
316
314
|
[32mCJS[39m [1mdist/hooks/index.js.map [22m[32m137.00 B[39m
|
|
315
|
+
[32mCJS[39m [1mdist/lib/debouncer.js.map [22m[32m1.68 KB[39m
|
|
317
316
|
[32mCJS[39m [1mdist/lib/editor-to-text.js.map [22m[32m2.86 KB[39m
|
|
318
317
|
[32mCJS[39m [1mdist/lib/get-text-around-cursor.js.map [22m[32m5.75 KB[39m
|
|
319
318
|
[32mCJS[39m [1mdist/lib/retry.js.map [22m[32m1018.00 B[39m
|
|
319
|
+
[32mCJS[39m [1mdist/components/index.css.map [22m[32m429.00 B[39m
|
|
320
320
|
[32mCJS[39m [1mdist/lib/stream-promise-flatten.js.map [22m[32m1.45 KB[39m
|
|
321
321
|
[32mCJS[39m [1mdist/lib/utils.test.js.map [22m[32m352.00 B[39m
|
|
322
322
|
[32mCJS[39m [1mdist/lib/utils.js.map [22m[32m2.53 KB[39m
|
|
323
323
|
[32mCJS[39m [1mdist/types/html-copilot-textarea-element.js.map [22m[32m280.00 B[39m
|
|
324
324
|
[32mCJS[39m [1mdist/types/index.js.map [22m[32m18.56 KB[39m
|
|
325
|
-
[32mCJS[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.js.map [22m[32m113.
|
|
326
|
-
[32mCJS[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.css.map [22m[32m432.00 B[39m
|
|
325
|
+
[32mCJS[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.js.map [22m[32m113.30 KB[39m
|
|
327
326
|
[32mCJS[39m [1mdist/components/base-copilot-textarea/render-element.js.map [22m[32m1.75 KB[39m
|
|
328
327
|
[32mCJS[39m [1mdist/components/base-copilot-textarea/render-placeholder.js.map [22m[32m1020.00 B[39m
|
|
329
328
|
[32mCJS[39m [1mdist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js.map [22m[32m5.80 KB[39m
|
|
330
329
|
[32mCJS[39m [1mdist/components/base-copilot-textarea/use-add-branding-css.js.map [22m[32m3.50 KB[39m
|
|
331
|
-
[32mCJS[39m [1mdist/components/copilot-textarea/copilot-textarea.
|
|
330
|
+
[32mCJS[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.css.map [22m[32m432.00 B[39m
|
|
332
331
|
[32mCJS[39m [1mdist/components/copilot-textarea/copilot-textarea.css.map [22m[32m432.00 B[39m
|
|
333
332
|
[32mCJS[39m [1mdist/components/hovering-toolbar/hovering-editor-provider.js.map [22m[32m1.40 KB[39m
|
|
334
|
-
[32mCJS[39m [1mdist/components/hovering-toolbar/hovering-toolbar-components.js.map [22m[32m3.
|
|
335
|
-
[32mCJS[39m [1mdist/components/hovering-toolbar/hovering-toolbar.js.map [22m[32m53.
|
|
333
|
+
[32mCJS[39m [1mdist/components/hovering-toolbar/hovering-toolbar-components.js.map [22m[32m3.75 KB[39m
|
|
334
|
+
[32mCJS[39m [1mdist/components/hovering-toolbar/hovering-toolbar.js.map [22m[32m53.52 KB[39m
|
|
336
335
|
[32mCJS[39m [1mdist/components/manual-ui/chip-with-icon.js.map [22m[32m969.00 B[39m
|
|
337
336
|
[32mCJS[39m [1mdist/components/source-search-box/source-search-box.js.map [22m[32m13.01 KB[39m
|
|
337
|
+
[32mCJS[39m [1mdist/components/copilot-textarea/copilot-textarea.js.map [22m[32m142.82 KB[39m
|
|
338
338
|
[32mCJS[39m [1mdist/components/ui/button.js.map [22m[32m4.34 KB[39m
|
|
339
339
|
[32mCJS[39m [1mdist/components/ui/card.js.map [22m[32m4.86 KB[39m
|
|
340
|
-
[32mCJS[39m [1mdist/components/ui/command.js.map [22m[32m14.31 KB[39m
|
|
341
340
|
[32mCJS[39m [1mdist/components/ui/dialog.js.map [22m[32m7.44 KB[39m
|
|
341
|
+
[32mCJS[39m [1mdist/components/ui/command.js.map [22m[32m14.31 KB[39m
|
|
342
342
|
[32mCJS[39m [1mdist/components/ui/label.js.map [22m[32m2.85 KB[39m
|
|
343
343
|
[32mCJS[39m [1mdist/components/ui/separator.js.map [22m[32m2.96 KB[39m
|
|
344
344
|
[32mCJS[39m [1mdist/components/ui/textarea.js.map [22m[32m2.87 KB[39m
|
|
345
|
-
[32mCJS[39m [1mdist/hooks/base-copilot-textarea-implementation/use-autosuggestions.js.map [22m[32m10.30 KB[39m
|
|
346
345
|
[32mCJS[39m [1mdist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.js.map [22m[32m9.92 KB[39m
|
|
347
|
-
[32mCJS[39m [1mdist/hooks/base-copilot-textarea-implementation/use-
|
|
346
|
+
[32mCJS[39m [1mdist/hooks/base-copilot-textarea-implementation/use-autosuggestions.js.map [22m[32m10.30 KB[39m
|
|
348
347
|
[32mCJS[39m [1mdist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.js.map [22m[32m5.49 KB[39m
|
|
349
|
-
[32mCJS[39m [1mdist/hooks/
|
|
348
|
+
[32mCJS[39m [1mdist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.js.map [22m[32m10.46 KB[39m
|
|
350
349
|
[32mCJS[39m [1mdist/hooks/misc/use-autosize-textarea.js.map [22m[32m1.17 KB[39m
|
|
350
|
+
[32mCJS[39m [1mdist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.js.map [22m[32m8.60 KB[39m
|
|
351
351
|
[32mCJS[39m [1mdist/lib/slatejs-edits/add-autocompletions.js.map [22m[32m1.08 KB[39m
|
|
352
352
|
[32mCJS[39m [1mdist/lib/slatejs-edits/clear-autocompletions.js.map [22m[32m1.14 KB[39m
|
|
353
353
|
[32mCJS[39m [1mdist/lib/slatejs-edits/replace-text.js.map [22m[32m1.17 KB[39m
|
|
354
354
|
[32mCJS[39m [1mdist/lib/slatejs-edits/with-partial-history.js.map [22m[32m6.16 KB[39m
|
|
355
355
|
[32mCJS[39m [1mdist/types/autosuggestions-config/autosuggestions-config-user-specified.js.map [22m[32m1.16 KB[39m
|
|
356
|
-
[32mCJS[39m [1mdist/types/autosuggestions-config/autosuggestions-config.js.map [22m[32m18.42 KB[39m
|
|
357
356
|
[32mCJS[39m [1mdist/types/autosuggestions-config/editing-api-config.js.map [22m[32m3.96 KB[39m
|
|
357
|
+
[32mCJS[39m [1mdist/types/autosuggestions-config/autosuggestions-config.js.map [22m[32m18.42 KB[39m
|
|
358
358
|
[32mCJS[39m [1mdist/types/autosuggestions-config/index.js.map [22m[32m19.08 KB[39m
|
|
359
359
|
[32mCJS[39m [1mdist/types/autosuggestions-config/insertions-api-config.js.map [22m[32m4.22 KB[39m
|
|
360
360
|
[32mCJS[39m [1mdist/types/autosuggestions-config/suggestions-api-config.js.map [22m[32m3.63 KB[39m
|
|
361
361
|
[32mCJS[39m [1mdist/types/base/autosuggestion-state.js.map [22m[32m269.00 B[39m
|
|
362
362
|
[32mCJS[39m [1mdist/types/base/autosuggestions-bare-function.js.map [22m[32m1.01 KB[39m
|
|
363
|
-
[32mCJS[39m [1mdist/types/base/base-autosuggestions-config.js.map [22m[32m5.34 KB[39m
|
|
364
363
|
[32mCJS[39m [1mdist/types/base/base-copilot-textarea-props.js.map [22m[32m2.29 KB[39m
|
|
364
|
+
[32mCJS[39m [1mdist/types/base/base-autosuggestions-config.js.map [22m[32m5.34 KB[39m
|
|
365
365
|
[32mCJS[39m [1mdist/types/base/custom-editor.js.map [22m[32m886.00 B[39m
|
|
366
366
|
[32mCJS[39m [1mdist/types/base/editor-autocomplete-state.js.map [22m[32m2.64 KB[39m
|
|
367
367
|
[32mCJS[39m [1mdist/types/base/index.js.map [22m[32m5.72 KB[39m
|
|
368
|
-
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js.map [22m[32m36.
|
|
369
|
-
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js.map [22m[
|
|
368
|
+
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js.map [22m[32m36.34 KB[39m
|
|
369
|
+
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js.map [22m[32m37.75 KB[39m
|
|
370
370
|
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.js.map [22m[32m5.26 KB[39m
|
|
371
|
-
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/index.js.map [22m[32m38.35 KB[39m
|
|
372
371
|
[32mCJS[39m [1mdist/types/autosuggestions-config/subtypes/make-system-prompt.js.map [22m[32m268.00 B[39m
|
|
373
372
|
[32mCJS[39m [1mdist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.js.map [22m[32m283.00 B[39m
|
|
374
|
-
[32mCJS[39m
|
|
375
|
-
[
|
|
373
|
+
[32mCJS[39m [1mdist/components/hovering-toolbar/text-insertion-prompt-box/index.js.map [22m[32m37.98 KB[39m
|
|
374
|
+
[32mCJS[39m ⚡️ Build success in 1984ms
|
|
375
|
+
[32mDTS[39m ⚡️ Build success in 15766ms
|
|
376
376
|
[32mDTS[39m [1mdist/index.d.ts [22m[32m1.34 KB[39m
|
|
377
377
|
[32mDTS[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.d.ts [22m[32m1.62 KB[39m
|
|
378
378
|
[32mDTS[39m [1mdist/components/copilot-textarea/copilot-textarea.d.ts [22m[32m1.36 KB[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
# ui
|
|
2
2
|
|
|
3
|
+
## 0.34.0-mme-fix-esm-error.2
|
|
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.2
|
|
13
|
+
- @copilotkit/shared@0.8.0-mme-fix-esm-error.2
|
|
14
|
+
|
|
15
|
+
## 0.34.0-mme-fix-esm-error.1
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- ESM by default
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Updated dependencies
|
|
24
|
+
- @copilotkit/react-core@0.24.0-mme-fix-esm-error.1
|
|
25
|
+
- @copilotkit/shared@0.8.0-mme-fix-esm-error.1
|
|
26
|
+
|
|
27
|
+
## 0.34.0-mme-fix-esm-error.0
|
|
28
|
+
|
|
29
|
+
### Minor Changes
|
|
30
|
+
|
|
31
|
+
- Use esm by default
|
|
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
|
+
|
|
39
|
+
## 0.34.0-mme-fix-esm-error.0
|
|
40
|
+
|
|
41
|
+
### Minor Changes
|
|
42
|
+
|
|
43
|
+
- Add distinct exports for cjs and esm
|
|
44
|
+
|
|
45
|
+
### Patch Changes
|
|
46
|
+
|
|
47
|
+
- Updated dependencies
|
|
48
|
+
- @copilotkit/react-core@0.24.0-mme-fix-esm-error.0
|
|
49
|
+
- @copilotkit/shared@0.8.0-mme-fix-esm-error.0
|
|
50
|
+
|
|
3
51
|
## 0.33.0
|
|
4
52
|
|
|
5
53
|
### Minor Changes
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
} from "./chunk-7LSRNPNI.mjs";
|
|
25
25
|
import {
|
|
26
26
|
HoveringToolbar
|
|
27
|
-
} from "./chunk-
|
|
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-
|
|
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
|
-
|
|
70
|
-
|
|
68
|
+
& > * {
|
|
69
|
+
display: inline-block;
|
|
70
|
+
}
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
31
|
+
//# sourceMappingURL=chunk-COQISBP2.mjs.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
HoveringInsertionPromptBox
|
|
3
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
124
|
+
//# sourceMappingURL=chunk-DMLXXOXD.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/hovering-toolbar/hovering-toolbar.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { Editor, Location, Transforms } from \"slate\";\nimport { useSlate, useSlateSelection } from \"slate-react\";\nimport { HoveringInsertionPromptBox } from \"./text-insertion-prompt-box\";\nimport { 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 = (props: HoveringToolbarProps) => {\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 || domSelection.rangeCount === 0) {\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 (rect.top === 0 && rect.left === 0 && rect.width === 0 && rect.height === 0) {\n return;\n }\n\n const minGapFromEdge = 60;\n const verticalOffsetFromCorner = 35;\n const horizontalOffsetFromCorner = 15;\n let top = 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 + window.scrollX - el.offsetWidth / 2 + rect.width / 2 + 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"],"mappings":"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","names":["selection"]}
|
|
@@ -50,10 +50,8 @@ var HoveringInsertionPromptBoxCore = ({
|
|
|
50
50
|
use_autosize_textarea_default(suggestionTextAreaRef, editSuggestion || "");
|
|
51
51
|
use_autosize_textarea_default(adjustmentTextAreaRef, adjustmentPrompt || "");
|
|
52
52
|
useEffect(() => {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
(_a = adjustmentTextAreaRef.current) == null ? void 0 : _a.focus();
|
|
56
|
-
}, 0);
|
|
53
|
+
var _a;
|
|
54
|
+
(_a = adjustmentTextAreaRef.current) == null ? void 0 : _a.focus();
|
|
57
55
|
}, []);
|
|
58
56
|
useEffect(() => {
|
|
59
57
|
if (!generatingSuggestion) {
|
|
@@ -224,4 +222,4 @@ var HoveringInsertionPromptBoxCore = ({
|
|
|
224
222
|
export {
|
|
225
223
|
HoveringInsertionPromptBoxCore
|
|
226
224
|
};
|
|
227
|
-
//# sourceMappingURL=chunk-
|
|
225
|
+
//# sourceMappingURL=chunk-OGLVRSCO.mjs.map
|