@copilotkit/react-textarea 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/.turbo/turbo-build.log +151 -117
  2. package/.turbo/turbo-check-types.log +4 -0
  3. package/CHANGELOG.md +17 -0
  4. package/dist/{chunk-JJASB23A.mjs → chunk-24IOWJS4.mjs} +2 -2
  5. package/dist/chunk-24IOWJS4.mjs.map +1 -0
  6. package/dist/{chunk-X4FJ6WVZ.mjs → chunk-3UQM3NLM.mjs} +1 -1
  7. package/dist/chunk-3UQM3NLM.mjs.map +1 -0
  8. package/dist/{chunk-RVJAOO4S.mjs → chunk-4XYYSJ5C.mjs} +1 -1
  9. package/dist/{chunk-RVJAOO4S.mjs.map → chunk-4XYYSJ5C.mjs.map} +1 -1
  10. package/dist/{chunk-GOAPCQCR.mjs → chunk-6FAYV255.mjs} +9 -9
  11. package/dist/chunk-6FAYV255.mjs.map +1 -0
  12. package/dist/{chunk-5SJM4R4K.mjs → chunk-6LKDH2UJ.mjs} +2 -2
  13. package/dist/chunk-6LKDH2UJ.mjs.map +1 -0
  14. package/dist/{chunk-Y5BUWZOI.mjs → chunk-6Q4X3YEO.mjs} +1 -1
  15. package/dist/chunk-6Q4X3YEO.mjs.map +1 -0
  16. package/dist/{chunk-L24ZN4LL.mjs → chunk-6SYD77G6.mjs} +1 -1
  17. package/dist/chunk-6SYD77G6.mjs.map +1 -0
  18. package/dist/chunk-A3SFEHWZ.mjs +67 -0
  19. package/dist/chunk-A3SFEHWZ.mjs.map +1 -0
  20. package/dist/chunk-AZQCUNBV.mjs +3 -0
  21. package/dist/chunk-FD6FGKYY.mjs +3 -0
  22. package/dist/chunk-MMVDU6DF.mjs +3 -0
  23. package/dist/{chunk-KKG2RK2T.mjs → chunk-OELUUJZY.mjs} +1 -1
  24. package/dist/chunk-OELUUJZY.mjs.map +1 -0
  25. package/dist/chunk-PP225CLG.mjs +25 -0
  26. package/dist/chunk-PP225CLG.mjs.map +1 -0
  27. package/dist/{chunk-4LJAS777.mjs → chunk-UW3ITU2Y.mjs} +2 -2
  28. package/dist/chunk-UW3ITU2Y.mjs.map +1 -0
  29. package/dist/chunk-WJHSY5T6.mjs +3 -0
  30. package/dist/{chunk-ETGKLURC.mjs → chunk-WJYQWL4I.mjs} +1 -1
  31. package/dist/chunk-WJYQWL4I.mjs.map +1 -0
  32. package/dist/chunk-ZPACRCJ6.mjs +69 -0
  33. package/dist/chunk-ZPACRCJ6.mjs.map +1 -0
  34. package/dist/components/{copilot-textarea/base-copilot-textarea → base-copilot-textarea}/base-copilot-textarea.d.ts +2 -2
  35. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +18 -0
  36. package/dist/components/base-copilot-textarea/render-element.mjs +4 -0
  37. package/dist/components/base-copilot-textarea/render-placeholder.mjs +4 -0
  38. package/dist/components/copilot-textarea/copilot-textarea.d.ts +15 -0
  39. package/dist/components/copilot-textarea/copilot-textarea.mjs +22 -0
  40. package/dist/components/index.d.ts +6 -3
  41. package/dist/components/index.mjs +16 -11
  42. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts +23 -0
  43. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs +4 -0
  44. package/dist/hooks/use-autosuggestions.d.ts +3 -3
  45. package/dist/hooks/use-autosuggestions.mjs +2 -2
  46. package/dist/hooks/use-copilot-textarea-editor.d.ts +1 -1
  47. package/dist/hooks/use-copilot-textarea-editor.mjs +1 -1
  48. package/dist/index.d.ts +6 -3
  49. package/dist/index.mjs +18 -13
  50. package/dist/lib/editor-to-text.mjs.map +1 -1
  51. package/dist/lib/get-text-around-cursor.d.ts +1 -1
  52. package/dist/lib/get-text-around-cursor.mjs +1 -1
  53. package/dist/lib/slatejs-edits/add-autocompletions.d.ts +1 -1
  54. package/dist/lib/slatejs-edits/add-autocompletions.mjs +1 -1
  55. package/dist/lib/slatejs-edits/clear-autocompletions.d.ts +1 -1
  56. package/dist/lib/slatejs-edits/clear-autocompletions.mjs +1 -1
  57. package/dist/lib/slatejs-edits/with-partial-history.d.ts +1 -1
  58. package/dist/lib/utils.test.d.ts +1 -0
  59. package/dist/lib/utils.test.mjs +8 -0
  60. package/dist/lib/utils.test.mjs.map +1 -0
  61. package/dist/types/base/autosuggestions-bare-function.mjs.map +1 -0
  62. package/dist/types/base/base-autosuggestions-config.mjs +4 -0
  63. package/dist/types/base/base-autosuggestions-config.mjs.map +1 -0
  64. package/dist/types/base/custom-editor.mjs.map +1 -0
  65. package/dist/types/base/editor-autocomplete-state.mjs +5 -0
  66. package/dist/types/base/editor-autocomplete-state.mjs.map +1 -0
  67. package/dist/types/base/index.d.ts +2 -0
  68. package/dist/types/base/index.mjs +5 -0
  69. package/dist/types/base/index.mjs.map +1 -0
  70. package/dist/types/index.d.ts +4 -2
  71. package/dist/types/index.mjs +5 -2
  72. package/dist/types/standard-autosuggestions/autosuggestions-config.d.ts +18 -0
  73. package/dist/types/standard-autosuggestions/autosuggestions-config.mjs +6 -0
  74. package/dist/types/standard-autosuggestions/autosuggestions-config.mjs.map +1 -0
  75. package/dist/types/standard-autosuggestions/index.d.ts +3 -0
  76. package/dist/types/standard-autosuggestions/index.mjs +7 -0
  77. package/dist/types/standard-autosuggestions/index.mjs.map +1 -0
  78. package/dist/types/standard-autosuggestions/minimal-chat-gpt-message.d.ts +7 -0
  79. package/dist/types/standard-autosuggestions/minimal-chat-gpt-message.mjs +3 -0
  80. package/dist/types/standard-autosuggestions/minimal-chat-gpt-message.mjs.map +1 -0
  81. package/jest.config.js +5 -0
  82. package/package.json +9 -4
  83. package/src/components/{copilot-textarea/base-copilot-textarea → base-copilot-textarea}/base-copilot-textarea.tsx +9 -9
  84. package/src/components/copilot-textarea/copilot-textarea.tsx +40 -0
  85. package/src/components/index.ts +5 -2
  86. package/src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx +101 -0
  87. package/src/hooks/use-autosuggestions.ts +3 -3
  88. package/src/hooks/use-copilot-textarea-editor.tsx +1 -1
  89. package/src/lib/editor-to-text.ts +1 -1
  90. package/src/lib/get-text-around-cursor.ts +1 -1
  91. package/src/lib/slatejs-edits/add-autocompletions.ts +1 -1
  92. package/src/lib/slatejs-edits/clear-autocompletions.ts +1 -1
  93. package/src/lib/utils.test.ts +7 -0
  94. package/src/types/{editor-autocomplete-state.ts → base/editor-autocomplete-state.ts} +1 -1
  95. package/src/types/base/index.ts +4 -0
  96. package/src/types/index.ts +2 -4
  97. package/src/types/standard-autosuggestions/autosuggestions-config.tsx +94 -0
  98. package/src/types/standard-autosuggestions/index.ts +11 -0
  99. package/src/types/standard-autosuggestions/minimal-chat-gpt-message.tsx +5 -0
  100. package/tsconfig.json +8 -1
  101. package/tsup.config.ts +5 -0
  102. package/dist/chunk-4LJAS777.mjs.map +0 -1
  103. package/dist/chunk-5SJM4R4K.mjs.map +0 -1
  104. package/dist/chunk-ETGKLURC.mjs.map +0 -1
  105. package/dist/chunk-GOAPCQCR.mjs.map +0 -1
  106. package/dist/chunk-JD7BAH7U.mjs +0 -3
  107. package/dist/chunk-JJASB23A.mjs.map +0 -1
  108. package/dist/chunk-KKG2RK2T.mjs.map +0 -1
  109. package/dist/chunk-L24ZN4LL.mjs.map +0 -1
  110. package/dist/chunk-X4FJ6WVZ.mjs.map +0 -1
  111. package/dist/chunk-Y5BUWZOI.mjs.map +0 -1
  112. package/dist/chunk-YPBKY4KY.mjs +0 -3
  113. package/dist/components/copilot-textarea/base-copilot-textarea/base-copilot-textarea.mjs +0 -17
  114. package/dist/components/copilot-textarea/base-copilot-textarea/render-element.mjs +0 -4
  115. package/dist/components/copilot-textarea/base-copilot-textarea/render-placeholder.mjs +0 -4
  116. package/dist/types/base-autosuggestions-config.mjs +0 -4
  117. package/dist/types/editor-autocomplete-state.mjs +0 -5
  118. /package/dist/{chunk-JD7BAH7U.mjs.map → chunk-AZQCUNBV.mjs.map} +0 -0
  119. /package/dist/{chunk-YPBKY4KY.mjs.map → chunk-FD6FGKYY.mjs.map} +0 -0
  120. /package/dist/{components/copilot-textarea/base-copilot-textarea/base-copilot-textarea.mjs.map → chunk-MMVDU6DF.mjs.map} +0 -0
  121. /package/dist/{components/copilot-textarea/base-copilot-textarea/render-element.mjs.map → chunk-WJHSY5T6.mjs.map} +0 -0
  122. /package/dist/components/{copilot-textarea/base-copilot-textarea/render-placeholder.mjs.map → base-copilot-textarea/base-copilot-textarea.mjs.map} +0 -0
  123. /package/dist/components/{copilot-textarea/base-copilot-textarea → base-copilot-textarea}/render-element.d.ts +0 -0
  124. /package/dist/{types/autosuggestion-state.mjs.map → components/base-copilot-textarea/render-element.mjs.map} +0 -0
  125. /package/dist/components/{copilot-textarea/base-copilot-textarea → base-copilot-textarea}/render-placeholder.d.ts +0 -0
  126. /package/dist/{types/autosuggestions-bare-function.mjs.map → components/base-copilot-textarea/render-placeholder.mjs.map} +0 -0
  127. /package/dist/{types/base-autosuggestions-config.mjs.map → components/copilot-textarea/copilot-textarea.mjs.map} +0 -0
  128. /package/dist/{types/custom-editor.mjs.map → hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map} +0 -0
  129. /package/dist/types/{autosuggestion-state.d.ts → base/autosuggestion-state.d.ts} +0 -0
  130. /package/dist/types/{autosuggestion-state.mjs → base/autosuggestion-state.mjs} +0 -0
  131. /package/dist/types/{editor-autocomplete-state.mjs.map → base/autosuggestion-state.mjs.map} +0 -0
  132. /package/dist/types/{autosuggestions-bare-function.d.ts → base/autosuggestions-bare-function.d.ts} +0 -0
  133. /package/dist/types/{autosuggestions-bare-function.mjs → base/autosuggestions-bare-function.mjs} +0 -0
  134. /package/dist/types/{base-autosuggestions-config.d.ts → base/base-autosuggestions-config.d.ts} +0 -0
  135. /package/dist/types/{custom-editor.d.ts → base/custom-editor.d.ts} +0 -0
  136. /package/dist/types/{custom-editor.mjs → base/custom-editor.mjs} +0 -0
  137. /package/dist/types/{editor-autocomplete-state.d.ts → base/editor-autocomplete-state.d.ts} +0 -0
  138. /package/src/components/{copilot-textarea/base-copilot-textarea → base-copilot-textarea}/render-element.tsx +0 -0
  139. /package/src/components/{copilot-textarea/base-copilot-textarea → base-copilot-textarea}/render-placeholder.tsx +0 -0
  140. /package/src/types/{autosuggestion-state.ts → base/autosuggestion-state.ts} +0 -0
  141. /package/src/types/{autosuggestions-bare-function.ts → base/autosuggestions-bare-function.ts} +0 -0
  142. /package/src/types/{base-autosuggestions-config.tsx → base/base-autosuggestions-config.tsx} +0 -0
  143. /package/src/types/{custom-editor.tsx → base/custom-editor.tsx} +0 -0
