@copilotkit/react-textarea 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +84 -73
- package/CHANGELOG.md +7 -0
- package/dist/chunk-AOEXKPIX.mjs +83 -0
- package/dist/chunk-AOEXKPIX.mjs.map +1 -0
- package/dist/{chunk-6SYD77G6.mjs → chunk-CSGFJU3L.mjs} +2 -2
- package/dist/chunk-CSGFJU3L.mjs.map +1 -0
- package/dist/chunk-DCQ27XRF.mjs +32 -0
- package/dist/chunk-DCQ27XRF.mjs.map +1 -0
- package/dist/chunk-DE5K76I2.mjs +3 -0
- package/dist/{chunk-E2UEE45I.mjs → chunk-HZGSG7ST.mjs} +1 -1
- package/dist/chunk-HZGSG7ST.mjs.map +1 -0
- package/dist/{chunk-THWPPG6M.mjs → chunk-IGQI27NI.mjs} +20 -2
- package/dist/chunk-IGQI27NI.mjs.map +1 -0
- package/dist/chunk-M6QFKIBE.mjs +161 -0
- package/dist/chunk-M6QFKIBE.mjs.map +1 -0
- package/dist/chunk-WADHCMPK.mjs +3 -0
- package/dist/components/base-copilot-textarea/base-copilot-textarea.d.ts +9 -4
- package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +9 -8
- package/dist/components/base-copilot-textarea/use-add-branding-css.mjs +1 -1
- package/dist/components/copilot-textarea/copilot-textarea.d.ts +3 -2
- package/dist/components/copilot-textarea/copilot-textarea.mjs +10 -9
- package/dist/components/index.d.ts +2 -1
- package/dist/components/index.mjs +10 -9
- package/dist/hooks/{use-autosuggestions.d.ts → base-copilot-textarea-implementation/use-autosuggestions.d.ts} +3 -3
- package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs +7 -0
- package/dist/hooks/{use-copilot-textarea-editor.d.ts → base-copilot-textarea-implementation/use-copilot-textarea-editor.d.ts} +1 -1
- package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs +5 -0
- package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs.map +1 -0
- package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.d.ts +7 -0
- package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs +6 -0
- package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs.map +1 -0
- package/dist/index.css +4 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +12 -10
- package/dist/types/html-copilot-textarea-element.d.ts +7 -0
- package/dist/types/html-copilot-textarea-element.mjs +3 -0
- package/dist/types/html-copilot-textarea-element.mjs.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.mjs +2 -1
- package/package.json +1 -1
- package/src/components/base-copilot-textarea/base-copilot-textarea.tsx +160 -146
- package/src/components/base-copilot-textarea/use-add-branding-css.tsx +25 -1
- package/src/components/copilot-textarea/copilot-textarea.tsx +31 -21
- package/src/hooks/{use-autosuggestions.ts → base-copilot-textarea-implementation/use-autosuggestions.ts} +5 -5
- package/src/hooks/{use-copilot-textarea-editor.tsx → base-copilot-textarea-implementation/use-copilot-textarea-editor.tsx} +5 -5
- package/src/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.ts +101 -0
- package/src/types/html-copilot-textarea-element.ts +5 -0
- package/src/types/index.ts +1 -0
- package/dist/chunk-6SYD77G6.mjs.map +0 -1
- package/dist/chunk-E2UEE45I.mjs.map +0 -1
- package/dist/chunk-FD6FGKYY.mjs +0 -3
- package/dist/chunk-THWPPG6M.mjs.map +0 -1
- package/dist/chunk-YICIML6J.mjs +0 -154
- package/dist/chunk-YICIML6J.mjs.map +0 -1
- package/dist/chunk-YTT5NE6B.mjs +0 -25
- package/dist/chunk-YTT5NE6B.mjs.map +0 -1
- package/dist/hooks/use-autosuggestions.mjs +0 -7
- package/dist/hooks/use-copilot-textarea-editor.mjs +0 -5
- /package/dist/{chunk-FD6FGKYY.mjs.map → chunk-DE5K76I2.mjs.map} +0 -0
- /package/dist/{hooks/use-autosuggestions.mjs.map → chunk-WADHCMPK.mjs.map} +0 -0
- /package/dist/hooks/{use-copilot-textarea-editor.mjs.map → base-copilot-textarea-implementation/use-autosuggestions.mjs.map} +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
> @copilotkit/react-textarea@0.
|
|
2
|
+
> @copilotkit/react-textarea@0.12.0 build /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-textarea
|
|
3
3
|
> tsup --treeshake
|
|
4
4
|
|
|
5
|
-
[34mCLI[39m Building entry: src/index.tsx, src/components/index.ts, src/context/index.ts, src/hooks/index.ts, src/
|
|
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/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/use-add-branding-css.tsx, src/components/copilot-textarea/copilot-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/lib/slatejs-edits/add-autocompletions.ts, src/lib/slatejs-edits/clear-autocompletions.ts, src/lib/slatejs-edits/replace-text.ts, src/lib/slatejs-edits/with-partial-history.ts, src/types/base/autosuggestion-state.ts, src/types/base/autosuggestions-bare-function.ts, src/types/base/base-autosuggestions-config.tsx, src/types/base/base-copilot-textarea-props.tsx, src/types/base/custom-editor.tsx, src/types/base/editor-autocomplete-state.ts, src/types/base/index.ts, src/types/standard-autosuggestions/autosuggestions-config.tsx, src/types/standard-autosuggestions/index.ts, src/types/standard-autosuggestions/minimal-chat-gpt-message.tsx
|
|
6
6
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
7
7
|
[34mCLI[39m tsup v6.5.0
|
|
8
8
|
[34mCLI[39m Using tsup config: /home/runner/work/CopilotKit/CopilotKit/CopilotKit/packages/react-textarea/tsup.config.ts
|
|
@@ -13,29 +13,33 @@ Browserslist: caniuse-lite is outdated. Please run:
|
|
|
13
13
|
npx update-browserslist-db@latest
|
|
14
14
|
Why you should do it regularly: https://github.com/browserslist/update-db#readme
|
|
15
15
|
[34mDTS[39m Build start
|
|
16
|
-
Generated an empty chunk: "base-copilot-textarea-props".
|
|
17
|
-
Generated an empty chunk: "custom-editor".
|
|
18
16
|
Generated an empty chunk: "minimal-chat-gpt-message".
|
|
19
17
|
Generated an empty chunk: "autosuggestion-state".
|
|
20
18
|
Generated an empty chunk: "autosuggestions-bare-function".
|
|
21
|
-
Generated an empty chunk: "
|
|
19
|
+
Generated an empty chunk: "base-copilot-textarea-props".
|
|
20
|
+
Generated an empty chunk: "custom-editor".
|
|
21
|
+
Generated an empty chunk: "chunk-DE5K76I2".
|
|
22
|
+
Generated an empty chunk: "chunk-WADHCMPK".
|
|
22
23
|
Generated an empty chunk: "chunk-MMVDU6DF".
|
|
23
24
|
Generated an empty chunk: "chunk-AZQCUNBV".
|
|
24
25
|
Generated an empty chunk: "chunk-WJHSY5T6".
|
|
25
26
|
Generated an empty chunk: "chunk-IU3WTXLQ".
|
|
26
27
|
Generated an empty chunk: "chunk-H4VKQGVU".
|
|
27
|
-
[32mESM[39m [1mdist/index.css [22m[32m5.
|
|
28
|
+
[32mESM[39m [1mdist/index.css [22m[32m5.96 KB[39m
|
|
28
29
|
[32mESM[39m [1mdist/components/index.css [22m[32m242.00 B[39m
|
|
29
|
-
[32mESM[39m [1mdist/components/copilot-textarea/copilot-textarea.css [22m[32m253.00 B[39m
|
|
30
30
|
[32mESM[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.css [22m[32m258.00 B[39m
|
|
31
|
-
[32mESM[39m [1mdist/
|
|
31
|
+
[32mESM[39m [1mdist/components/copilot-textarea/copilot-textarea.css [22m[32m253.00 B[39m
|
|
32
|
+
[32mESM[39m [1mdist/index.css.map [22m[32m12.61 KB[39m
|
|
32
33
|
[32mESM[39m [1mdist/components/index.css.map [22m[32m429.00 B[39m
|
|
34
|
+
[32mESM[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.css.map [22m[32m432.00 B[39m
|
|
35
|
+
[32mESM[39m [1mdist/components/copilot-textarea/copilot-textarea.css.map [22m[32m432.00 B[39m
|
|
33
36
|
[32mESM[39m [1mdist/lib/utils.test.mjs [22m[32m200.00 B[39m
|
|
34
37
|
[32mESM[39m [1mdist/lib/slatejs-edits/add-autocompletions.mjs [22m[32m186.00 B[39m
|
|
35
|
-
[32mESM[39m [1mdist/types/
|
|
38
|
+
[32mESM[39m [1mdist/types/html-copilot-textarea-element.mjs [22m[32m122.00 B[39m
|
|
36
39
|
[32mESM[39m [1mdist/context/index.mjs [22m[32m98.00 B[39m
|
|
37
40
|
[32mESM[39m [1mdist/hooks/index.mjs [22m[32m98.00 B[39m
|
|
38
|
-
[32mESM[39m [1mdist/chunk-
|
|
41
|
+
[32mESM[39m [1mdist/chunk-WADHCMPK.mjs [22m[32m76.00 B[39m
|
|
42
|
+
[32mESM[39m [1mdist/chunk-DE5K76I2.mjs [22m[32m76.00 B[39m
|
|
39
43
|
[32mESM[39m [1mdist/chunk-MMVDU6DF.mjs [22m[32m76.00 B[39m
|
|
40
44
|
[32mESM[39m [1mdist/chunk-AZQCUNBV.mjs [22m[32m76.00 B[39m
|
|
41
45
|
[32mESM[39m [1mdist/chunk-WJHSY5T6.mjs [22m[32m76.00 B[39m
|
|
@@ -43,136 +47,143 @@ Generated an empty chunk: "chunk-H4VKQGVU".
|
|
|
43
47
|
[32mESM[39m [1mdist/chunk-IU3WTXLQ.mjs [22m[32m76.00 B[39m
|
|
44
48
|
[32mESM[39m [1mdist/chunk-H4VKQGVU.mjs [22m[32m76.00 B[39m
|
|
45
49
|
[32mESM[39m [1mdist/chunk-MRXNTQOX.mjs [22m[32m1.92 KB[39m
|
|
46
|
-
[32mESM[39m [1mdist/components/copilot-textarea/copilot-textarea.mjs [22m[32m837.00 B[39m
|
|
47
50
|
[32mESM[39m [1mdist/lib/slatejs-edits/clear-autocompletions.mjs [22m[32m192.00 B[39m
|
|
48
|
-
[32mESM[39m [1mdist/lib/slatejs-edits/replace-text.mjs [22m[32m170.00 B[39m
|
|
49
51
|
[32mESM[39m [1mdist/lib/slatejs-edits/with-partial-history.mjs [22m[32m198.00 B[39m
|
|
50
|
-
[32mESM[39m [1mdist/lib/
|
|
52
|
+
[32mESM[39m [1mdist/lib/slatejs-edits/replace-text.mjs [22m[32m170.00 B[39m
|
|
51
53
|
[32mESM[39m [1mdist/lib/utils.mjs [22m[32m220.00 B[39m
|
|
52
|
-
[32mESM[39m [1mdist/
|
|
54
|
+
[32mESM[39m [1mdist/types/index.mjs [22m[32m419.00 B[39m
|
|
55
|
+
[32mESM[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.mjs [22m[32m741.00 B[39m
|
|
53
56
|
[32mESM[39m [1mdist/components/base-copilot-textarea/render-element.mjs [22m[32m180.00 B[39m
|
|
54
57
|
[32mESM[39m [1mdist/components/base-copilot-textarea/render-placeholder.mjs [22m[32m188.00 B[39m
|
|
55
58
|
[32mESM[39m [1mdist/components/base-copilot-textarea/use-add-branding-css.mjs [22m[32m178.00 B[39m
|
|
56
|
-
[32mESM[39m [1mdist/
|
|
57
|
-
[32mESM[39m [1mdist/
|
|
58
|
-
[32mESM[39m [1mdist/chunk-
|
|
59
|
+
[32mESM[39m [1mdist/components/copilot-textarea/copilot-textarea.mjs [22m[32m872.00 B[39m
|
|
60
|
+
[32mESM[39m [1mdist/index.mjs [22m[32m1.06 KB[39m
|
|
61
|
+
[32mESM[39m [1mdist/chunk-DCQ27XRF.mjs [22m[32m1.23 KB[39m
|
|
62
|
+
[32mESM[39m [1mdist/components/index.mjs [22m[32m856.00 B[39m
|
|
59
63
|
[32mESM[39m [1mdist/chunk-A3SFEHWZ.mjs [22m[32m2.09 KB[39m
|
|
60
64
|
[32mESM[39m [1mdist/chunk-EHQ5TN4R.mjs [22m[32m2.75 KB[39m
|
|
61
|
-
[32mESM[39m [1mdist/chunk-
|
|
65
|
+
[32mESM[39m [1mdist/chunk-M6QFKIBE.mjs [22m[32m5.99 KB[39m
|
|
66
|
+
[32mESM[39m [1mdist/chunk-HZGSG7ST.mjs [22m[32m3.02 KB[39m
|
|
67
|
+
[32mESM[39m [1mdist/chunk-UW3ITU2Y.mjs [22m[32m496.00 B[39m
|
|
68
|
+
[32mESM[39m [1mdist/chunk-CSGFJU3L.mjs [22m[32m2.01 KB[39m
|
|
69
|
+
[32mESM[39m [1mdist/chunk-AOEXKPIX.mjs [22m[32m2.57 KB[39m
|
|
62
70
|
[32mESM[39m [1mdist/chunk-WJYQWL4I.mjs [22m[32m595.00 B[39m
|
|
63
|
-
[32mESM[39m [1mdist/chunk-4XYYSJ5C.mjs [22m[32m527.00 B[39m
|
|
64
71
|
[32mESM[39m [1mdist/chunk-TSF4AJIK.mjs [22m[32m716.00 B[39m
|
|
65
|
-
[32mESM[39m [1mdist/chunk-
|
|
72
|
+
[32mESM[39m [1mdist/chunk-KCHYD3EB.mjs [22m[32m3.08 KB[39m
|
|
73
|
+
[32mESM[39m [1mdist/chunk-4XYYSJ5C.mjs [22m[32m527.00 B[39m
|
|
74
|
+
[32mESM[39m [1mdist/chunk-KGKLUWKW.mjs [22m[32m1.37 KB[39m
|
|
66
75
|
[32mESM[39m [1mdist/chunk-LNAIMEB2.mjs [22m[32m1.09 KB[39m
|
|
67
76
|
[32mESM[39m [1mdist/chunk-OELUUJZY.mjs [22m[32m625.00 B[39m
|
|
68
|
-
[32mESM[39m [1mdist/chunk-
|
|
69
|
-
[32mESM[39m [1mdist/hooks/use-autosuggestions.mjs [22m[32m268.00 B[39m
|
|
70
|
-
[32mESM[39m [1mdist/chunk-E2UEE45I.mjs [22m[32m3.02 KB[39m
|
|
71
|
-
[32mESM[39m [1mdist/chunk-UW3ITU2Y.mjs [22m[32m496.00 B[39m
|
|
72
|
-
[32mESM[39m [1mdist/chunk-KGKLUWKW.mjs [22m[32m1.37 KB[39m
|
|
73
|
-
[32mESM[39m [1mdist/hooks/use-copilot-textarea-editor.mjs [22m[32m218.00 B[39m
|
|
74
|
-
[32mESM[39m [1mdist/chunk-6SYD77G6.mjs [22m[32m2.01 KB[39m
|
|
75
|
-
[32mESM[39m [1mdist/chunk-KCHYD3EB.mjs [22m[32m3.08 KB[39m
|
|
77
|
+
[32mESM[39m [1mdist/chunk-IGQI27NI.mjs [22m[32m2.11 KB[39m
|
|
76
78
|
[32mESM[39m [1mdist/lib/debouncer.mjs [22m[32m153.00 B[39m
|
|
77
79
|
[32mESM[39m [1mdist/chunk-NKW5OU2S.mjs [22m[32m959.00 B[39m
|
|
78
80
|
[32mESM[39m [1mdist/lib/editor-to-text.mjs [22m[32m1.34 KB[39m
|
|
79
|
-
[32mESM[39m [1mdist/
|
|
80
|
-
[32mESM[39m [1mdist/
|
|
81
|
-
[32mESM[39m [1mdist/types/base/base-copilot-textarea-props.mjs [22m[32m89.00 B[39m
|
|
81
|
+
[32mESM[39m [1mdist/lib/get-text-around-cursor.mjs [22m[32m232.00 B[39m
|
|
82
|
+
[32mESM[39m [1mdist/chunk-3UQM3NLM.mjs [22m[32m1.76 KB[39m
|
|
82
83
|
[32mESM[39m [1mdist/types/standard-autosuggestions/minimal-chat-gpt-message.mjs [22m[32m86.00 B[39m
|
|
84
|
+
[32mESM[39m [1mdist/types/base/autosuggestions-bare-function.mjs [22m[32m91.00 B[39m
|
|
85
|
+
[32mESM[39m [1mdist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs [22m[32m283.00 B[39m
|
|
83
86
|
[32mESM[39m [1mdist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs [22m[32m220.00 B[39m
|
|
84
|
-
[32mESM[39m [1mdist/types/base/
|
|
87
|
+
[32mESM[39m [1mdist/types/base/base-copilot-textarea-props.mjs [22m[32m89.00 B[39m
|
|
85
88
|
[32mESM[39m [1mdist/types/base/autosuggestion-state.mjs [22m[32m82.00 B[39m
|
|
86
|
-
[32mESM[39m [1mdist/types/base/
|
|
87
|
-
[32mESM[39m [1mdist/types/
|
|
89
|
+
[32mESM[39m [1mdist/types/base/custom-editor.mjs [22m[32m75.00 B[39m
|
|
90
|
+
[32mESM[39m [1mdist/types/standard-autosuggestions/index.mjs [22m[32m328.00 B[39m
|
|
88
91
|
[32mESM[39m [1mdist/types/base/editor-autocomplete-state.mjs [22m[32m227.00 B[39m
|
|
89
|
-
[32mESM[39m [1mdist/types/base/index.mjs [22m[32m213.00 B[39m
|
|
90
92
|
[32mESM[39m [1mdist/types/standard-autosuggestions/autosuggestions-config.mjs [22m[32m310.00 B[39m
|
|
91
|
-
[32mESM[39m [1mdist/types/
|
|
93
|
+
[32mESM[39m [1mdist/types/base/base-autosuggestions-config.mjs [22m[32m200.00 B[39m
|
|
94
|
+
[32mESM[39m [1mdist/types/base/index.mjs [22m[32m213.00 B[39m
|
|
95
|
+
[32mESM[39m [1mdist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs [22m[32m227.00 B[39m
|
|
96
|
+
[32mESM[39m [1mdist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs [22m[32m273.00 B[39m
|
|
92
97
|
[32mESM[39m [1mdist/lib/utils.test.mjs.map [22m[32m349.00 B[39m
|
|
93
98
|
[32mESM[39m [1mdist/lib/slatejs-edits/add-autocompletions.mjs.map [22m[32m51.00 B[39m
|
|
94
|
-
[32mESM[39m [1mdist/types/
|
|
99
|
+
[32mESM[39m [1mdist/types/html-copilot-textarea-element.mjs.map [22m[32m51.00 B[39m
|
|
95
100
|
[32mESM[39m [1mdist/context/index.mjs.map [22m[32m51.00 B[39m
|
|
96
101
|
[32mESM[39m [1mdist/hooks/index.mjs.map [22m[32m51.00 B[39m
|
|
97
|
-
[32mESM[39m [1mdist/chunk-
|
|
102
|
+
[32mESM[39m [1mdist/chunk-DE5K76I2.mjs.map [22m[32m51.00 B[39m
|
|
103
|
+
[32mESM[39m [1mdist/chunk-WADHCMPK.mjs.map [22m[32m51.00 B[39m
|
|
98
104
|
[32mESM[39m [1mdist/chunk-MMVDU6DF.mjs.map [22m[32m51.00 B[39m
|
|
99
105
|
[32mESM[39m [1mdist/chunk-AZQCUNBV.mjs.map [22m[32m51.00 B[39m
|
|
100
106
|
[32mESM[39m [1mdist/chunk-WJHSY5T6.mjs.map [22m[32m51.00 B[39m
|
|
101
|
-
[32mESM[39m [1mdist/chunk-7KWRVIYV.mjs.map [22m[32m623.00 B[39m
|
|
102
107
|
[32mESM[39m [1mdist/chunk-IU3WTXLQ.mjs.map [22m[32m51.00 B[39m
|
|
103
108
|
[32mESM[39m [1mdist/chunk-H4VKQGVU.mjs.map [22m[32m51.00 B[39m
|
|
104
109
|
[32mESM[39m [1mdist/chunk-MRXNTQOX.mjs.map [22m[32m71.00 B[39m
|
|
105
|
-
[32mESM[39m [1mdist/
|
|
110
|
+
[32mESM[39m [1mdist/chunk-7KWRVIYV.mjs.map [22m[32m623.00 B[39m
|
|
106
111
|
[32mESM[39m [1mdist/lib/slatejs-edits/clear-autocompletions.mjs.map [22m[32m51.00 B[39m
|
|
107
112
|
[32mESM[39m [1mdist/lib/slatejs-edits/replace-text.mjs.map [22m[32m51.00 B[39m
|
|
108
|
-
[32mESM[39m [1mdist/lib/slatejs-edits/with-partial-history.mjs.map [22m[32m51.00 B[39m
|
|
109
|
-
[32mESM[39m [1mdist/lib/get-text-around-cursor.mjs.map [22m[32m51.00 B[39m
|
|
110
113
|
[32mESM[39m [1mdist/lib/utils.mjs.map [22m[32m51.00 B[39m
|
|
114
|
+
[32mESM[39m [1mdist/types/index.mjs.map [22m[32m51.00 B[39m
|
|
115
|
+
[32mESM[39m [1mdist/lib/slatejs-edits/with-partial-history.mjs.map [22m[32m51.00 B[39m
|
|
111
116
|
[32mESM[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.mjs.map [22m[32m51.00 B[39m
|
|
112
117
|
[32mESM[39m [1mdist/components/base-copilot-textarea/render-element.mjs.map [22m[32m51.00 B[39m
|
|
113
118
|
[32mESM[39m [1mdist/components/base-copilot-textarea/render-placeholder.mjs.map [22m[32m51.00 B[39m
|
|
114
119
|
[32mESM[39m [1mdist/components/base-copilot-textarea/use-add-branding-css.mjs.map [22m[32m51.00 B[39m
|
|
120
|
+
[32mESM[39m [1mdist/components/copilot-textarea/copilot-textarea.mjs.map [22m[32m51.00 B[39m
|
|
121
|
+
[32mESM[39m [1mdist/chunk-DCQ27XRF.mjs.map [22m[32m2.17 KB[39m
|
|
115
122
|
[32mESM[39m [1mdist/index.mjs.map [22m[32m51.00 B[39m
|
|
116
123
|
[32mESM[39m [1mdist/components/index.mjs.map [22m[32m51.00 B[39m
|
|
117
|
-
[32mESM[39m [1mdist/chunk-YTT5NE6B.mjs.map [22m[32m1.81 KB[39m
|
|
118
|
-
[32mESM[39m [1mdist/chunk-A3SFEHWZ.mjs.map [22m[32m4.73 KB[39m
|
|
119
124
|
[32mESM[39m [1mdist/chunk-EHQ5TN4R.mjs.map [22m[32m4.01 KB[39m
|
|
120
|
-
[32mESM[39m [1mdist/chunk-
|
|
125
|
+
[32mESM[39m [1mdist/chunk-M6QFKIBE.mjs.map [22m[32m10.78 KB[39m
|
|
126
|
+
[32mESM[39m [1mdist/chunk-HZGSG7ST.mjs.map [22m[32m5.83 KB[39m
|
|
127
|
+
[32mESM[39m [1mdist/chunk-UW3ITU2Y.mjs.map [22m[32m878.00 B[39m
|
|
128
|
+
[32mESM[39m [1mdist/chunk-CSGFJU3L.mjs.map [22m[32m3.82 KB[39m
|
|
129
|
+
[32mESM[39m [1mdist/chunk-A3SFEHWZ.mjs.map [22m[32m4.73 KB[39m
|
|
130
|
+
[32mESM[39m [1mdist/chunk-AOEXKPIX.mjs.map [22m[32m4.80 KB[39m
|
|
121
131
|
[32mESM[39m [1mdist/chunk-WJYQWL4I.mjs.map [22m[32m1.04 KB[39m
|
|
122
|
-
[32mESM[39m [1mdist/chunk-4XYYSJ5C.mjs.map [22m[32m921.00 B[39m
|
|
123
132
|
[32mESM[39m [1mdist/chunk-TSF4AJIK.mjs.map [22m[32m1.31 KB[39m
|
|
124
|
-
[32mESM[39m [1mdist/chunk-3UQM3NLM.mjs.map [22m[32m3.63 KB[39m
|
|
125
|
-
[32mESM[39m [1mdist/chunk-LNAIMEB2.mjs.map [22m[32m1.73 KB[39m
|
|
126
|
-
[32mESM[39m [1mdist/chunk-OELUUJZY.mjs.map [22m[32m957.00 B[39m
|
|
127
|
-
[32mESM[39m [1mdist/chunk-THWPPG6M.mjs.map [22m[32m2.24 KB[39m
|
|
128
|
-
[32mESM[39m [1mdist/hooks/use-autosuggestions.mjs.map [22m[32m51.00 B[39m
|
|
129
|
-
[32mESM[39m [1mdist/chunk-E2UEE45I.mjs.map [22m[32m5.78 KB[39m
|
|
130
|
-
[32mESM[39m [1mdist/chunk-UW3ITU2Y.mjs.map [22m[32m878.00 B[39m
|
|
131
133
|
[32mESM[39m [1mdist/chunk-KGKLUWKW.mjs.map [22m[32m2.45 KB[39m
|
|
132
|
-
[32mESM[39m [1mdist/
|
|
133
|
-
[32mESM[39m [1mdist/chunk-6SYD77G6.mjs.map [22m[32m3.78 KB[39m
|
|
134
|
+
[32mESM[39m [1mdist/chunk-LNAIMEB2.mjs.map [22m[32m1.73 KB[39m
|
|
134
135
|
[32mESM[39m [1mdist/chunk-KCHYD3EB.mjs.map [22m[32m6.12 KB[39m
|
|
136
|
+
[32mESM[39m [1mdist/chunk-OELUUJZY.mjs.map [22m[32m957.00 B[39m
|
|
137
|
+
[32mESM[39m [1mdist/chunk-4XYYSJ5C.mjs.map [22m[32m921.00 B[39m
|
|
138
|
+
[32mESM[39m [1mdist/chunk-IGQI27NI.mjs.map [22m[32m3.42 KB[39m
|
|
135
139
|
[32mESM[39m [1mdist/lib/debouncer.mjs.map [22m[32m51.00 B[39m
|
|
136
140
|
[32mESM[39m [1mdist/chunk-NKW5OU2S.mjs.map [22m[32m1.60 KB[39m
|
|
137
141
|
[32mESM[39m [1mdist/lib/editor-to-text.mjs.map [22m[32m2.83 KB[39m
|
|
138
|
-
[32mESM[39m [1mdist/
|
|
142
|
+
[32mESM[39m [1mdist/chunk-3UQM3NLM.mjs.map [22m[32m3.63 KB[39m
|
|
143
|
+
[32mESM[39m [1mdist/lib/get-text-around-cursor.mjs.map [22m[32m51.00 B[39m
|
|
139
144
|
[32mESM[39m [1mdist/types/standard-autosuggestions/minimal-chat-gpt-message.mjs.map [22m[32m51.00 B[39m
|
|
145
|
+
[32mESM[39m [1mdist/types/base/autosuggestions-bare-function.mjs.map [22m[32m51.00 B[39m
|
|
146
|
+
[32mESM[39m [1mdist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs.map [22m[32m51.00 B[39m
|
|
140
147
|
[32mESM[39m [1mdist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map [22m[32m51.00 B[39m
|
|
141
|
-
[32mESM[39m [1mdist/types/base/
|
|
148
|
+
[32mESM[39m [1mdist/types/base/base-copilot-textarea-props.mjs.map [22m[32m51.00 B[39m
|
|
142
149
|
[32mESM[39m [1mdist/types/base/autosuggestion-state.mjs.map [22m[32m51.00 B[39m
|
|
143
|
-
[32mESM[39m [1mdist/types/base/
|
|
144
|
-
[32mESM[39m [1mdist/types/
|
|
150
|
+
[32mESM[39m [1mdist/types/base/custom-editor.mjs.map [22m[32m51.00 B[39m
|
|
151
|
+
[32mESM[39m [1mdist/types/standard-autosuggestions/index.mjs.map [22m[32m51.00 B[39m
|
|
152
|
+
[32mESM[39m [1mdist/types/standard-autosuggestions/autosuggestions-config.mjs.map [22m[32m51.00 B[39m
|
|
145
153
|
[32mESM[39m [1mdist/types/base/editor-autocomplete-state.mjs.map [22m[32m51.00 B[39m
|
|
154
|
+
[32mESM[39m [1mdist/types/base/base-autosuggestions-config.mjs.map [22m[32m51.00 B[39m
|
|
146
155
|
[32mESM[39m [1mdist/types/base/index.mjs.map [22m[32m51.00 B[39m
|
|
147
|
-
[32mESM[39m [1mdist/
|
|
148
|
-
[32mESM[39m [1mdist/
|
|
149
|
-
[32mESM[39m ⚡️ Build success in
|
|
150
|
-
[32mDTS[39m ⚡️ Build success in
|
|
151
|
-
[32mDTS[39m [1mdist/index.d.ts [22m[
|
|
152
|
-
[32mDTS[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.d.ts [22m[
|
|
153
|
-
[32mDTS[39m [1mdist/components/copilot-textarea/copilot-textarea.d.ts [22m[
|
|
156
|
+
[32mESM[39m [1mdist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs.map [22m[32m51.00 B[39m
|
|
157
|
+
[32mESM[39m [1mdist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs.map [22m[32m51.00 B[39m
|
|
158
|
+
[32mESM[39m ⚡️ Build success in 3071ms
|
|
159
|
+
[32mDTS[39m ⚡️ Build success in 5297ms
|
|
160
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m912.00 B[39m
|
|
161
|
+
[32mDTS[39m [1mdist/components/base-copilot-textarea/base-copilot-textarea.d.ts [22m[32m669.00 B[39m
|
|
162
|
+
[32mDTS[39m [1mdist/components/copilot-textarea/copilot-textarea.d.ts [22m[32m803.00 B[39m
|
|
154
163
|
[32mDTS[39m [1mdist/types/base/base-autosuggestions-config.d.ts [22m[32m355.00 B[39m
|
|
155
164
|
[32mDTS[39m [1mdist/types/base/autosuggestions-bare-function.d.ts [22m[32m162.00 B[39m
|
|
156
165
|
[32mDTS[39m [1mdist/types/base/base-copilot-textarea-props.d.ts [22m[32m1.89 KB[39m
|
|
166
|
+
[32mDTS[39m [1mdist/types/html-copilot-textarea-element.d.ts [22m[32m165.00 B[39m
|
|
157
167
|
[32mDTS[39m [1mdist/types/standard-autosuggestions/autosuggestions-config.d.ts [22m[32m884.00 B[39m
|
|
158
168
|
[32mDTS[39m [1mdist/types/standard-autosuggestions/minimal-chat-gpt-message.d.ts [22m[32m129.00 B[39m
|
|
159
|
-
[32mDTS[39m [1mdist/components/index.d.ts [22m[
|
|
169
|
+
[32mDTS[39m [1mdist/components/index.d.ts [22m[32m561.00 B[39m
|
|
160
170
|
[32mDTS[39m [1mdist/context/index.d.ts [22m[32m1.00 B[39m
|
|
161
171
|
[32mDTS[39m [1mdist/hooks/index.d.ts [22m[32m1.00 B[39m
|
|
162
|
-
[32mDTS[39m [1mdist/hooks/use-autosuggestions.d.ts [22m[32m879.00 B[39m
|
|
163
|
-
[32mDTS[39m [1mdist/types/base/autosuggestion-state.d.ts [22m[32m143.00 B[39m
|
|
164
|
-
[32mDTS[39m [1mdist/types/base/editor-autocomplete-state.d.ts [22m[32m342.00 B[39m
|
|
165
|
-
[32mDTS[39m [1mdist/hooks/use-copilot-textarea-editor.d.ts [22m[32m223.00 B[39m
|
|
166
|
-
[32mDTS[39m [1mdist/types/base/custom-editor.d.ts [22m[32m801.00 B[39m
|
|
167
172
|
[32mDTS[39m [1mdist/lib/debouncer.d.ts [22m[32m372.00 B[39m
|
|
168
173
|
[32mDTS[39m [1mdist/lib/editor-to-text.d.ts [22m[32m243.00 B[39m
|
|
169
174
|
[32mDTS[39m [1mdist/lib/get-text-around-cursor.d.ts [22m[32m453.00 B[39m
|
|
175
|
+
[32mDTS[39m [1mdist/types/base/editor-autocomplete-state.d.ts [22m[32m342.00 B[39m
|
|
170
176
|
[32mDTS[39m [1mdist/lib/utils.test.d.ts [22m[32m1.00 B[39m
|
|
171
177
|
[32mDTS[39m [1mdist/lib/utils.d.ts [22m[32m638.00 B[39m
|
|
172
|
-
[32mDTS[39m [1mdist/types/index.d.ts [22m[
|
|
178
|
+
[32mDTS[39m [1mdist/types/index.d.ts [22m[32m670.00 B[39m
|
|
173
179
|
[32mDTS[39m [1mdist/components/base-copilot-textarea/render-element.d.ts [22m[32m292.00 B[39m
|
|
174
180
|
[32mDTS[39m [1mdist/components/base-copilot-textarea/render-placeholder.d.ts [22m[32m321.00 B[39m
|
|
175
181
|
[32mDTS[39m [1mdist/components/base-copilot-textarea/use-add-branding-css.d.ts [22m[32m158.00 B[39m
|
|
182
|
+
[32mDTS[39m [1mdist/hooks/base-copilot-textarea-implementation/use-autosuggestions.d.ts [22m[32m888.00 B[39m
|
|
183
|
+
[32mDTS[39m [1mdist/types/base/autosuggestion-state.d.ts [22m[32m143.00 B[39m
|
|
184
|
+
[32mDTS[39m [1mdist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.d.ts [22m[32m226.00 B[39m
|
|
185
|
+
[32mDTS[39m [1mdist/types/base/custom-editor.d.ts [22m[32m801.00 B[39m
|
|
186
|
+
[32mDTS[39m [1mdist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.d.ts [22m[32m308.00 B[39m
|
|
176
187
|
[32mDTS[39m [1mdist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts [22m[32m1.79 KB[39m
|
|
177
188
|
[32mDTS[39m [1mdist/lib/slatejs-edits/add-autocompletions.d.ts [22m[32m302.00 B[39m
|
|
178
189
|
[32mDTS[39m [1mdist/lib/slatejs-edits/clear-autocompletions.d.ts [22m[32m250.00 B[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# ui
|
|
2
2
|
|
|
3
|
+
## 0.12.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- ec7484f: - CopilotTextarea supports passing in ref compatible with <textarea>'s HTMLTextAreaElement ref (for focus, blur, styling, etc.)
|
|
8
|
+
- Minor bug fix: CopilotTextarea branding remains correclty positioned as textarea scrolls
|
|
9
|
+
|
|
3
10
|
## 0.11.0
|
|
4
11
|
|
|
5
12
|
### Minor Changes
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { replaceEditorText } from './chunk-TSF4AJIK.mjs';
|
|
2
|
+
import { getFullEditorTextWithNewlines } from './chunk-3UQM3NLM.mjs';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { ReactEditor } from 'slate-react';
|
|
5
|
+
|
|
6
|
+
function usePopulateCopilotTextareaRef(editor, ref) {
|
|
7
|
+
React.useImperativeHandle(
|
|
8
|
+
ref,
|
|
9
|
+
() => {
|
|
10
|
+
class Combined {
|
|
11
|
+
constructor(customMethods2, editorHtmlElement2) {
|
|
12
|
+
this.customMethods = customMethods2;
|
|
13
|
+
this.editorHtmlElement = editorHtmlElement2;
|
|
14
|
+
}
|
|
15
|
+
get(target, propKey) {
|
|
16
|
+
if (this.isKeyOfCustomMethods(propKey)) {
|
|
17
|
+
const value = this.customMethods[propKey];
|
|
18
|
+
if (typeof value === "function") {
|
|
19
|
+
return value.bind(this.customMethods);
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
} else if (this.isKeyOfHTMLElement(propKey)) {
|
|
23
|
+
const value = this.editorHtmlElement[propKey];
|
|
24
|
+
if (typeof value === "function") {
|
|
25
|
+
return value.bind(this.editorHtmlElement);
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
set(target, propKey, value) {
|
|
31
|
+
if (this.isKeyOfCustomMethods(propKey)) {
|
|
32
|
+
this.customMethods[propKey] = value;
|
|
33
|
+
} else if (this.isKeyOfHTMLElement(propKey)) {
|
|
34
|
+
this.editorHtmlElement[propKey] = value;
|
|
35
|
+
} else {
|
|
36
|
+
target[propKey] = value;
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
isKeyOfCustomMethods(key) {
|
|
41
|
+
return key in this.customMethods;
|
|
42
|
+
}
|
|
43
|
+
isKeyOfHTMLElement(key) {
|
|
44
|
+
return key in this.editorHtmlElement;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const handler = {
|
|
48
|
+
get(target, propKey) {
|
|
49
|
+
return target.get(target, propKey);
|
|
50
|
+
},
|
|
51
|
+
set(target, propKey, value) {
|
|
52
|
+
return target.set(target, propKey, value);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
class CustomMethods {
|
|
56
|
+
constructor(editor2) {
|
|
57
|
+
this.editor = editor2;
|
|
58
|
+
}
|
|
59
|
+
focus() {
|
|
60
|
+
ReactEditor.focus(this.editor);
|
|
61
|
+
}
|
|
62
|
+
blur() {
|
|
63
|
+
ReactEditor.blur(this.editor);
|
|
64
|
+
}
|
|
65
|
+
get value() {
|
|
66
|
+
return getFullEditorTextWithNewlines(this.editor);
|
|
67
|
+
}
|
|
68
|
+
set value(value) {
|
|
69
|
+
replaceEditorText(this.editor, value);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const editorHtmlElement = ReactEditor.toDOMNode(editor, editor);
|
|
73
|
+
const customMethods = new CustomMethods(editor);
|
|
74
|
+
const combined = new Combined(customMethods, editorHtmlElement);
|
|
75
|
+
return new Proxy(combined, handler);
|
|
76
|
+
},
|
|
77
|
+
[editor]
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export { usePopulateCopilotTextareaRef };
|
|
82
|
+
//# sourceMappingURL=out.js.map
|
|
83
|
+
//# sourceMappingURL=chunk-AOEXKPIX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.ts"],"names":["customMethods","editorHtmlElement","editor"],"mappings":";;;;;;;;AAAA,OAAO,WAAW;AAElB,SAAS,mBAAmB;AAMrB,SAAS,8BACd,QACA,KACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA,MAAM;AACJ,YAAM,SAAS;AAAA,QACb,YACUA,gBACAC,oBACR;AAFQ,+BAAAD;AACA,mCAAAC;AAAA,QACP;AAAA,QAIH,IAAI,QAAa,SAAsB;AACrC,cAAI,KAAK,qBAAqB,OAAO,GAAG;AACtC,kBAAM,QAAQ,KAAK,cAAc;AACjC,gBAAI,OAAO,UAAU,YAAY;AAC/B,qBAAO,MAAM,KAAK,KAAK,aAAa;AAAA,YACtC;AACA,mBAAO;AAAA,UACT,WAAW,KAAK,mBAAmB,OAAO,GAAG;AAC3C,kBAAM,QAAQ,KAAK,kBAAkB;AACrC,gBAAI,OAAO,UAAU,YAAY;AAC/B,qBAAO,MAAM,KAAK,KAAK,iBAAiB;AAAA,YAC1C;AACA,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,QAEA,IAAI,QAAa,SAAiB,OAAqB;AACrD,cAAI,KAAK,qBAAqB,OAAO,GAAG;AACtC,YAAC,KAAK,cAAsB,WAAW;AAAA,UACzC,WAAW,KAAK,mBAAmB,OAAO,GAAG;AAC3C,YAAC,KAAK,kBAA0B,WAAW;AAAA,UAC7C,OAAO;AAEL,mBAAO,WAAW;AAAA,UACpB;AACA,iBAAO;AAAA,QACT;AAAA,QAEQ,qBAAqB,KAAyC;AACpE,iBAAO,OAAO,KAAK;AAAA,QACrB;AAAA,QAEQ,mBAAmB,KAAuC;AAChE,iBAAO,OAAO,KAAK;AAAA,QACrB;AAAA,MACF;AAEA,YAAM,UAAU;AAAA,QACd,IAAI,QAAa,SAAkD;AACjE,iBAAO,OAAO,IAAI,QAAQ,OAAO;AAAA,QACnC;AAAA,QACA,IACE,QACA,SACA,OACA;AACA,iBAAO,OAAO,IAAI,QAAQ,SAAS,KAAK;AAAA,QAC1C;AAAA,MACF;AAEA,YAAM,cAAc;AAAA,QAClB,YAAoBC,SAAsB;AAAtB,wBAAAA;AAAA,QAAuB;AAAA,QAE3C,QAAQ;AACN,sBAAY,MAAM,KAAK,MAAM;AAAA,QAC/B;AAAA,QAEA,OAAO;AACL,sBAAY,KAAK,KAAK,MAAM;AAAA,QAC9B;AAAA,QAEA,IAAI,QAAQ;AACV,iBAAO,8BAA8B,KAAK,MAAM;AAAA,QAClD;AAAA,QACA,IAAI,MAAM,OAAe;AACvB,4BAAkB,KAAK,QAAQ,KAAK;AAAA,QACtC;AAAA,MACF;AAEA,YAAM,oBAAoB,YAAY,UAAU,QAAQ,MAAM;AAC9D,YAAM,gBAAgB,IAAI,cAAc,MAAM;AAE9C,YAAM,WAAW,IAAI,SAAS,eAAe,iBAAiB;AAC9D,aAAO,IAAI,MAAM,UAAU,OAAO;AAAA,IACpC;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AACF","sourcesContent":["import React from \"react\";\nimport { Editor } from \"slate\";\nimport { ReactEditor } from \"slate-react\";\nimport { getFullEditorTextWithNewlines } from \"../../lib/get-text-around-cursor\";\nimport { replaceEditorText } from \"../../lib/slatejs-edits/replace-text\";\nimport { HTMLCopilotTextAreaElement } from \"../../types\";\nimport { CustomEditor } from \"../../types/base/custom-editor\";\n\nexport function usePopulateCopilotTextareaRef(\n editor: Editor,\n ref: React.Ref<HTMLCopilotTextAreaElement>\n) {\n React.useImperativeHandle(\n ref,\n () => {\n class Combined {\n constructor(\n private customMethods: CustomMethods,\n private editorHtmlElement: HTMLElement\n ) {}\n\n [key: string]: any;\n\n get(target: any, propKey: string): any {\n if (this.isKeyOfCustomMethods(propKey)) {\n const value = this.customMethods[propKey];\n if (typeof value === \"function\") {\n return value.bind(this.customMethods);\n }\n return value;\n } else if (this.isKeyOfHTMLElement(propKey)) {\n const value = this.editorHtmlElement[propKey];\n if (typeof value === \"function\") {\n return value.bind(this.editorHtmlElement);\n }\n return value;\n }\n }\n\n set(target: any, propKey: string, value: any): boolean {\n if (this.isKeyOfCustomMethods(propKey)) {\n (this.customMethods as any)[propKey] = value;\n } else if (this.isKeyOfHTMLElement(propKey)) {\n (this.editorHtmlElement as any)[propKey] = value;\n } else {\n // Default behavior (optional)\n target[propKey] = value;\n }\n return true;\n }\n\n private isKeyOfCustomMethods(key: string): key is keyof CustomMethods {\n return key in this.customMethods;\n }\n\n private isKeyOfHTMLElement(key: string): key is keyof HTMLElement {\n return key in this.editorHtmlElement;\n }\n }\n\n const handler = {\n get(target: any, propKey: keyof CustomMethods | keyof HTMLElement) {\n return target.get(target, propKey);\n },\n set(\n target: any,\n propKey: keyof CustomMethods | keyof HTMLElement,\n value: any\n ) {\n return target.set(target, propKey, value);\n },\n };\n\n class CustomMethods {\n constructor(private editor: CustomEditor) {}\n\n focus() {\n ReactEditor.focus(this.editor);\n }\n\n blur() {\n ReactEditor.blur(this.editor);\n }\n\n get value() {\n return getFullEditorTextWithNewlines(this.editor);\n }\n set value(value: string) {\n replaceEditorText(this.editor, value);\n }\n }\n\n const editorHtmlElement = ReactEditor.toDOMNode(editor, editor);\n const customMethods = new CustomMethods(editor);\n\n const combined = new Combined(customMethods, editorHtmlElement);\n return new Proxy(combined, handler);\n },\n [editor]\n );\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { withPartialHistory, defaultShouldSave } from './chunk-KCHYD3EB.mjs';
|
|
2
|
+
import { useMemo } from 'react';
|
|
2
3
|
import { createEditor, Element } from 'slate';
|
|
3
4
|
import { withReact } from 'slate-react';
|
|
4
|
-
import { useMemo } from 'react';
|
|
5
5
|
|
|
6
6
|
var shouldSave = (op, prev) => {
|
|
7
7
|
const excludedNodeType = "suggestion";
|
|
@@ -62,4 +62,4 @@ function useCopilotTextareaEditor() {
|
|
|
62
62
|
|
|
63
63
|
export { useCopilotTextareaEditor };
|
|
64
64
|
//# sourceMappingURL=out.js.map
|
|
65
|
-
//# sourceMappingURL=chunk-
|
|
65
|
+
//# sourceMappingURL=chunk-CSGFJU3L.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.tsx"],"names":["editor"],"mappings":";;;;;;AAAA,SAAS,eAAe;AACxB,SAAS,cAAc,eAAe;AACtC,SAAS,iBAAiB;AAQ1B,IAAM,aAAkC,CAAC,IAAI,SAAS;AACpD,QAAM,mBAAmB;AAEzB,MACE,GAAG,SAAS,iBACZ,QAAQ,UAAU,GAAG,IAAI,KACzB,GAAG,KAAK,SAAS,kBACjB;AACA,WAAO;AAAA,EACT;AAEA,MACE,GAAG,SAAS,iBACZ,QAAQ,UAAU,GAAG,IAAI,KACzB,GAAG,KAAK,SAAS,kBACjB;AACA,WAAO;AAAA,EACT;AAEA,MACE,GAAG,SAAS,cACZ,UAAU,GAAG,iBACb,GAAG,cAAc,SAAS,kBAC1B;AACA,WAAO;AAAA,EACT;AAEA,MACE,GAAG,QAAQ,cACX,UAAU,GAAG,cACb,GAAG,WAAW,SAAS,kBACvB;AACA,WAAO;AAAA,EACT;AAEA,MACE,GAAG,SAAS,gBACZ,UAAU,GAAG,cACb,GAAG,WAAW,SAAS,kBACvB;AACA,WAAO;AAAA,EACT;AAEA,MACE,GAAG,SAAS,gBACZ,UAAU,GAAG,cACb,GAAG,WAAW,SAAS,kBACvB;AACA,WAAO;AAAA,EACT;AAGA,SAAO,kBAAkB,IAAI,IAAI;AACnC;AAEO,SAAS,2BAAyC;AACvD,QAAM,SAAS,QAAQ,MAAM;AAC3B,UAAMA,UAAS,mBAAmB,UAAU,aAAa,CAAC,GAAG,UAAU;AAEvE,UAAM,EAAE,OAAO,IAAIA;AACnB,IAAAA,QAAO,SAAS,CAAC,YAAY;AAC3B,cAAQ,QAAQ,MAAM;AAAA,QACpB,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO,OAAO,OAAO;AAAA,MACzB;AAAA,IACF;AAEA,UAAM,EAAE,aAAa,IAAIA;AACzB,IAAAA,QAAO,eAAe,CAAC,YAAY;AACjC,cAAQ,QAAQ,MAAM;AAAA,QACpB,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO,aAAa,OAAO;AAAA,MAC/B;AAAA,IACF;AAEA,UAAM,EAAE,SAAS,IAAIA;AACrB,IAAAA,QAAO,WAAW,CAAC,YAAY;AAC7B,cAAQ,QAAQ,MAAM;AAAA,QACpB,KAAK;AACH,iBAAO,QAAQ;AAAA,QACjB;AACE,iBAAO,SAAS,OAAO;AAAA,MAC3B;AAAA,IACF;AAEA,WAAOA;AAAA,EACT,GAAG,CAAC,CAAC;AAEL,SAAO;AACT","sourcesContent":["import { useMemo } from \"react\";\nimport { createEditor, Element } from \"slate\";\nimport { withReact } from \"slate-react\";\nimport {\n defaultShouldSave,\n ShouldSaveToHistory,\n withPartialHistory,\n} from \"../../lib/slatejs-edits/with-partial-history\";\nimport { CustomEditor } from \"../../types/base/custom-editor\";\n\nconst shouldSave: ShouldSaveToHistory = (op, prev) => {\n const excludedNodeType = \"suggestion\";\n // Check if the operation involves the suggestion inline node type\n if (\n op.type === \"insert_node\" &&\n Element.isElement(op.node) &&\n op.node.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type === \"remove_node\" &&\n Element.isElement(op.node) &&\n op.node.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type === \"set_node\" &&\n \"type\" in op.newProperties &&\n op.newProperties.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type == \"set_node\" &&\n \"type\" in op.properties &&\n op.properties.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type === \"merge_node\" &&\n \"type\" in op.properties &&\n op.properties.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type === \"split_node\" &&\n \"type\" in op.properties &&\n op.properties.type === excludedNodeType\n ) {\n return false;\n }\n\n // Otherwise, save the operation to history\n return defaultShouldSave(op, prev);\n};\n\nexport function useCopilotTextareaEditor(): CustomEditor {\n const editor = useMemo(() => {\n const editor = withPartialHistory(withReact(createEditor()), shouldSave);\n\n const { isVoid } = editor;\n editor.isVoid = (element) => {\n switch (element.type) {\n case \"suggestion\":\n return true;\n default:\n return isVoid(element);\n }\n };\n\n const { markableVoid } = editor;\n editor.markableVoid = (element) => {\n switch (element.type) {\n case \"suggestion\":\n return true;\n default:\n return markableVoid(element);\n }\n };\n\n const { isInline } = editor;\n editor.isInline = (element) => {\n switch (element.type) {\n case \"suggestion\":\n return element.inline;\n default:\n return isInline(element);\n }\n };\n\n return editor;\n }, []);\n\n return editor;\n}\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useMakeStandardAutosuggestionFunction } from './chunk-A3SFEHWZ.mjs';
|
|
2
|
+
import { defaultAutosuggestionsConfig } from './chunk-EHQ5TN4R.mjs';
|
|
3
|
+
import { BaseCopilotTextarea } from './chunk-M6QFKIBE.mjs';
|
|
4
|
+
import { __spreadValues, __spreadProps } from './chunk-MRXNTQOX.mjs';
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var CopilotTextarea = React.forwardRef(
|
|
9
|
+
(props, ref) => {
|
|
10
|
+
const autosuggestionsConfig = __spreadValues(__spreadValues({}, defaultAutosuggestionsConfig), props.autosuggestionsConfig);
|
|
11
|
+
const autosuggestionsFunction = useMakeStandardAutosuggestionFunction(
|
|
12
|
+
autosuggestionsConfig.purposePrompt,
|
|
13
|
+
autosuggestionsConfig.apiEndpoint,
|
|
14
|
+
autosuggestionsConfig.makeSystemPrompt,
|
|
15
|
+
autosuggestionsConfig.fewShotMessages,
|
|
16
|
+
autosuggestionsConfig.externalContextCategories,
|
|
17
|
+
autosuggestionsConfig.forwardedParams
|
|
18
|
+
);
|
|
19
|
+
return /* @__PURE__ */ jsx(Fragment, {
|
|
20
|
+
children: /* @__PURE__ */ jsx(BaseCopilotTextarea, __spreadProps(__spreadValues({
|
|
21
|
+
ref
|
|
22
|
+
}, props), {
|
|
23
|
+
autosuggestionsConfig,
|
|
24
|
+
autosuggestionsFunction
|
|
25
|
+
}))
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
export { CopilotTextarea };
|
|
31
|
+
//# sourceMappingURL=out.js.map
|
|
32
|
+
//# sourceMappingURL=chunk-DCQ27XRF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/copilot-textarea/copilot-textarea.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,OAAO,WAAW;AAoCZ,mBACE,WADF;AApBC,IAAM,kBAAkB,MAAM;AAAA,EACnC,CACE,OACA,QACgB;AAChB,UAAM,wBAA+C,kCAChD,+BACA,MAAM;AAGX,UAAM,0BAA0B;AAAA,MAC9B,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,IACxB;AAEA,WACE;AAAA,MACE,8BAAC;AAAA,QACC;AAAA,SACI,QAFL;AAAA,QAGC;AAAA,QACA;AAAA,QACF;AAAA,KACF;AAAA,EAEJ;AACF","sourcesContent":["// This example is for an Editor with `ReactEditor` and `HistoryEditor`\nimport React from \"react\";\nimport { useMakeStandardAutosuggestionFunction } from \"../../hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function\";\nimport { HTMLCopilotTextAreaElement } from \"../../types\";\nimport { BaseCopilotTextareaProps } from \"../../types/base/base-copilot-textarea-props\";\nimport {\n AutosuggestionsConfig,\n defaultAutosuggestionsConfig,\n} from \"../../types/standard-autosuggestions\";\nimport { BaseCopilotTextarea } from \"../base-copilot-textarea/base-copilot-textarea\";\n\nexport interface CopilotTextareaProps extends BaseCopilotTextareaProps {\n autosuggestionsConfig: Partial<AutosuggestionsConfig> & {\n purposePrompt: string;\n };\n}\n\nexport const CopilotTextarea = React.forwardRef(\n (\n props: CopilotTextareaProps,\n ref: React.Ref<HTMLCopilotTextAreaElement>\n ): JSX.Element => {\n const autosuggestionsConfig: AutosuggestionsConfig = {\n ...defaultAutosuggestionsConfig,\n ...props.autosuggestionsConfig,\n };\n\n const autosuggestionsFunction = useMakeStandardAutosuggestionFunction(\n autosuggestionsConfig.purposePrompt,\n autosuggestionsConfig.apiEndpoint,\n autosuggestionsConfig.makeSystemPrompt,\n autosuggestionsConfig.fewShotMessages,\n autosuggestionsConfig.externalContextCategories,\n autosuggestionsConfig.forwardedParams\n );\n\n return (\n <>\n <BaseCopilotTextarea\n ref={ref}\n {...props}\n autosuggestionsConfig={autosuggestionsConfig}\n autosuggestionsFunction={autosuggestionsFunction}\n />\n </>\n );\n }\n);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/base-copilot-textarea-implementation/use-autosuggestions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,aAAa,SAAS,gBAAgB;AAgBxC,SAAS,mBACd,cACA,yBACA,wBACA,8BACA,kBACA,UAC0B;AAC1B,QAAM,CAAC,2BAA2B,4BAA4B,IAC5D,SAAyC,IAAI;AAE/C,QAAM,CAAC,+BAA+B,gCAAgC,IACpE,SAAqC,IAAI;AAE3C,QAAM,8BAGe;AAAA,IACnB,CACE,yBACA,gBACG;AAEH,UAAI,UAAU;AACZ;AAAA,MACF;AAEA,UACE,oBACA,wBAAwB,qBAAqB,MAC7C,wBAAwB,oBAAoB,IAC5C;AACA;AAAA,MACF;AAGA,YAAM,aAAa,MAAM;AAAA,QACvB,wBAAwB;AAAA,QACxB,wBAAwB;AAAA,QACxB;AAAA,MACF;AAGA,UAAI,CAAC,cAAc,YAAY,SAAS;AACtC,cAAM,IAAI,aAAa,WAAW,YAAY;AAAA,MAChD;AAEA,uCAAiC;AAAA,QAC/B,MAAM;AAAA,QACN,OAAO,wBAAwB;AAAA,MACjC,CAAC;AAAA,IACH;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,oBAAoB;AAAA,IACxB,MACE,IAAI;AAAA,MACF;AAAA,IACF;AAAA,IACF,CAAC,YAAY;AAAA,EACf;AAEA,QAAM,WAAW;AAAA,IACf,CAAC,mBAAmD;AAClD,YAAM,wBAAwB,CAAC;AAAA,QAC7B;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,mCAA6B,cAAc;AAG3C,UAAI,CAAC,uBAAuB;AAC1B;AAAA,MACF;AAGA,uCAAiC,IAAI;AAGrC,UAAI,gBAAgB;AAClB,0BAAkB,SAAS,6BAA6B,cAAc;AAAA,MACxE,OAAO;AACL,0BAAkB,OAAO;AAAA,MAC3B;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,iBAAiB;AAAA,IACrB,CAAC,UAA+C;AAC9C,UAAI,+BAA+B;AACjC,YAAI,MAAM,QAAQ,yBAAyB;AACzC,gBAAM,eAAe;AACrB,uCAA6B,6BAA6B;AAC1D,2CAAiC,IAAI;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,EACpB;AACF","sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { Debouncer } from \"../../lib/debouncer\";\nimport { nullableCompatibleEqualityCheck } from \"../../lib/utils\";\nimport { AutosuggestionsBareFunction } from \"../../types/base\";\nimport { AutosuggestionState } from \"../../types/base/autosuggestion-state\";\nimport {\n EditorAutocompleteState,\n areEqual_autocompleteState,\n} from \"../../types/base/editor-autocomplete-state\";\n\nexport interface UseAutosuggestionsResult {\n currentAutocompleteSuggestion: AutosuggestionState | null;\n onChangeHandler: (newEditorState: EditorAutocompleteState | null) => void;\n onKeyDownHandler: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n}\n\nexport function useAutosuggestions(\n debounceTime: number,\n acceptAutosuggestionKey: string,\n autosuggestionFunction: AutosuggestionsBareFunction,\n insertAutocompleteSuggestion: (suggestion: AutosuggestionState) => void,\n disableWhenEmpty: boolean,\n disabled: boolean\n): UseAutosuggestionsResult {\n const [previousAutocompleteState, setPreviousAutocompleteState] =\n useState<EditorAutocompleteState | null>(null);\n\n const [currentAutocompleteSuggestion, setCurrentAutocompleteSuggestion] =\n useState<AutosuggestionState | null>(null);\n\n const awaitForAndAppendSuggestion: (\n editorAutocompleteState: EditorAutocompleteState,\n abortSignal: AbortSignal\n ) => Promise<void> = useCallback(\n async (\n editorAutocompleteState: EditorAutocompleteState,\n abortSignal: AbortSignal\n ) => {\n // early return if disabled\n if (disabled) {\n return;\n }\n\n if (\n disableWhenEmpty &&\n editorAutocompleteState.textBeforeCursor === \"\" &&\n editorAutocompleteState.textAfterCursor === \"\"\n ) {\n return;\n }\n\n // fetch the suggestion\n const suggestion = await autosuggestionFunction(\n editorAutocompleteState.textBeforeCursor,\n editorAutocompleteState.textAfterCursor,\n abortSignal\n );\n\n // We'll assume for now that the autocomplete function might or might not respect the abort signal.\n if (!suggestion || abortSignal.aborted) {\n throw new DOMException(\"Aborted\", \"AbortError\");\n }\n\n setCurrentAutocompleteSuggestion({\n text: suggestion,\n point: editorAutocompleteState.cursorPoint,\n });\n },\n [\n autosuggestionFunction,\n setCurrentAutocompleteSuggestion,\n disableWhenEmpty,\n disabled,\n ]\n );\n\n const debouncedFunction = useMemo(\n () =>\n new Debouncer<[editorAutocompleteState: EditorAutocompleteState]>(\n debounceTime\n ),\n [debounceTime]\n );\n\n const onChange = useCallback(\n (newEditorState: EditorAutocompleteState | null) => {\n const editorStateHasChanged = !nullableCompatibleEqualityCheck(\n areEqual_autocompleteState,\n previousAutocompleteState,\n newEditorState\n );\n setPreviousAutocompleteState(newEditorState);\n\n // if no change, do nothing\n if (!editorStateHasChanged) {\n return;\n }\n\n // if change, then first null out the current suggestion\n setCurrentAutocompleteSuggestion(null);\n\n // then try to get a new suggestion, debouncing to avoid too many requests while typing\n if (newEditorState) {\n debouncedFunction.debounce(awaitForAndAppendSuggestion, newEditorState);\n } else {\n debouncedFunction.cancel();\n }\n },\n [\n previousAutocompleteState,\n setPreviousAutocompleteState,\n debouncedFunction,\n awaitForAndAppendSuggestion,\n setCurrentAutocompleteSuggestion,\n ]\n );\n\n const keyDownHandler = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (currentAutocompleteSuggestion) {\n if (event.key === acceptAutosuggestionKey) {\n event.preventDefault();\n insertAutocompleteSuggestion(currentAutocompleteSuggestion);\n setCurrentAutocompleteSuggestion(null);\n }\n }\n },\n [\n currentAutocompleteSuggestion,\n setCurrentAutocompleteSuggestion,\n insertAutocompleteSuggestion,\n acceptAutosuggestionKey,\n ]\n );\n\n return {\n currentAutocompleteSuggestion,\n onChangeHandler: onChange,\n onKeyDownHandler: keyDownHandler,\n };\n}\n"]}
|
|
@@ -2,6 +2,7 @@ import { useEffect } from 'react';
|
|
|
2
2
|
|
|
3
3
|
// src/components/base-copilot-textarea/use-add-branding-css.tsx
|
|
4
4
|
function useAddBrandingCss(suggestionStyleAugmented, disableBranding) {
|
|
5
|
+
const cssSelector = ".copilot-textarea.with-branding";
|
|
5
6
|
useEffect(() => {
|
|
6
7
|
if (disableBranding) {
|
|
7
8
|
return;
|
|
@@ -23,18 +24,35 @@ function useAddBrandingCss(suggestionStyleAugmented, disableBranding) {
|
|
|
23
24
|
dynamicStyles += `border: 0;`;
|
|
24
25
|
dynamicStyles += `line-height: 1;`;
|
|
25
26
|
styleEl.innerHTML = `
|
|
26
|
-
|
|
27
|
+
${cssSelector}::after {
|
|
27
28
|
${dynamicStyles}
|
|
28
29
|
}
|
|
29
30
|
`;
|
|
30
31
|
document.head.appendChild(styleEl);
|
|
32
|
+
const textarea = document.querySelector(cssSelector);
|
|
33
|
+
const handleScroll = () => {
|
|
34
|
+
const styleEl2 = document.getElementById("dynamic-styles");
|
|
35
|
+
if (styleEl2 && textarea) {
|
|
36
|
+
const offsetFromBottom = -textarea.scrollTop + 6;
|
|
37
|
+
const offsetFromRight = -textarea.scrollLeft + 6;
|
|
38
|
+
styleEl2.innerHTML = `
|
|
39
|
+
${cssSelector}::after {
|
|
40
|
+
${dynamicStyles}
|
|
41
|
+
bottom: ${offsetFromBottom}px;
|
|
42
|
+
right: ${offsetFromRight}px;
|
|
43
|
+
}
|
|
44
|
+
`;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
textarea == null ? void 0 : textarea.addEventListener("scroll", handleScroll);
|
|
31
48
|
return () => {
|
|
32
49
|
var _a;
|
|
33
50
|
(_a = document.getElementById("dynamic-styles")) == null ? void 0 : _a.remove();
|
|
51
|
+
textarea == null ? void 0 : textarea.removeEventListener("scroll", handleScroll);
|
|
34
52
|
};
|
|
35
53
|
}, [disableBranding, suggestionStyleAugmented]);
|
|
36
54
|
}
|
|
37
55
|
|
|
38
56
|
export { useAddBrandingCss };
|
|
39
57
|
//# sourceMappingURL=out.js.map
|
|
40
|
-
//# sourceMappingURL=chunk-
|
|
58
|
+
//# sourceMappingURL=chunk-IGQI27NI.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/base-copilot-textarea/use-add-branding-css.tsx"],"names":["styleEl"],"mappings":";AAAA,SAAS,iBAAiB;AAEnB,SAAS,kBACd,0BACA,iBACA;AACA,QAAM,cAAc;AACpB,YAAU,MAAM;AACd,QAAI,iBAAiB;AACnB;AAAA,IACF;AAIA,UAAM,UAAU,SAAS,cAAc,OAAO;AAC9C,YAAQ,KAAK;AAGb,QAAI,gBAAgB,OAAO,QAAQ,wBAAwB,EACxD,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrB,YAAM,eAAe,IAClB,QAAQ,gCAAgC,OAAO,EAC/C,YAAY;AACf,aAAO,GAAG,iBAAiB;AAAA,IAC7B,CAAC,EACA,KAAK,GAAG;AAGX,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AACjB,qBAAiB;AAGjB,YAAQ,YAAY;AAAA,QAChB;AAAA,UACE;AAAA;AAAA;AAIN,aAAS,KAAK,YAAY,OAAO;AAIjC,UAAM,WAAW,SAAS,cAAc,WAAW;AACnD,UAAM,eAAe,MAAM;AACzB,YAAMA,WAAU,SAAS,eAAe,gBAAgB;AACxD,UAAIA,YAAW,UAAU;AACvB,cAAM,mBAAmB,CAAC,SAAS,YAAY;AAC/C,cAAM,kBAAkB,CAAC,SAAS,aAAa;AAC/C,QAAAA,SAAQ,YAAY;AAAA,YAChB;AAAA,cACE;AAAA,sBACQ;AAAA,qBACD;AAAA;AAAA;AAAA,MAGf;AAAA,IACF;AAEA,yCAAU,iBAAiB,UAAU;AAGrC,WAAO,MAAM;AArEjB;AAsEM,qBAAS,eAAe,gBAAgB,MAAxC,mBAA2C;AAC3C,2CAAU,oBAAoB,UAAU;AAAA,IAC1C;AAAA,EACF,GAAG,CAAC,iBAAiB,wBAAwB,CAAC;AAChD","sourcesContent":["import { useEffect } from \"react\";\n\nexport function useAddBrandingCss(\n suggestionStyleAugmented: React.CSSProperties,\n disableBranding: boolean | undefined\n) {\n const cssSelector = \".copilot-textarea.with-branding\";\n useEffect(() => {\n if (disableBranding) {\n return;\n }\n\n // ---\n // 1: Add the CSS to the DOM\n const styleEl = document.createElement(\"style\");\n styleEl.id = \"dynamic-styles\";\n\n // Build the CSS string dynamically\n let dynamicStyles = Object.entries(suggestionStyleAugmented)\n .map(([key, value]) => {\n const kebabCaseKey = key\n .replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, \"$1-$2\")\n .toLowerCase();\n return `${kebabCaseKey}: ${value};`;\n })\n .join(\" \");\n\n // Append overrides for italics and font-size\n dynamicStyles += `font-style: normal; font-size: x-small;`;\n dynamicStyles += `content: \"CopilotKit\";`;\n dynamicStyles += `bottom: 6px;`;\n dynamicStyles += `right: 6px;`;\n dynamicStyles += `pointer-events: none;`;\n dynamicStyles += `font-weight: 200;`;\n dynamicStyles += `padding: 0;`;\n dynamicStyles += `margin: 0;`;\n dynamicStyles += `border: 0;`;\n dynamicStyles += `line-height: 1;`;\n\n // Append it to the ::after class\n styleEl.innerHTML = `\n ${cssSelector}::after {\n ${dynamicStyles}\n }\n `;\n\n document.head.appendChild(styleEl);\n\n // ---\n // 2: Add the scroll listener (to keep the branding in the bottom right as the textarea scrolls)\n const textarea = document.querySelector(cssSelector);\n const handleScroll = () => {\n const styleEl = document.getElementById(\"dynamic-styles\");\n if (styleEl && textarea) {\n const offsetFromBottom = -textarea.scrollTop + 6;\n const offsetFromRight = -textarea.scrollLeft + 6;\n styleEl.innerHTML = `\n ${cssSelector}::after {\n ${dynamicStyles}\n bottom: ${offsetFromBottom}px;\n right: ${offsetFromRight}px;\n }\n `;\n }\n };\n\n textarea?.addEventListener(\"scroll\", handleScroll);\n\n // Cleanup\n return () => {\n document.getElementById(\"dynamic-styles\")?.remove();\n textarea?.removeEventListener(\"scroll\", handleScroll);\n };\n }, [disableBranding, suggestionStyleAugmented]);\n}\n"]}
|