@@ -1,8 +1,8 @@
1
1
 
2
- > @copilotkit/react-textarea@0.5.0 build /Users/ataibarkai/LocalGit/Recursively.ai/CopilotKit/CopilotKit/packages/react-textarea
2
+ > @copilotkit/react-textarea@0.7.0 build /Users/ataibarkai/LocalGit/Recursively.ai/CopilotKit/CopilotKit/packages/react-textarea
3
3
  > tsup --treeshake
4
4
 
5
- CLI Building entry: src/index.tsx, src/components/index.ts, src/hooks/index.ts, src/hooks/use-autosuggestions.ts, src/hooks/use-copilot-textarea-editor.tsx, src/context/index.ts, src/lib/debouncer.ts, src/lib/editor-to-text.ts, src/lib/get-text-around-cursor.ts, src/lib/utils.ts, src/types/autosuggestion-state.ts, src/types/autosuggestions-bare-function.ts, src/types/base-autosuggestions-config.tsx, src/types/custom-editor.tsx, src/types/editor-autocomplete-state.ts, src/types/index.ts, 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/components/copilot-textarea/base-copilot-textarea/base-copilot-textarea.tsx, src/components/copilot-textarea/base-copilot-textarea/render-element.tsx, src/components/copilot-textarea/base-copilot-textarea/render-placeholder.tsx
5
+ CLI Building entry: src/index.tsx, src/context/index.ts, src/components/index.ts, src/hooks/index.ts, src/hooks/use-autosuggestions.ts, src/hooks/use-copilot-textarea-editor.tsx, src/lib/debouncer.ts, src/lib/editor-to-text.ts, src/lib/get-text-around-cursor.ts, src/lib/utils.test.ts, src/lib/utils.ts, src/types/index.ts, src/components/base-copilot-textarea/base-copilot-textarea.tsx, src/components/base-copilot-textarea/render-element.tsx, src/components/base-copilot-textarea/render-placeholder.tsx, src/components/copilot-textarea/copilot-textarea.tsx, src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx, src/lib/slatejs-edits/add-autocompletions.ts, src/lib/slatejs-edits/clear-autocompletions.ts, src/lib/slatejs-edits/replace-text.ts, src/lib/slatejs-edits/with-partial-history.ts, src/types/base/autosuggestion-state.ts, src/types/base/autosuggestions-bare-function.ts, src/types/base/base-autosuggestions-config.tsx, src/types/base/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
  CLI Using tsconfig: tsconfig.json
7
7
  CLI tsup v6.5.0
8
8
  CLI Using tsup config: /Users/ataibarkai/LocalGit/Recursively.ai/CopilotKit/CopilotKit/packages/react-textarea/tsup.config.ts
@@ -13,121 +13,155 @@ 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
  DTS Build start
16
+ Generated an empty chunk: "custom-editor".
17
+ Generated an empty chunk: "minimal-chat-gpt-message".
16
18
  Generated an empty chunk: "autosuggestion-state".
17
19
  Generated an empty chunk: "autosuggestions-bare-function".
18
- Generated an empty chunk: "custom-editor".
19
- Generated an empty chunk: "chunk-YPBKY4KY".
20
- Generated an empty chunk: "chunk-JD7BAH7U".
21
- Generated an empty chunk: "chunk-H4VKQGVU".
20
+ Generated an empty chunk: "chunk-FD6FGKYY".
22
21
  Generated an empty chunk: "chunk-IU3WTXLQ".
23
- ESM dist/index.css 5.52 KB
24
- ESM dist/index.css.map 11.97 KB
25
- ESM dist/types/autosuggestion-state.mjs 82.00 B
26
- ESM dist/lib/get-text-around-cursor.mjs 232.00 B
27
- ESM dist/components/index.mjs 607.00 B
28
- ESM dist/hooks/use-copilot-textarea-editor.mjs 218.00 B
29
- ESM dist/context/index.mjs 98.00 B
30
- ESM dist/types/custom-editor.mjs 75.00 B
31
- ESM dist/chunk-H4VKQGVU.mjs 76.00 B
32
- ESM dist/chunk-JD7BAH7U.mjs 76.00 B
33
- ESM dist/chunk-IU3WTXLQ.mjs 76.00 B
34
- ESM dist/types/autosuggestions-bare-function.mjs 91.00 B
35
- ESM dist/chunk-YPBKY4KY.mjs 76.00 B
36
- ESM dist/types/base-autosuggestions-config.mjs 194.00 B
37
- ESM dist/lib/utils.mjs 220.00 B
38
- ESM dist/types/index.mjs 204.00 B
39
- ESM dist/index.mjs 726.00 B
40
- ESM dist/chunk-MRXNTQOX.mjs 1.92 KB
41
- ESM dist/chunk-ETGKLURC.mjs 595.00 B
42
- ESM dist/chunk-RVJAOO4S.mjs 527.00 B
43
- ESM dist/chunk-TSF4AJIK.mjs 716.00 B
44
- ESM dist/types/editor-autocomplete-state.mjs 218.00 B
45
- ESM dist/chunk-X4FJ6WVZ.mjs 1.76 KB
46
- ESM dist/chunk-Y5BUWZOI.mjs 1.14 KB
47
- ESM dist/chunk-JJASB23A.mjs 2.93 KB
48
- ESM dist/hooks/use-autosuggestions.mjs 268.00 B
49
- ESM dist/chunk-KCHYD3EB.mjs 3.08 KB
50
- ESM dist/chunk-GOAPCQCR.mjs 4.69 KB
51
- ESM dist/chunk-KGKLUWKW.mjs 1.37 KB
52
- ESM dist/chunk-5SJM4R4K.mjs 290.00 B
53
- ESM dist/chunk-NKW5OU2S.mjs 959.00 B
54
- ESM dist/chunk-L24ZN4LL.mjs 2.01 KB
55
- ESM dist/lib/debouncer.mjs 153.00 B
56
- ESM dist/chunk-KKG2RK2T.mjs 625.00 B
57
- ESM dist/hooks/index.mjs 98.00 B
58
- ESM dist/components/copilot-textarea/base-copilot-textarea/base-copilot-textarea.mjs 681.00 B
59
- ESM dist/chunk-4LJAS777.mjs 491.00 B
60
- ESM dist/lib/editor-to-text.mjs 1.34 KB
61
- ESM dist/lib/slatejs-edits/clear-autocompletions.mjs 192.00 B
62
- ESM dist/lib/slatejs-edits/with-partial-history.mjs 198.00 B
63
- ESM dist/components/copilot-textarea/base-copilot-textarea/render-placeholder.mjs 194.00 B
64
- ESM dist/lib/slatejs-edits/replace-text.mjs 170.00 B
65
- ESM dist/lib/slatejs-edits/add-autocompletions.mjs 186.00 B
66
- ESM dist/types/autosuggestion-state.mjs.map 51.00 B
67
- ESM dist/components/copilot-textarea/base-copilot-textarea/render-element.mjs 186.00 B
68
- ESM dist/lib/get-text-around-cursor.mjs.map 51.00 B
69
- ESM dist/components/index.mjs.map 51.00 B
70
- ESM dist/types/custom-editor.mjs.map 51.00 B
71
- ESM dist/chunk-H4VKQGVU.mjs.map 51.00 B
72
- ESM dist/hooks/use-copilot-textarea-editor.mjs.map 51.00 B
73
- ESM dist/chunk-IU3WTXLQ.mjs.map 51.00 B
74
- ESM dist/types/autosuggestions-bare-function.mjs.map 51.00 B
75
- ESM dist/chunk-YPBKY4KY.mjs.map 51.00 B
76
- ESM dist/types/base-autosuggestions-config.mjs.map 51.00 B
77
- ESM dist/types/index.mjs.map 51.00 B
78
- ESM dist/lib/utils.mjs.map 51.00 B
79
- ESM dist/index.mjs.map 51.00 B
80
- ESM dist/chunk-MRXNTQOX.mjs.map 71.00 B
81
- ESM dist/chunk-ETGKLURC.mjs.map 1.03 KB
82
- ESM dist/chunk-TSF4AJIK.mjs.map 1.31 KB
83
- ESM dist/types/editor-autocomplete-state.mjs.map 51.00 B
84
- ESM dist/chunk-X4FJ6WVZ.mjs.map 3.63 KB
85
- ESM dist/chunk-Y5BUWZOI.mjs.map 1.84 KB
86
- ESM dist/hooks/use-autosuggestions.mjs.map 51.00 B
87
- ESM dist/chunk-JJASB23A.mjs.map 5.56 KB
88
- ESM dist/chunk-KCHYD3EB.mjs.map 6.12 KB
89
- ESM dist/chunk-GOAPCQCR.mjs.map 8.17 KB
90
- ESM dist/chunk-KGKLUWKW.mjs.map 2.45 KB
91
- ESM dist/chunk-NKW5OU2S.mjs.map 1.60 KB
92
- ESM dist/chunk-5SJM4R4K.mjs.map 561.00 B
93
- ESM dist/lib/debouncer.mjs.map 51.00 B
94
- ESM dist/chunk-L24ZN4LL.mjs.map 3.77 KB
95
- ESM dist/components/copilot-textarea/base-copilot-textarea/base-copilot-textarea.mjs.map 51.00 B
96
- ESM dist/chunk-KKG2RK2T.mjs.map 974.00 B
97
- ESM dist/hooks/index.mjs.map 51.00 B
98
- ESM dist/chunk-RVJAOO4S.mjs.map 916.00 B
99
- ESM dist/context/index.mjs.map 51.00 B
100
- ESM dist/chunk-4LJAS777.mjs.map 870.00 B
101
- ESM dist/lib/editor-to-text.mjs.map 2.83 KB
102
- ESM dist/lib/slatejs-edits/clear-autocompletions.mjs.map 51.00 B
103
- ESM dist/chunk-JD7BAH7U.mjs.map 51.00 B
104
- ESM dist/lib/slatejs-edits/with-partial-history.mjs.map 51.00 B
105
- ESM dist/components/copilot-textarea/base-copilot-textarea/render-placeholder.mjs.map 51.00 B
106
- ESM dist/lib/slatejs-edits/replace-text.mjs.map 51.00 B
107
- ESM dist/lib/slatejs-edits/add-autocompletions.mjs.map 51.00 B
108
- ESM dist/components/copilot-textarea/base-copilot-textarea/render-element.mjs.map 51.00 B
109
- ESM ⚡️ Build success in 507ms
110
- DTS ⚡️ Build success in 828ms
111
- DTS dist/index.d.ts 364.00 B
112
- DTS dist/components/copilot-textarea/base-copilot-textarea/base-copilot-textarea.d.ts 785.00 B
113
- DTS dist/types/base-autosuggestions-config.d.ts 332.00 B
114
- DTS dist/types/autosuggestions-bare-function.d.ts 162.00 B
115
- DTS dist/components/index.d.ts 249.00 B
116
- DTS dist/hooks/index.d.ts 1.00 B
117
- DTS dist/hooks/use-autosuggestions.d.ts 845.00 B
118
- DTS dist/types/autosuggestion-state.d.ts 143.00 B
119
- DTS dist/types/editor-autocomplete-state.d.ts 342.00 B
120
- DTS dist/hooks/use-copilot-textarea-editor.d.ts 218.00 B
121
- DTS dist/types/custom-editor.d.ts 801.00 B
122
- DTS dist/context/index.d.ts 1.00 B
123
- DTS dist/lib/debouncer.d.ts 372.00 B
124
- DTS dist/lib/editor-to-text.d.ts 243.00 B
125
- DTS dist/lib/get-text-around-cursor.d.ts 448.00 B
126
- DTS dist/lib/utils.d.ts 638.00 B
127
- DTS dist/types/index.d.ts 194.00 B
128
- DTS dist/lib/slatejs-edits/add-autocompletions.d.ts 297.00 B
129
- DTS dist/lib/slatejs-edits/clear-autocompletions.d.ts 245.00 B
130
- DTS dist/lib/slatejs-edits/replace-text.d.ts 139.00 B
131
- DTS dist/lib/slatejs-edits/with-partial-history.d.ts 537.00 B
132
- DTS dist/components/copilot-textarea/base-copilot-textarea/render-element.d.ts 292.00 B
133
- DTS dist/components/copilot-textarea/base-copilot-textarea/render-placeholder.d.ts 321.00 B
22
+ Generated an empty chunk: "chunk-MMVDU6DF".
23
+ Generated an empty chunk: "chunk-AZQCUNBV".
24
+ Generated an empty chunk: "chunk-WJHSY5T6".
25
+ Generated an empty chunk: "chunk-H4VKQGVU".
26
+ ESM dist/index.css 5.52 KB
27
+ ESM dist/index.css.map 11.97 KB
28
+ ESM dist/lib/utils.test.mjs 200.00 B
29
+ ESM dist/lib/slatejs-edits/add-autocompletions.mjs 186.00 B
30
+ ESM dist/types/index.mjs 387.00 B
31
+ ESM dist/context/index.mjs 98.00 B
32
+ ESM dist/components/index.mjs 792.00 B
33
+ ESM dist/hooks/index.mjs 98.00 B
34
+ ESM dist/chunk-FD6FGKYY.mjs 76.00 B
35
+ ESM dist/chunk-IU3WTXLQ.mjs 76.00 B
36
+ ESM dist/chunk-MMVDU6DF.mjs 76.00 B
37
+ ESM dist/chunk-H4VKQGVU.mjs 76.00 B
38
+ ESM dist/chunk-MRXNTQOX.mjs 1.92 KB
39
+ ESM dist/lib/slatejs-edits/clear-autocompletions.mjs 192.00 B
40
+ ESM dist/lib/slatejs-edits/replace-text.mjs 170.00 B
41
+ ESM dist/lib/slatejs-edits/with-partial-history.mjs 198.00 B
42
+ ESM dist/lib/get-text-around-cursor.mjs 232.00 B
43
+ ESM dist/lib/utils.mjs 220.00 B
44
+ ESM dist/index.mjs 993.00 B
45
+ ESM dist/chunk-PP225CLG.mjs 1.06 KB
46
+ ESM dist/chunk-A3SFEHWZ.mjs 2.09 KB
47
+ ESM dist/chunk-ZPACRCJ6.mjs 2.75 KB
48
+ ESM dist/chunk-6FAYV255.mjs 4.69 KB
49
+ ESM dist/chunk-WJYQWL4I.mjs 595.00 B
50
+ ESM dist/chunk-4XYYSJ5C.mjs 527.00 B
51
+ ESM dist/chunk-TSF4AJIK.mjs 716.00 B
52
+ ESM dist/chunk-3UQM3NLM.mjs 1.76 KB
53
+ ESM dist/chunk-6Q4X3YEO.mjs 1.14 KB
54
+ ESM dist/chunk-OELUUJZY.mjs 625.00 B
55
+ ESM dist/hooks/use-autosuggestions.mjs 268.00 B
56
+ ESM dist/chunk-24IOWJS4.mjs 2.93 KB
57
+ ESM dist/chunk-UW3ITU2Y.mjs 496.00 B
58
+ ESM dist/chunk-KGKLUWKW.mjs 1.37 KB
59
+ ESM dist/hooks/use-copilot-textarea-editor.mjs 218.00 B
60
+ ESM dist/chunk-6SYD77G6.mjs 2.01 KB
61
+ ESM dist/chunk-KCHYD3EB.mjs 3.08 KB
62
+ ESM dist/lib/debouncer.mjs 153.00 B
63
+ ESM dist/chunk-NKW5OU2S.mjs 959.00 B
64
+ ESM dist/lib/editor-to-text.mjs 1.34 KB
65
+ ESM dist/chunk-AZQCUNBV.mjs 76.00 B
66
+ ESM dist/chunk-WJHSY5T6.mjs 76.00 B
67
+ ESM dist/chunk-6LKDH2UJ.mjs 295.00 B
68
+ ESM dist/types/base/custom-editor.mjs 75.00 B
69
+ ESM dist/types/standard-autosuggestions/minimal-chat-gpt-message.mjs 86.00 B
70
+ ESM dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs 220.00 B
71
+ ESM dist/components/base-copilot-textarea/base-copilot-textarea.mjs 671.00 B
72
+ ESM dist/components/copilot-textarea/copilot-textarea.mjs 802.00 B
73
+ ESM dist/types/base/autosuggestion-state.mjs 82.00 B
74
+ ESM dist/types/base/autosuggestions-bare-function.mjs 91.00 B
75
+ ESM dist/types/base/editor-autocomplete-state.mjs 227.00 B
76
+ ESM dist/types/base/index.mjs 213.00 B
77
+ ESM dist/types/standard-autosuggestions/index.mjs 328.00 B
78
+ ESM dist/types/base/base-autosuggestions-config.mjs 200.00 B
79
+ ESM dist/components/base-copilot-textarea/render-element.mjs 180.00 B
80
+ ESM dist/components/base-copilot-textarea/render-placeholder.mjs 188.00 B
81
+ ESM dist/lib/utils.test.mjs.map 349.00 B
82
+ ESM dist/lib/slatejs-edits/add-autocompletions.mjs.map 51.00 B
83
+ ESM dist/context/index.mjs.map 51.00 B
84
+ ESM dist/components/index.mjs.map 51.00 B
85
+ ESM dist/types/index.mjs.map 51.00 B
86
+ ESM dist/types/standard-autosuggestions/autosuggestions-config.mjs 310.00 B
87
+ ESM dist/hooks/index.mjs.map 51.00 B
88
+ ESM dist/chunk-FD6FGKYY.mjs.map 51.00 B
89
+ ESM dist/chunk-MRXNTQOX.mjs.map 71.00 B
90
+ ESM dist/lib/slatejs-edits/clear-autocompletions.mjs.map 51.00 B
91
+ ESM dist/lib/slatejs-edits/replace-text.mjs.map 51.00 B
92
+ ESM dist/lib/slatejs-edits/with-partial-history.mjs.map 51.00 B
93
+ ESM dist/lib/get-text-around-cursor.mjs.map 51.00 B
94
+ ESM dist/chunk-IU3WTXLQ.mjs.map 51.00 B
95
+ ESM dist/lib/utils.mjs.map 51.00 B
96
+ ESM dist/chunk-PP225CLG.mjs.map 1.75 KB
97
+ ESM dist/chunk-6FAYV255.mjs.map 8.05 KB
98
+ ESM dist/chunk-ZPACRCJ6.mjs.map 4.01 KB
99
+ ESM dist/chunk-3UQM3NLM.mjs.map 3.63 KB
100
+ ESM dist/chunk-TSF4AJIK.mjs.map 1.31 KB
101
+ ESM dist/chunk-4XYYSJ5C.mjs.map 921.00 B
102
+ ESM dist/chunk-6Q4X3YEO.mjs.map 1.82 KB
103
+ ESM dist/hooks/use-autosuggestions.mjs.map 51.00 B
104
+ ESM dist/chunk-OELUUJZY.mjs.map 957.00 B
105
+ ESM dist/chunk-24IOWJS4.mjs.map 5.54 KB
106
+ ESM dist/chunk-UW3ITU2Y.mjs.map 878.00 B
107
+ ESM dist/hooks/use-copilot-textarea-editor.mjs.map 51.00 B
108
+ ESM dist/chunk-KGKLUWKW.mjs.map 2.45 KB
109
+ ESM dist/chunk-6SYD77G6.mjs.map 3.78 KB
110
+ ESM dist/lib/debouncer.mjs.map 51.00 B
111
+ ESM dist/chunk-NKW5OU2S.mjs.map 1.60 KB
112
+ ESM dist/chunk-AZQCUNBV.mjs.map 51.00 B
113
+ ESM dist/lib/editor-to-text.mjs.map 2.83 KB
114
+ ESM dist/chunk-WJYQWL4I.mjs.map 1.04 KB
115
+ ESM dist/index.mjs.map 51.00 B
116
+ ESM dist/chunk-WJHSY5T6.mjs.map 51.00 B
117
+ ESM dist/chunk-6LKDH2UJ.mjs.map 566.00 B
118
+ ESM dist/chunk-A3SFEHWZ.mjs.map 4.73 KB
119
+ ESM dist/chunk-MMVDU6DF.mjs.map 51.00 B
120
+ ESM dist/chunk-H4VKQGVU.mjs.map 51.00 B
121
+ ESM dist/chunk-KCHYD3EB.mjs.map 6.12 KB
122
+ ESM dist/types/base/custom-editor.mjs.map 51.00 B
123
+ ESM dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map 51.00 B
124
+ ESM dist/types/standard-autosuggestions/minimal-chat-gpt-message.mjs.map 51.00 B
125
+ ESM dist/components/base-copilot-textarea/base-copilot-textarea.mjs.map 51.00 B
126
+ ESM dist/components/copilot-textarea/copilot-textarea.mjs.map 51.00 B
127
+ ESM dist/types/base/autosuggestion-state.mjs.map 51.00 B
128
+ ESM dist/types/base/autosuggestions-bare-function.mjs.map 51.00 B
129
+ ESM dist/types/base/editor-autocomplete-state.mjs.map 51.00 B
130
+ ESM dist/types/base/index.mjs.map 51.00 B
131
+ ESM dist/types/standard-autosuggestions/index.mjs.map 51.00 B
132
+ ESM dist/types/base/base-autosuggestions-config.mjs.map 51.00 B
133
+ ESM dist/components/base-copilot-textarea/render-element.mjs.map 51.00 B
134
+ ESM dist/components/base-copilot-textarea/render-placeholder.mjs.map 51.00 B
135
+ ESM dist/types/standard-autosuggestions/autosuggestions-config.mjs.map 51.00 B
136
+ ESM ⚡️ Build success in 548ms
137
+ DTS ⚡️ Build success in 1038ms
138
+ DTS dist/index.d.ts 763.00 B
139
+ DTS dist/components/base-copilot-textarea/base-copilot-textarea.d.ts 789.00 B
140
+ DTS dist/components/copilot-textarea/copilot-textarea.d.ts 703.00 B
141
+ DTS dist/types/base/base-autosuggestions-config.d.ts 332.00 B
142
+ DTS dist/types/base/autosuggestions-bare-function.d.ts 162.00 B
143
+ DTS dist/types/standard-autosuggestions/autosuggestions-config.d.ts 884.00 B
144
+ DTS dist/types/standard-autosuggestions/minimal-chat-gpt-message.d.ts 129.00 B
145
+ DTS dist/context/index.d.ts 1.00 B
146
+ DTS dist/components/index.d.ts 480.00 B
147
+ DTS dist/hooks/index.d.ts 1.00 B
148
+ DTS dist/hooks/use-autosuggestions.d.ts 860.00 B
149
+ DTS dist/types/base/autosuggestion-state.d.ts 143.00 B
150
+ DTS dist/types/base/editor-autocomplete-state.d.ts 342.00 B
151
+ DTS dist/hooks/use-copilot-textarea-editor.d.ts 223.00 B
152
+ DTS dist/types/base/custom-editor.d.ts 801.00 B
153
+ DTS dist/lib/debouncer.d.ts 372.00 B
154
+ DTS dist/lib/editor-to-text.d.ts 243.00 B
155
+ DTS dist/lib/get-text-around-cursor.d.ts 453.00 B
156
+ DTS dist/lib/utils.test.d.ts 1.00 B
157
+ DTS dist/lib/utils.d.ts 638.00 B
158
+ DTS dist/types/index.d.ts 491.00 B
159
+ DTS dist/components/base-copilot-textarea/render-element.d.ts 292.00 B
160
+ DTS dist/components/base-copilot-textarea/render-placeholder.d.ts 321.00 B
161
+ DTS dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts 1.79 KB
162
+ DTS dist/lib/slatejs-edits/add-autocompletions.d.ts 302.00 B
163
+ DTS dist/lib/slatejs-edits/clear-autocompletions.d.ts 250.00 B
164
+ DTS dist/lib/slatejs-edits/replace-text.d.ts 139.00 B
165
+ DTS dist/lib/slatejs-edits/with-partial-history.d.ts 542.00 B
166
+ DTS dist/types/base/index.d.ts 194.00 B
167
+ DTS dist/types/standard-autosuggestions/index.d.ts 286.00 B
@@ -0,0 +1,4 @@
1
+
2
+ > @copilotkit/react-textarea@0.7.0 check-types /Users/ataibarkai/LocalGit/Recursively.ai/CopilotKit/CopilotKit/packages/react-textarea
3
+ > tsc --noEmit
4
+
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # ui
2
2
 
3
+ ## 0.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - ce193f7: Dependency fix
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [ce193f7]
12
+ - @copilotkit/react-core@0.7.0
13
+
14
+ ## 0.7.0
15
+
16
+ ### Minor Changes
17
+
18
+ - Made CopilotTextarea standalone for clarity
19
+
3
20
  ## 0.6.0
4
21
 
5
22
  ### Minor Changes
@@ -1,4 +1,4 @@
1
- import { areEqual_autocompleteState } from './chunk-4LJAS777.mjs';
1
+ import { areEqual_autocompleteState } from './chunk-UW3ITU2Y.mjs';
2
2
  import { nullableCompatibleEqualityCheck } from './chunk-KGKLUWKW.mjs';
3
3
  import { Debouncer } from './chunk-NKW5OU2S.mjs';
4
4
  import { __async } from './chunk-MRXNTQOX.mjs';
@@ -85,4 +85,4 @@ function useAutosuggestions(debounceTime, acceptAutosuggestionKey, autosuggestio
85
85
 
86
86
  export { useAutosuggestions };
87
87
  //# sourceMappingURL=out.js.map
88
- //# sourceMappingURL=chunk-JJASB23A.mjs.map
88
+ //# sourceMappingURL=chunk-24IOWJS4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/use-autosuggestions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,aAAa,SAAS,gBAAgB;AAgBxC,SAAS,mBACd,cACA,yBACA,wBACA,8BACA,kBAC0B;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;AACH,UACE,oBACA,wBAAwB,qBAAqB,MAC7C,wBAAwB,oBAAoB,IAC5C;AACA;AAAA,MACF;AAEA,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,CAAC,wBAAwB,kCAAkC,gBAAgB;AAAA,EAC7E;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): 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 if (\n disableWhenEmpty &&\n editorAutocompleteState.textBeforeCursor === \"\" &&\n editorAutocompleteState.textAfterCursor === \"\"\n ) {\n return;\n }\n\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 [autosuggestionFunction, setCurrentAutocompleteSuggestion, disableWhenEmpty]\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"]}
@@ -63,4 +63,4 @@ function extractTextWithNewlines(editor, range) {
63
63
 
64
64
  export { extractTextWithNewlines, getFullEditorTextWithNewlines, getTextAroundCursor };
65
65
  //# sourceMappingURL=out.js.map
66
- //# sourceMappingURL=chunk-X4FJ6WVZ.mjs.map
66
+ //# sourceMappingURL=chunk-3UQM3NLM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/get-text-around-cursor.ts"],"names":[],"mappings":";AAAA,SAAS,QAAc,MAAM,OAAO,MAAM,eAAe;AAGlD,SAAS,oBACd,QACgC;AAChC,QAAM,EAAE,UAAU,IAAI;AAEtB,MAAI,CAAC,aAAa,CAAC,MAAM,YAAY,SAAS,GAAG;AAC/C,WAAO;AAAA,EACT;AAEA,QAAM,cAAqB;AAAA,IACzB,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,IAC/B,OAAO,UAAU;AAAA,EACnB;AACA,QAAM,aAAoB;AAAA,IACxB,QAAQ,UAAU;AAAA,IAClB,OAAO,OAAO,IAAI,QAAQ,CAAC,CAAC;AAAA,EAC9B;AAGA,QAAM,SAAS,wBAAwB,QAAQ,WAAW;AAC1D,QAAM,QAAQ,wBAAwB,QAAQ,UAAU;AAExD,SAAO;AAAA,IACL,aAAa,UAAU;AAAA,IACvB,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EACnB;AACF;AAEO,SAAS,8BAA8B,QAAwB;AACpE,QAAM,oBAA2B;AAAA,IAC/B,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,IAC/B,OAAO,OAAO,IAAI,QAAQ,CAAC,CAAC;AAAA,EAC9B;AACA,SAAO,wBAAwB,QAAQ,iBAAiB;AAC1D;AAGO,SAAS,wBAAwB,QAAgB,OAAsB;AAC5E,QAAM,QAAQ;AACd,QAAM,CAAC,OAAO,GAAG,IAAI,MAAM,MAAM,KAAK;AACtC,MAAI,OAAO;AACX,MAAI,YAAyB;AAE7B,aAAW,CAAC,MAAM,IAAI,KAAK,OAAO,MAAM,QAAQ;AAAA,IAC9C,IAAI;AAAA,IACJ,OAAO,KAAK;AAAA,IACZ;AAAA,EACF,CAAC,GAAG;AACF,QAAI,IAAI,KAAK;AAGb,UAAM,CAAC,KAAK,IAAI,OAAO,MAAM,QAAQ;AAAA,MACnC,IAAI;AAAA,MACJ,OAAO,CAAC,MAAM,QAAQ,UAAU,CAAC,KAAK,EAAE,SAAS;AAAA,IACnD,CAAC,KAAK,CAAC,IAAI;AAGX,QAAI,cAAc,SAAS,OAAO;AAEhC,UAAI,WAAW;AACb,gBAAQ;AAAA,MACV;AACA,kBAAY;AAAA,IACd;AAEA,QAAI,KAAK,OAAO,MAAM,IAAI,IAAI,GAAG;AAC/B,UAAI,EAAE,MAAM,GAAG,IAAI,MAAM;AAAA,IAC3B;AAEA,QAAI,KAAK,OAAO,MAAM,MAAM,IAAI,GAAG;AACjC,UAAI,EAAE,MAAM,MAAM,MAAM;AAAA,IAC1B;AAEA,YAAQ;AAAA,EACV;AAEA,SAAO;AACT","sourcesContent":["import { Editor, Node, Path, Range, Text, Element } from \"slate\";\nimport { EditorAutocompleteState } from \"../types/base/editor-autocomplete-state\";\n\nexport function getTextAroundCursor(\n editor: Editor\n): EditorAutocompleteState | null {\n const { selection } = editor;\n\n if (!selection || !Range.isCollapsed(selection)) {\n return null;\n }\n // Create two ranges: one before the anchor and one after\n const beforeRange: Range = {\n anchor: Editor.start(editor, []),\n focus: selection.anchor,\n };\n const afterRange: Range = {\n anchor: selection.anchor,\n focus: Editor.end(editor, []),\n };\n\n // Extract text for these ranges\n const before = extractTextWithNewlines(editor, beforeRange);\n const after = extractTextWithNewlines(editor, afterRange);\n\n return {\n cursorPoint: selection.anchor,\n textBeforeCursor: before,\n textAfterCursor: after,\n };\n}\n\nexport function getFullEditorTextWithNewlines(editor: Editor): string {\n const fullDocumentRange: Range = {\n anchor: Editor.start(editor, []),\n focus: Editor.end(editor, []),\n };\n return extractTextWithNewlines(editor, fullDocumentRange);\n}\n\n// Helper function to extract text with newlines\nexport function extractTextWithNewlines(editor: Editor, range: Range): string {\n const voids = false;\n const [start, end] = Range.edges(range);\n let text = \"\";\n let lastBlock: Node | null = null;\n\n for (const [node, path] of Editor.nodes(editor, {\n at: range,\n match: Text.isText,\n voids,\n })) {\n let t = node.text;\n\n // Determine the parent block of the current text node\n const [block] = Editor.above(editor, {\n at: path,\n match: (n) => Element.isElement(n) && n.type === \"paragraph\",\n }) || [null];\n\n // If we encounter a new block, prepend a newline\n if (lastBlock !== block && block) {\n // check that lastBlock is not null to avoid adding a newline at the beginning\n if (lastBlock) {\n text += \"\\n\";\n }\n lastBlock = block;\n }\n\n if (Path.equals(path, end.path)) {\n t = t.slice(0, end.offset);\n }\n\n if (Path.equals(path, start.path)) {\n t = t.slice(start.offset);\n }\n\n text += t;\n }\n\n return text;\n}\n"]}
@@ -15,4 +15,4 @@ function clearAutocompletionsFromEditor(editor) {
15
15
 
16
16
  export { clearAutocompletionsFromEditor };
17
17
  //# sourceMappingURL=out.js.map
18
- //# sourceMappingURL=chunk-RVJAOO4S.mjs.map
18
+ //# sourceMappingURL=chunk-4XYYSJ5C.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/slatejs-edits/clear-autocompletions.ts"],"names":[],"mappings":";AAAA,SAAe,MAAM,SAAS,kBAAkB;AAGzC,SAAS,+BAA+B,QAAsB;AAEnE,QAAM,QAAgB,CAAC;AACvB,aAAW,CAAC,MAAM,IAAI,KAAK,KAAK,MAAM,MAAM,GAAG;AAC7C,QAAI,QAAQ,UAAU,IAAI,KAAK,KAAK,SAAS,cAAc;AACzD,YAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AACA,aAAW,QAAQ,OAAO;AACxB,eAAW,YAAY,QAAQ,EAAE,IAAI,KAAK,CAAC;AAAA,EAC7C;AACF","sourcesContent":["import { Path, Node, Element, Transforms } from \"slate\";\nimport { CustomEditor } from \"../../types/custom-editor\";\n\nexport function clearAutocompletionsFromEditor(editor: CustomEditor) {\n // clear previous suggestion\n const paths: Path[] = [];\n for (const [node, path] of Node.nodes(editor)) {\n if (Element.isElement(node) && node.type === \"suggestion\") {\n paths.push(path);\n }\n }\n for (const path of paths) {\n Transforms.removeNodes(editor, { at: path });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/lib/slatejs-edits/clear-autocompletions.ts"],"names":[],"mappings":";AAAA,SAAe,MAAM,SAAS,kBAAkB;AAGzC,SAAS,+BAA+B,QAAsB;AAEnE,QAAM,QAAgB,CAAC;AACvB,aAAW,CAAC,MAAM,IAAI,KAAK,KAAK,MAAM,MAAM,GAAG;AAC7C,QAAI,QAAQ,UAAU,IAAI,KAAK,KAAK,SAAS,cAAc;AACzD,YAAM,KAAK,IAAI;AAAA,IACjB;AAAA,EACF;AACA,aAAW,QAAQ,OAAO;AACxB,eAAW,YAAY,QAAQ,EAAE,IAAI,KAAK,CAAC;AAAA,EAC7C;AACF","sourcesContent":["import { Path, Node, Element, Transforms } from \"slate\";\nimport { CustomEditor } from \"../../types/base/custom-editor\";\n\nexport function clearAutocompletionsFromEditor(editor: CustomEditor) {\n // clear previous suggestion\n const paths: Path[] = [];\n for (const [node, path] of Node.nodes(editor)) {\n if (Element.isElement(node) && node.type === \"suggestion\") {\n paths.push(path);\n }\n }\n for (const path of paths) {\n Transforms.removeNodes(editor, { at: path });\n }\n}\n"]}
@@ -1,12 +1,12 @@
1
- import { addAutocompletionsToEditor } from './chunk-ETGKLURC.mjs';
2
- import { clearAutocompletionsFromEditor } from './chunk-RVJAOO4S.mjs';
1
+ import { addAutocompletionsToEditor } from './chunk-WJYQWL4I.mjs';
2
+ import { clearAutocompletionsFromEditor } from './chunk-4XYYSJ5C.mjs';
3
3
  import { replaceEditorText } from './chunk-TSF4AJIK.mjs';
4
- import { makeRenderElementFunction } from './chunk-Y5BUWZOI.mjs';
5
- import { makeRenderPlaceholderFunction } from './chunk-KKG2RK2T.mjs';
6
- import { getTextAroundCursor, getFullEditorTextWithNewlines } from './chunk-X4FJ6WVZ.mjs';
7
- import { defaultBaseAutosuggestionsConfig } from './chunk-5SJM4R4K.mjs';
8
- import { useAutosuggestions } from './chunk-JJASB23A.mjs';
9
- import { useCopilotTextareaEditor } from './chunk-L24ZN4LL.mjs';
4
+ import { getTextAroundCursor, getFullEditorTextWithNewlines } from './chunk-3UQM3NLM.mjs';
5
+ import { defaultBaseAutosuggestionsConfig } from './chunk-6LKDH2UJ.mjs';
6
+ import { makeRenderElementFunction } from './chunk-6Q4X3YEO.mjs';
7
+ import { makeRenderPlaceholderFunction } from './chunk-OELUUJZY.mjs';
8
+ import { useAutosuggestions } from './chunk-24IOWJS4.mjs';
9
+ import { useCopilotTextareaEditor } from './chunk-6SYD77G6.mjs';
10
10
  import { __spreadValues, __objRest } from './chunk-MRXNTQOX.mjs';
11
11
  import { useMemo, useState, useCallback, useEffect } from 'react';
12
12
  import { Editor } from 'slate';
@@ -121,4 +121,4 @@ function BaseCopilotTextarea(props) {
121
121
 
122
122
  export { BaseCopilotTextarea };
123
123
  //# sourceMappingURL=out.js.map
124
- //# sourceMappingURL=chunk-GOAPCQCR.mjs.map
124
+ //# sourceMappingURL=chunk-6FAYV255.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/base-copilot-textarea/base-copilot-textarea.tsx"],"names":["_a","value"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAqB,cAAc;AACnC,SAAS,UAAU,aAAa;AAChC,SAAS,eAAe;AA2JlB;AA7HC,SAAS,oBACd,OAGa;AACb,QAAM,wBAAmD,kCACpD,mCACA,MAAM;AAGX,QAAM,uBAAuB,QAAQ,MAAG;AAlD1C,QAAAA;AAkD6C,YAAAA,MAAA,MAAM,UAAN,OAAAA,MAAe;AAAA,KAAI,CAAC,CAAC;AAChE,QAAM,CAAC,yBAAyB,0BAA0B,IACxD,SAAS,oBAAoB;AAE/B,QAAM,eAA6B,QAAQ,MAAM;AAC/C,WAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,UAAU,CAAC,EAAE,MAAM,qBAAqB,CAAC;AAAA,MAC3C;AAAA,IACF;AAAA,EACF,GAAG,CAAC,oBAAoB,CAAC;AAEzB,QAAM,SAAS,yBAAyB;AAExC,QAAM,aAAa;AAAA,IACjB,CAAC,mBAAwC;AACvC,aAAO,WAAW,QAAQ,eAAe,MAAM;AAAA,QAC7C,IAAI,eAAe;AAAA,MACrB,CAAC;AAAA,IACH;AAAA,IACA,CAAC,MAAM;AAAA,EACT;AAEA,QAAM;AAAA,IACJ;AAAA,IACA,iBAAiB;AAAA,IACjB,kBAAkB;AAAA,EACpB,IAAI;AAAA,IACF,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,MAAM;AAAA,IACN;AAAA,IACA,sBAAsB;AAAA,EACxB;AAGA,YAAU,MAAM;AACd,mCAA+B,MAAM;AACrC,QAAI,+BAA+B;AACjC;AAAA,QACE;AAAA,QACA,8BAA8B;AAAA,QAC9B,8BAA8B;AAAA,MAChC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,6BAA6B,CAAC;AAElC,QAAM,wBAAwB,QAAQ,MAAM;AAC1C,UAAM,2BAAgD,mBACjD,MAAM;AAGX,WAAO,0BAA0B,wBAAwB;AAAA,EAC3D,GAAG,CAAC,MAAM,gBAAgB,CAAC;AAE3B,QAAM,4BAA4B,QAAQ,MAAM;AAE9C,UAAM,mCAAwD;AAAA,MAC5D,KAAK;AAAA,IACP;AAEA,UAAM,4BAAiD,kCAClD,mCACA,MAAM;AAGX,WAAO,8BAA8B,yBAAyB;AAAA,EAChE,GAAG,CAAC,MAAM,gBAAgB,CAAC;AAG3B,YAAU,MAAM;AAzHlB,QAAAA,KAAA;AA0HI,QAAI,MAAM,UAAU,yBAAyB;AAC3C;AAAA,IACF;AAEA,gCAA2BA,MAAA,MAAM,UAAN,OAAAA,MAAe,EAAE;AAC5C,sBAAkB,SAAQ,WAAM,UAAN,YAAe,EAAE;AAAA,EAC7C,GAAG,CAAC,MAAM,KAAK,CAAC;AAGhB,QAQI,YAPF;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA,uBAAuB;AAAA,IACvB;AAAA,IACA;AAAA,EAzIJ,IA2IM,IADC,2BACD,IADC;AAAA,IANH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAIF,QAAM,mBAAmB,MAAM;AAC7B,UAAM,gBAAgB;AACtB,UAAM,2BAA2B;AACjC,UAAM,kBAAkB,QAAQ,0BAA0B,gCAAa,EAAE;AACzE,WAAO,GAAG,iBAAiB;AAAA,EAC7B,GAAG;AAEH,SAEE,oBAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA,UAAU,CAACC,WAAU;AAzJ3B,UAAAD;AA0JQ,YAAM,iBAAiB,oBAAoB,MAAM;AAEjD,YAAM,iBAAiB,iBACnB,eAAe,mBAAmB,eAAe,kBACjD,8BAA8B,MAAM;AAExC,iCAA2B,cAAc;AACzC,qCAA+B,cAAc;AAC7C,OAAAA,MAAA,MAAM,kBAAN,gBAAAA,IAAA,YAAsB;AAAA,IACxB;AAAA,IAEA,8BAAC;AAAA,MACC,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,WAAW;AAAA,MACX,WAAW;AAAA,OACP,eACN;AAAA,GACF;AAEJ","sourcesContent":["// This example is for an Editor with `ReactEditor` and `HistoryEditor`\nimport {\n TextareaHTMLAttributes,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { Descendant, Editor } from \"slate\";\nimport { Editable, Slate } from \"slate-react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { useAutosuggestions } from \"../../hooks/use-autosuggestions\";\nimport { useCopilotTextareaEditor } from \"../../hooks/use-copilot-textarea-editor\";\nimport {\n getFullEditorTextWithNewlines,\n getTextAroundCursor,\n} from \"../../lib/get-text-around-cursor\";\nimport { addAutocompletionsToEditor } from \"../../lib/slatejs-edits/add-autocompletions\";\nimport { clearAutocompletionsFromEditor } from \"../../lib/slatejs-edits/clear-autocompletions\";\nimport { replaceEditorText } from \"../../lib/slatejs-edits/replace-text\";\nimport {\n AutosuggestionsBareFunction,\n BaseAutosuggestionsConfig,\n defaultBaseAutosuggestionsConfig,\n} from \"../../types/base\";\nimport { AutosuggestionState } from \"../../types/base/autosuggestion-state\";\nimport { makeRenderElementFunction } from \"./render-element\";\nimport { makeRenderPlaceholderFunction } from \"./render-placeholder\";\n\nexport interface BaseCopilotTextareaProps\n extends TextareaHTMLAttributes<HTMLDivElement> {\n placeholderStyle?: React.CSSProperties;\n suggestionsStyle?: React.CSSProperties;\n value?: string;\n onValueChange?: (value: string) => void;\n autosuggestionsConfig: Partial<BaseAutosuggestionsConfig> & {\n purposePrompt: string;\n };\n}\n\nexport function BaseCopilotTextarea(\n props: BaseCopilotTextareaProps & {\n autosuggestionsFunction: AutosuggestionsBareFunction;\n }\n): JSX.Element {\n const autosuggestionsConfig: BaseAutosuggestionsConfig = {\n ...defaultBaseAutosuggestionsConfig,\n ...props.autosuggestionsConfig,\n };\n\n const valueOnInitialRender = useMemo(() => props.value ?? \"\", []);\n const [lastKnownFullEditorText, setLastKnownFullEditorText] =\n useState(valueOnInitialRender);\n\n const initialValue: Descendant[] = useMemo(() => {\n return [\n {\n type: \"paragraph\",\n children: [{ text: valueOnInitialRender }],\n },\n ];\n }, [valueOnInitialRender]);\n\n const editor = useCopilotTextareaEditor();\n\n const insertText = useCallback(\n (autosuggestion: AutosuggestionState) => {\n Editor.insertText(editor, autosuggestion.text, {\n at: autosuggestion.point,\n });\n },\n [editor]\n );\n\n const {\n currentAutocompleteSuggestion,\n onChangeHandler: onChangeHandlerForAutocomplete,\n onKeyDownHandler: onKeyDownHandlerForAutocomplete,\n } = useAutosuggestions(\n autosuggestionsConfig.debounceTime,\n autosuggestionsConfig.acceptAutosuggestionKey,\n props.autosuggestionsFunction,\n insertText,\n autosuggestionsConfig.disableWhenEmpty\n );\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 renderElementMemoized = useMemo(() => {\n const suggestionStyleAugmented: React.CSSProperties = {\n ...props.suggestionsStyle,\n };\n\n return makeRenderElementFunction(suggestionStyleAugmented);\n }, [props.suggestionsStyle]);\n\n const renderPlaceholderMemoized = useMemo(() => {\n // For some reason slateJS specifies a top value of 0, which makes for strange styling. We override this here.\n const placeholderStyleSlatejsOverrides: React.CSSProperties = {\n top: undefined,\n };\n\n const placeholderStyleAugmented: React.CSSProperties = {\n ...placeholderStyleSlatejsOverrides,\n ...props.placeholderStyle,\n };\n\n return makeRenderPlaceholderFunction(placeholderStyleAugmented);\n }, [props.placeholderStyle]);\n\n // update the editor text, but only when the value changes from outside the component\n useEffect(() => {\n if (props.value === lastKnownFullEditorText) {\n return;\n }\n\n setLastKnownFullEditorText(props.value ?? \"\");\n replaceEditorText(editor, props.value ?? \"\");\n }, [props.value]);\n\n // separate into TextareaHTMLAttributes<HTMLDivElement> and CopilotTextareaProps\n const {\n placeholderStyle,\n value,\n onValueChange,\n autosuggestionsConfig: autosuggestionsConfigFromProps,\n autosuggestionsFunction,\n className,\n ...propsToForward\n } = props;\n\n const moddedClassName = (() => {\n const baseClassName = \"copilot-textarea\";\n const defaultTailwindClassName = \"bg-white overflow-y-auto resize-y\";\n const mergedClassName = twMerge(defaultTailwindClassName, className ?? \"\");\n return `${baseClassName} ${mergedClassName}`;\n })();\n\n return (\n // Add the editable component inside the context.\n <Slate\n editor={editor}\n initialValue={initialValue}\n onChange={(value) => {\n const newEditorState = getTextAroundCursor(editor);\n\n const fullEditorText = newEditorState\n ? newEditorState.textBeforeCursor + newEditorState.textAfterCursor\n : getFullEditorTextWithNewlines(editor); // we don't double-parse the editor. When `newEditorState` is null, we didn't parse the editor yet.\n\n setLastKnownFullEditorText(fullEditorText);\n onChangeHandlerForAutocomplete(newEditorState);\n props.onValueChange?.(fullEditorText);\n }}\n >\n <Editable\n renderElement={renderElementMemoized}\n renderPlaceholder={renderPlaceholderMemoized}\n onKeyDown={onKeyDownHandlerForAutocomplete}\n className={moddedClassName}\n {...propsToForward}\n />\n </Slate>\n );\n}\n"]}
@@ -1,4 +1,4 @@
1
- // src/types/base-autosuggestions-config.tsx
1
+ // src/types/base/base-autosuggestions-config.tsx
2
2
  var defaultBaseAutosuggestionsConfig = {
3
3
  debounceTime: 500,
4
4
  acceptAutosuggestionKey: "Tab",
@@ -7,4 +7,4 @@ var defaultBaseAutosuggestionsConfig = {
7
7
 
8
8
  export { defaultBaseAutosuggestionsConfig };
9
9
  //# sourceMappingURL=out.js.map
10
- //# sourceMappingURL=chunk-5SJM4R4K.mjs.map
10
+ //# sourceMappingURL=chunk-6LKDH2UJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/base/base-autosuggestions-config.tsx"],"names":[],"mappings":";AAOO,IAAM,mCAGT;AAAA,EACF,cAAc;AAAA,EACd,yBAAyB;AAAA,EACzB,kBAAkB;AACpB","sourcesContent":["export interface BaseAutosuggestionsConfig {\n purposePrompt: string;\n debounceTime: number;\n acceptAutosuggestionKey: string;\n disableWhenEmpty: boolean;\n}\n\nexport const defaultBaseAutosuggestionsConfig: Omit<\n BaseAutosuggestionsConfig,\n \"purposePrompt\"\n> = {\n debounceTime: 500,\n acceptAutosuggestionKey: \"Tab\",\n disableWhenEmpty: true,\n};\n"]}
@@ -34,4 +34,4 @@ var SuggestionElement = (props) => {
34
34
 
35
35
  export { makeRenderElementFunction };
36
36
  //# sourceMappingURL=out.js.map
37
- //# sourceMappingURL=chunk-Y5BUWZOI.mjs.map
37
+ //# sourceMappingURL=chunk-6Q4X3YEO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/base-copilot-textarea/render-element.tsx"],"names":[],"mappings":";;;;;;AAUe,cAkBX,YAlBW;AANR,SAAS,0BACd,kBACuB;AACvB,SAAO,CAAC,UAA8B;AACpC,YAAQ,MAAM,QAAQ,MAAM;AAAA,MAC1B,KAAK;AACH,eAAO,oBAAC,mCAAmB,MAAO;AAAA,MACpC,KAAK;AACH,eACE,oBAAC,oDAAsB,QAAtB;AAAA,UAA6B;AAAA,UAAoC;AAAA,IAExE;AAAA,EACF;AACF;AAEA,IAAM,iBAAiB,CAAC,UAA8B;AACpD,SAAO,oBAAC,wCAAQ,MAAM,aAAd;AAAA,IAA2B,gBAAM;AAAA,IAAS;AACpD;AACA,IAAM,oBAAoB,CACxB,UAGG;AACH,SACE,qBAAC,yCACK,MAAM,aADX;AAAA,IAEC,OAAO;AAAA,MACL,WAAW;AAAA,MACX,OAAO;AAAA,OACJ,MAAM;AAAA,IAEX,iBAAiB;AAAA,IAEhB;AAAA,YAAM;AAAA,MACN,MAAM,QAAQ,SAAS,gBAAgB,MAAM,QAAQ;AAAA;AAAA,IACxD;AAEJ","sourcesContent":["import { RenderElementProps } from \"slate-react\";\n\nexport type RenderElementFunction = (props: RenderElementProps) => JSX.Element;\n\nexport function makeRenderElementFunction(\n suggestionsStyle: React.CSSProperties\n): RenderElementFunction {\n return (props: RenderElementProps) => {\n switch (props.element.type) {\n case \"paragraph\":\n return <DefaultElement {...props} />;\n case \"suggestion\":\n return (\n <SuggestionElement {...props} suggestionsStyle={suggestionsStyle} />\n );\n }\n };\n}\n\nconst DefaultElement = (props: RenderElementProps) => {\n return <div {...props.attributes}>{props.children}</div>;\n};\nconst SuggestionElement = (\n props: RenderElementProps & {\n suggestionsStyle: React.CSSProperties;\n }\n) => {\n return (\n <span\n {...props.attributes}\n style={{\n fontStyle: \"italic\",\n color: \"gray\",\n ...props.suggestionsStyle,\n }}\n contentEditable={false}\n >\n {props.children /* https://github.com/ianstormtaylor/slate/issues/3930 */}\n {props.element.type === \"suggestion\" && props.element.content}\n </span>\n );\n};\n"]}
@@ -62,4 +62,4 @@ function useCopilotTextareaEditor() {
62
62
 
63
63
  export { useCopilotTextareaEditor };
64
64
  //# sourceMappingURL=out.js.map
65
- //# sourceMappingURL=chunk-L24ZN4LL.mjs.map
65
+ //# sourceMappingURL=chunk-6SYD77G6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/use-copilot-textarea-editor.tsx"],"names":["editor"],"mappings":";;;;;;AAAA,SAAS,cAAc,eAAe;AACtC,SAAS,iBAAiB;AAC1B,SAAS,eAAe;AAQxB,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 { createEditor, Element } from \"slate\";\nimport { withReact } from \"slate-react\";\nimport { useMemo } from \"react\";\nimport {\n withPartialHistory,\n ShouldSaveToHistory,\n defaultShouldSave,\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,67 @@
1
+ import { __async, __spreadProps, __spreadValues } from './chunk-MRXNTQOX.mjs';
2
+ import { CopilotContext } from '@copilotkit/react-core';
3
+ import { useContext, useCallback } from 'react';
4
+
5
+ function useMakeStandardAutosuggestionFunction(purposePrompt, apiEndpoint, makeSystemPrompt, fewShotMessages, contextCategories, forwardedProps) {
6
+ const { getContextString } = useContext(CopilotContext);
7
+ return useCallback(
8
+ (beforeText, afterText, abortSignal) => __async(this, null, function* () {
9
+ const res = yield retry(() => __async(this, null, function* () {
10
+ return yield fetch(apiEndpoint, {
11
+ method: "POST",
12
+ body: JSON.stringify(__spreadProps(__spreadValues({}, forwardedProps), {
13
+ messages: [
14
+ {
15
+ role: "system",
16
+ content: makeSystemPrompt(
17
+ purposePrompt,
18
+ getContextString(contextCategories)
19
+ )
20
+ },
21
+ ...fewShotMessages,
22
+ {
23
+ role: "user",
24
+ name: "TextAfterCursor",
25
+ content: afterText
26
+ },
27
+ {
28
+ role: "user",
29
+ name: "TextBeforeCursor",
30
+ content: beforeText
31
+ }
32
+ ]
33
+ })),
34
+ signal: abortSignal
35
+ });
36
+ }));
37
+ const json = yield res.json();
38
+ const suggestion = json.choices[0].message.content;
39
+ return suggestion;
40
+ }),
41
+ [
42
+ apiEndpoint,
43
+ makeSystemPrompt,
44
+ fewShotMessages,
45
+ getContextString,
46
+ contextCategories,
47
+ purposePrompt
48
+ ]
49
+ );
50
+ }
51
+ function retry(fn, retriesLeft = 2, interval = 200, backoff = 1.5) {
52
+ return new Promise((resolve, reject) => {
53
+ fn().then(resolve).catch((error) => {
54
+ if (retriesLeft === 1) {
55
+ reject(error);
56
+ return;
57
+ }
58
+ setTimeout(() => {
59
+ retry(fn, retriesLeft - 1, interval * backoff, backoff).then(resolve).catch(reject);
60
+ }, interval);
61
+ });
62
+ });
63
+ }
64
+
65
+ export { useMakeStandardAutosuggestionFunction };
66
+ //# sourceMappingURL=out.js.map
67
+ //# sourceMappingURL=chunk-A3SFEHWZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx"],"names":[],"mappings":";;;;;;;AAAA,SAAS,sBAAsB;AAC/B,SAAS,aAAa,kBAAkB;AAmBjC,SAAS,sCACd,eACA,aACA,kBACA,iBACA,mBACA,gBAC6B;AAC7B,QAAM,EAAE,iBAAiB,IAAI,WAAW,cAAc;AAEtD,SAAO;AAAA,IACL,CAAO,YAAoB,WAAmB,gBAA6B;AACzE,YAAM,MAAM,MAAM,MAAM,MAAY;AAClC,eAAO,MAAM,MAAM,aAAa;AAAA,UAC9B,QAAQ;AAAA,UACR,MAAM,KAAK,UAAU,iCAChB,iBADgB;AAAA,YAEnB,UAAU;AAAA,cACR;AAAA,gBACE,MAAM;AAAA,gBACN,SAAS;AAAA,kBACP;AAAA,kBACA,iBAAiB,iBAAiB;AAAA,gBACpC;AAAA,cACF;AAAA,cACA,GAAG;AAAA,cACH;AAAA,gBACE,MAAM;AAAA,gBACN,MAAM;AAAA,gBACN,SAAS;AAAA,cACX;AAAA,cACA;AAAA,gBACE,MAAM;AAAA,gBACN,MAAM;AAAA,gBACN,SAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF,EAAC;AAAA,UACD,QAAQ;AAAA,QACV,CAAC;AAAA,MACH,EAAC;AAED,YAAM,OAAO,MAAM,IAAI,KAAK;AAC5B,YAAM,aAAa,KAAK,QAAQ,GAAG,QAAQ;AAE3C,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,MACP,IACA,cAAsB,GACtB,WAAmB,KACnB,UAAkB,KACN;AACZ,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,OAAG,EACA,KAAK,OAAO,EACZ,MAAM,CAAC,UAAU;AAChB,UAAI,gBAAgB,GAAG;AACrB,eAAO,KAAK;AACZ;AAAA,MACF;AAEA,iBAAW,MAAM;AACf,cAAM,IAAI,cAAc,GAAG,WAAW,SAAS,OAAO,EACnD,KAAK,OAAO,EACZ,MAAM,MAAM;AAAA,MACjB,GAAG,QAAQ;AAAA,IACb,CAAC;AAAA,EACL,CAAC;AACH","sourcesContent":["import { CopilotContext } from \"@copilotkit/react-core\";\nimport { useCallback, useContext } from \"react\";\nimport {\n AutosuggestionsBareFunction,\n MakeSystemPrompt,\n MinimalChatGPTMessage,\n} from \"../../types\";\n/**\n * Returns a memoized function that sends a request to the specified API endpoint to get an autosuggestion for the user's input.\n * The function takes in the text before and after the cursor, and an abort signal.\n * It sends a POST request to the API endpoint with the messages array containing the system message, few shot messages, and user messages.\n * The function returns the suggestion from the API response.\n *\n * @param purposePrompt - The purpose of the textarea. This is included in the system message.\n * @param apiEndpoint - The API endpoint to send the autosuggestion request to.\n * @param makeSystemMessage - A function that takes in a context string and returns a system message to include in the autosuggestion request.\n * @param fewShotMessages - An array of few shot messages to include in the autosuggestion request.\n * @param contextCategories - The categories of context strings we want to include. By default, we include the (default) \"global\" context category.\n * @returns A memoized function that sends a request to the specified API endpoint to get an autosuggestion for the user's input.\n */\nexport function useMakeStandardAutosuggestionFunction(\n purposePrompt: string,\n apiEndpoint: string,\n makeSystemPrompt: MakeSystemPrompt,\n fewShotMessages: MinimalChatGPTMessage[],\n contextCategories: string[] | undefined,\n forwardedProps?: { [key: string]: any }\n): AutosuggestionsBareFunction {\n const { getContextString } = useContext(CopilotContext);\n\n return useCallback(\n async (beforeText: string, afterText: string, abortSignal: AbortSignal) => {\n const res = await retry(async () => {\n return await fetch(apiEndpoint, {\n method: \"POST\",\n body: JSON.stringify({\n ...forwardedProps,\n messages: [\n {\n role: \"system\",\n content: makeSystemPrompt(\n purposePrompt,\n getContextString(contextCategories)\n ),\n },\n ...fewShotMessages,\n {\n role: \"user\",\n name: \"TextAfterCursor\",\n content: afterText,\n },\n {\n role: \"user\",\n name: \"TextBeforeCursor\",\n content: beforeText,\n },\n ],\n }),\n signal: abortSignal,\n });\n });\n\n const json = await res.json();\n const suggestion = json.choices[0].message.content;\n\n return suggestion;\n },\n [\n apiEndpoint,\n makeSystemPrompt,\n fewShotMessages,\n getContextString,\n contextCategories,\n purposePrompt,\n ]\n );\n}\n\nfunction retry<T>(\n fn: () => Promise<T>,\n retriesLeft: number = 2,\n interval: number = 200,\n backoff: number = 1.5\n): Promise<T> {\n return new Promise((resolve, reject) => {\n fn()\n .then(resolve)\n .catch((error) => {\n if (retriesLeft === 1) {\n reject(error);\n return;\n }\n\n setTimeout(() => {\n retry(fn, retriesLeft - 1, interval * backoff, backoff)\n .then(resolve)\n .catch(reject);\n }, interval);\n });\n });\n}\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=chunk-AZQCUNBV.mjs.map