@copilotkit/react-textarea 0.19.0-alpha.3 → 0.19.0-alpha.4

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 (222) hide show
  1. package/.turbo/turbo-build.log +147 -143
  2. package/CHANGELOG.md +6 -0
  3. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +1870 -33
  4. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs.map +1 -1
  5. package/dist/components/base-copilot-textarea/render-element.mjs +52 -3
  6. package/dist/components/base-copilot-textarea/render-element.mjs.map +1 -1
  7. package/dist/components/base-copilot-textarea/render-placeholder.mjs +46 -3
  8. package/dist/components/base-copilot-textarea/render-placeholder.mjs.map +1 -1
  9. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs +86 -4
  10. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs.map +1 -1
  11. package/dist/components/base-copilot-textarea/use-add-branding-css.mjs +57 -3
  12. package/dist/components/base-copilot-textarea/use-add-branding-css.mjs.map +1 -1
  13. package/dist/components/copilot-textarea/copilot-textarea.mjs +2339 -43
  14. package/dist/components/copilot-textarea/copilot-textarea.mjs.map +1 -1
  15. package/dist/components/hovering-toolbar/hovering-editor-provider.mjs +22 -3
  16. package/dist/components/hovering-toolbar/hovering-editor-provider.mjs.map +1 -1
  17. package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs +125 -3
  18. package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs.map +1 -1
  19. package/dist/components/hovering-toolbar/hovering-toolbar.mjs +1015 -16
  20. package/dist/components/hovering-toolbar/hovering-toolbar.mjs.map +1 -1
  21. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs +721 -10
  22. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs.map +1 -1
  23. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs +734 -11
  24. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs.map +1 -1
  25. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs +734 -12
  26. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs.map +1 -1
  27. package/dist/components/index.mjs +2340 -44
  28. package/dist/components/index.mjs.map +1 -1
  29. package/dist/components/manual-ui/chip-with-icon.mjs +5 -6
  30. package/dist/components/manual-ui/chip-with-icon.mjs.map +1 -1
  31. package/dist/components/source-search-box/source-search-box.mjs +323 -10
  32. package/dist/components/source-search-box/source-search-box.mjs.map +1 -1
  33. package/dist/components/ui/button.mjs +88 -4
  34. package/dist/components/ui/button.mjs.map +1 -1
  35. package/dist/components/ui/card.mjs +53 -7
  36. package/dist/components/ui/card.mjs.map +1 -1
  37. package/dist/components/ui/command.mjs +266 -5
  38. package/dist/components/ui/command.mjs.map +1 -1
  39. package/dist/components/ui/dialog.mjs +164 -4
  40. package/dist/components/ui/dialog.mjs.map +1 -1
  41. package/dist/components/ui/label.mjs +63 -4
  42. package/dist/components/ui/label.mjs.map +1 -1
  43. package/dist/components/ui/separator.mjs +50 -8
  44. package/dist/components/ui/separator.mjs.map +1 -1
  45. package/dist/components/ui/textarea.mjs +48 -7
  46. package/dist/components/ui/textarea.mjs.map +1 -1
  47. package/dist/context/index.mjs +0 -2
  48. package/dist/context/index.mjs.map +1 -1
  49. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs +168 -6
  50. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs.map +1 -1
  51. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs +168 -4
  52. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs.map +1 -1
  53. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs +155 -5
  54. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs.map +1 -1
  55. package/dist/hooks/index.mjs +0 -2
  56. package/dist/hooks/index.mjs.map +1 -1
  57. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs +90 -4
  58. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map +1 -1
  59. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs +143 -4
  60. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs.map +1 -1
  61. package/dist/hooks/misc/use-autosize-textarea.mjs +15 -3
  62. package/dist/hooks/misc/use-autosize-textarea.mjs.map +1 -1
  63. package/dist/index.css +3 -12
  64. package/dist/index.css.map +1 -1
  65. package/dist/index.mjs +2343 -48
  66. package/dist/index.mjs.map +1 -1
  67. package/dist/lib/debouncer.mjs +51 -3
  68. package/dist/lib/debouncer.mjs.map +1 -1
  69. package/dist/lib/editor-to-text.mjs +43 -3
  70. package/dist/lib/editor-to-text.mjs.map +1 -1
  71. package/dist/lib/get-text-around-cursor.mjs +109 -3
  72. package/dist/lib/get-text-around-cursor.mjs.map +1 -1
  73. package/dist/lib/retry.mjs +17 -3
  74. package/dist/lib/retry.mjs.map +1 -1
  75. package/dist/lib/slatejs-edits/add-autocompletions.mjs +25 -3
  76. package/dist/lib/slatejs-edits/add-autocompletions.mjs.map +1 -1
  77. package/dist/lib/slatejs-edits/clear-autocompletions.mjs +23 -3
  78. package/dist/lib/slatejs-edits/clear-autocompletions.mjs.map +1 -1
  79. package/dist/lib/slatejs-edits/replace-text.mjs +27 -3
  80. package/dist/lib/slatejs-edits/replace-text.mjs.map +1 -1
  81. package/dist/lib/slatejs-edits/with-partial-history.mjs +106 -3
  82. package/dist/lib/slatejs-edits/with-partial-history.mjs.map +1 -1
  83. package/dist/lib/stream-promise-flatten.mjs +47 -3
  84. package/dist/lib/stream-promise-flatten.mjs.map +1 -1
  85. package/dist/lib/utils.mjs +71 -3
  86. package/dist/lib/utils.mjs.map +1 -1
  87. package/dist/lib/utils.test.mjs +0 -1
  88. package/dist/lib/utils.test.mjs.map +1 -1
  89. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs +0 -2
  90. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs.map +1 -1
  91. package/dist/types/autosuggestions-config/autosuggestions-config.mjs +312 -9
  92. package/dist/types/autosuggestions-config/autosuggestions-config.mjs.map +1 -1
  93. package/dist/types/autosuggestions-config/editing-api-config.mjs +155 -4
  94. package/dist/types/autosuggestions-config/editing-api-config.mjs.map +1 -1
  95. package/dist/types/autosuggestions-config/index.mjs +313 -10
  96. package/dist/types/autosuggestions-config/index.mjs.map +1 -1
  97. package/dist/types/autosuggestions-config/insertions-api-config.mjs +149 -4
  98. package/dist/types/autosuggestions-config/insertions-api-config.mjs.map +1 -1
  99. package/dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.mjs +71 -3
  100. package/dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.mjs.map +1 -1
  101. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs +0 -2
  102. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs.map +1 -1
  103. package/dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs +0 -2
  104. package/dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs.map +1 -1
  105. package/dist/types/autosuggestions-config/suggestions-api-config.mjs +137 -4
  106. package/dist/types/autosuggestions-config/suggestions-api-config.mjs.map +1 -1
  107. package/dist/types/base/autosuggestion-state.mjs +0 -2
  108. package/dist/types/base/autosuggestion-state.mjs.map +1 -1
  109. package/dist/types/base/autosuggestions-bare-function.mjs +0 -2
  110. package/dist/types/base/autosuggestions-bare-function.mjs.map +1 -1
  111. package/dist/types/base/base-autosuggestions-config.mjs +11 -3
  112. package/dist/types/base/base-autosuggestions-config.mjs.map +1 -1
  113. package/dist/types/base/base-copilot-textarea-props.mjs +0 -2
  114. package/dist/types/base/base-copilot-textarea-props.mjs.map +1 -1
  115. package/dist/types/base/custom-editor.mjs +0 -2
  116. package/dist/types/base/custom-editor.mjs.map +1 -1
  117. package/dist/types/base/editor-autocomplete-state.mjs +17 -4
  118. package/dist/types/base/editor-autocomplete-state.mjs.map +1 -1
  119. package/dist/types/base/index.mjs +11 -4
  120. package/dist/types/base/index.mjs.map +1 -1
  121. package/dist/types/html-copilot-textarea-element.mjs +0 -2
  122. package/dist/types/html-copilot-textarea-element.mjs.map +1 -1
  123. package/dist/types/index.mjs +314 -12
  124. package/dist/types/index.mjs.map +1 -1
  125. package/package.json +3 -3
  126. package/src/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.tsx +2 -1
  127. package/src/components/source-search-box/source-search-box.tsx +6 -9
  128. package/src/components/ui/command.tsx +1 -1
  129. package/dist/chunk-23UHDUUY.mjs +0 -461
  130. package/dist/chunk-23UHDUUY.mjs.map +0 -1
  131. package/dist/chunk-2NURR2DX.mjs +0 -47
  132. package/dist/chunk-2NURR2DX.mjs.map +0 -1
  133. package/dist/chunk-3YJ63D5D.mjs +0 -106
  134. package/dist/chunk-3YJ63D5D.mjs.map +0 -1
  135. package/dist/chunk-4MDDCR32.mjs +0 -107
  136. package/dist/chunk-4MDDCR32.mjs.map +0 -1
  137. package/dist/chunk-4S5ZJH3I.mjs +0 -18
  138. package/dist/chunk-4S5ZJH3I.mjs.map +0 -1
  139. package/dist/chunk-55EGOC5T.mjs +0 -87
  140. package/dist/chunk-55EGOC5T.mjs.map +0 -1
  141. package/dist/chunk-5ARCOTW3.mjs +0 -34
  142. package/dist/chunk-5ARCOTW3.mjs.map +0 -1
  143. package/dist/chunk-5EJ5XOGP.mjs +0 -22
  144. package/dist/chunk-5EJ5XOGP.mjs.map +0 -1
  145. package/dist/chunk-5FO6ISW4.mjs +0 -3
  146. package/dist/chunk-5FO6ISW4.mjs.map +0 -1
  147. package/dist/chunk-A2RRLD23.mjs +0 -69
  148. package/dist/chunk-A2RRLD23.mjs.map +0 -1
  149. package/dist/chunk-CSGFJU3L.mjs +0 -65
  150. package/dist/chunk-CSGFJU3L.mjs.map +0 -1
  151. package/dist/chunk-CZMPLTHF.mjs +0 -20
  152. package/dist/chunk-CZMPLTHF.mjs.map +0 -1
  153. package/dist/chunk-D7SEV5PR.mjs +0 -12
  154. package/dist/chunk-D7SEV5PR.mjs.map +0 -1
  155. package/dist/chunk-DE5K76I2.mjs +0 -3
  156. package/dist/chunk-DE5K76I2.mjs.map +0 -1
  157. package/dist/chunk-F3MHL6ZY.mjs +0 -25
  158. package/dist/chunk-F3MHL6ZY.mjs.map +0 -1
  159. package/dist/chunk-FN7GDKKG.mjs +0 -29
  160. package/dist/chunk-FN7GDKKG.mjs.map +0 -1
  161. package/dist/chunk-H4VKQGVU.mjs +0 -3
  162. package/dist/chunk-H4VKQGVU.mjs.map +0 -1
  163. package/dist/chunk-HAFHLU4N.mjs +0 -55
  164. package/dist/chunk-HAFHLU4N.mjs.map +0 -1
  165. package/dist/chunk-IU3WTXLQ.mjs +0 -3
  166. package/dist/chunk-IU3WTXLQ.mjs.map +0 -1
  167. package/dist/chunk-IXJ2HCOA.mjs +0 -101
  168. package/dist/chunk-IXJ2HCOA.mjs.map +0 -1
  169. package/dist/chunk-JAFCXEPU.mjs +0 -10
  170. package/dist/chunk-JAFCXEPU.mjs.map +0 -1
  171. package/dist/chunk-KCHYD3EB.mjs +0 -107
  172. package/dist/chunk-KCHYD3EB.mjs.map +0 -1
  173. package/dist/chunk-KGKLUWKW.mjs +0 -47
  174. package/dist/chunk-KGKLUWKW.mjs.map +0 -1
  175. package/dist/chunk-L7VVZH4Q.mjs +0 -3
  176. package/dist/chunk-L7VVZH4Q.mjs.map +0 -1
  177. package/dist/chunk-LNAIMEB2.mjs +0 -34
  178. package/dist/chunk-LNAIMEB2.mjs.map +0 -1
  179. package/dist/chunk-MMVDU6DF.mjs +0 -3
  180. package/dist/chunk-MMVDU6DF.mjs.map +0 -1
  181. package/dist/chunk-MPME5BW2.mjs +0 -59
  182. package/dist/chunk-MPME5BW2.mjs.map +0 -1
  183. package/dist/chunk-MRXNTQOX.mjs +0 -55
  184. package/dist/chunk-MRXNTQOX.mjs.map +0 -1
  185. package/dist/chunk-ND5PXTAW.mjs +0 -17
  186. package/dist/chunk-ND5PXTAW.mjs.map +0 -1
  187. package/dist/chunk-NKW5OU2S.mjs +0 -33
  188. package/dist/chunk-NKW5OU2S.mjs.map +0 -1
  189. package/dist/chunk-O5OWT5GE.mjs +0 -114
  190. package/dist/chunk-O5OWT5GE.mjs.map +0 -1
  191. package/dist/chunk-OD7ZMOVE.mjs +0 -45
  192. package/dist/chunk-OD7ZMOVE.mjs.map +0 -1
  193. package/dist/chunk-OELUUJZY.mjs +0 -16
  194. package/dist/chunk-OELUUJZY.mjs.map +0 -1
  195. package/dist/chunk-OS2YW2UX.mjs +0 -201
  196. package/dist/chunk-OS2YW2UX.mjs.map +0 -1
  197. package/dist/chunk-QL2GYGG5.mjs +0 -19
  198. package/dist/chunk-QL2GYGG5.mjs.map +0 -1
  199. package/dist/chunk-RQHOUUXQ.mjs +0 -29
  200. package/dist/chunk-RQHOUUXQ.mjs.map +0 -1
  201. package/dist/chunk-U5GM2PRT.mjs +0 -44
  202. package/dist/chunk-U5GM2PRT.mjs.map +0 -1
  203. package/dist/chunk-UHD44NC5.mjs +0 -101
  204. package/dist/chunk-UHD44NC5.mjs.map +0 -1
  205. package/dist/chunk-VBIJPE3H.mjs +0 -108
  206. package/dist/chunk-VBIJPE3H.mjs.map +0 -1
  207. package/dist/chunk-WADHCMPK.mjs +0 -3
  208. package/dist/chunk-WADHCMPK.mjs.map +0 -1
  209. package/dist/chunk-WJHSY5T6.mjs +0 -3
  210. package/dist/chunk-WJHSY5T6.mjs.map +0 -1
  211. package/dist/chunk-WJYQWL4I.mjs +0 -27
  212. package/dist/chunk-WJYQWL4I.mjs.map +0 -1
  213. package/dist/chunk-XDT7BF3V.mjs +0 -81
  214. package/dist/chunk-XDT7BF3V.mjs.map +0 -1
  215. package/dist/chunk-XHUMROEY.mjs +0 -91
  216. package/dist/chunk-XHUMROEY.mjs.map +0 -1
  217. package/dist/chunk-YQU7WG7T.mjs +0 -83
  218. package/dist/chunk-YQU7WG7T.mjs.map +0 -1
  219. package/dist/chunk-YTOPHPSG.mjs +0 -45
  220. package/dist/chunk-YTOPHPSG.mjs.map +0 -1
  221. package/dist/chunk-YW3REYX6.mjs +0 -23
  222. package/dist/chunk-YW3REYX6.mjs.map +0 -1
@@ -1,81 +0,0 @@
1
- import { ChatlikeApiEndpoint } from './chunk-5ARCOTW3.mjs';
2
-
3
- // src/types/autosuggestions-config/insertions-api-config.tsx
4
- var defaultInsertionsMakeSystemPrompt = (textareaPurpose, contextString) => {
5
- return `You are a versatile writing assistant.
6
-
7
- The user is writing some text.
8
- The purpose is: "${textareaPurpose}"
9
-
10
- The user also provides you with a prompt for INSERTIONS into the text they are writing.
11
- Your job is to come up with an INSERTION into the text that the user would like AS BEST YOU CAN.
12
- Only guess a SHORT distance ahead. Usually 1 sentence, or at most 1 paragraph.
13
-
14
- Adjust yourself to the user's style and implied intent.
15
-
16
- The user will provide the text before and after the cursor, as well as the insertion prompt. You should use this to infer the best relevant insertion.
17
- <TextAfterCursor>
18
- <TextBeforeCursor>
19
- <InsertionPrompt>
20
- <YourSuggestion>
21
-
22
- If we need to add a whitespace character to the suggested text, make sure to explicitly add it in.
23
-
24
- The following external context is also provided. Use it to help you make better suggestions!!!
25
- \`\`\`
26
- ${contextString}
27
- \`\`\`
28
- `;
29
- };
30
- var defaultInsertionsFewShotMessages = [
31
- {
32
- role: "user",
33
- name: "TextAfterCursor",
34
- content: "While I was there I also picked up some apples, oranges, and bananas."
35
- },
36
- {
37
- role: "user",
38
- name: "TextBeforeCursor",
39
- content: "This morning I woke up and went straight to the grocery store."
40
- },
41
- {
42
- role: "user",
43
- name: "InsertionPrompt",
44
- content: "I bought a big watermelon"
45
- },
46
- {
47
- role: "assistant",
48
- content: " When I arrived I went straight to the produce section and picked out a big watermelon. "
49
- },
50
- {
51
- role: "user",
52
- name: "TextAfterCursor",
53
- content: "and (iii) to the appointment of the Equityholders' Representative pursuant to Section 10.7 of the Merger Agreement and to the provisions thereof."
54
- },
55
- {
56
- role: "user",
57
- name: "TextBeforeCursor",
58
- content: `The Optionholder, in the Optionholder's capacity as a holder of vested Options, hereby irrevocably and unconditionally agrees: (i) that the Optionholder shall be deemed an "Equityholder" under the Merger Agreement and shall be entitled to the rights and benefits, and subject to the obligations, of an "Equityholder" thereunder;`
59
- },
60
- {
61
- role: "user",
62
- name: "InsertionPrompt",
63
- content: "add section about the optionholder's pro rata share"
64
- },
65
- {
66
- role: "assistant",
67
- content: ` (ii) that, for purposes of this Agreement and the Merger Agreement, the applicable percentage set forth opposite the name of the Optionholder in the Distribution Waterfall shall be such the Optionholder's "Pro Rata Share"; `
68
- }
69
- ];
70
- var defaultInsertionsApiConfig = {
71
- apiEndpoint: ChatlikeApiEndpoint.standardOpenAIEndpoint(
72
- "/api/copilotkit_chatlike"
73
- ),
74
- makeSystemPrompt: defaultInsertionsMakeSystemPrompt,
75
- fewShotMessages: defaultInsertionsFewShotMessages,
76
- forwardedParams: void 0
77
- };
78
-
79
- export { defaultInsertionsApiConfig, defaultInsertionsFewShotMessages, defaultInsertionsMakeSystemPrompt };
80
- //# sourceMappingURL=out.js.map
81
- //# sourceMappingURL=chunk-XDT7BF3V.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types/autosuggestions-config/insertions-api-config.tsx"],"names":[],"mappings":";;;;;AAWO,IAAM,oCAAsD,CACjE,iBACA,kBACG;AACH,SAAO;AAAA;AAAA;AAAA,mBAGW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkBlB;AAAA;AAAA;AAGF;AAEO,IAAM,mCAA4D;AAAA,EACvE;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SACE;AAAA,EACJ;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,SACE;AAAA,EACJ;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SACE;AAAA,EACJ;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SACE;AAAA,EACJ;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,SACE;AAAA,EACJ;AACF;AAEO,IAAM,6BAAkD;AAAA,EAC7D,aAAa,oBAAoB;AAAA,IAC/B;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,iBAAiB;AACnB","sourcesContent":["import { ChatlikeApiEndpoint } from \"./subtypes/chatlike-api-endpoint\";\nimport { MakeSystemPrompt } from \"./subtypes/make-system-prompt\";\nimport { MinimalChatGPTMessage } from \"./subtypes/minimal-chat-gpt-message\";\n\nexport interface InsertionsApiConfig {\n apiEndpoint: ChatlikeApiEndpoint;\n makeSystemPrompt: MakeSystemPrompt;\n fewShotMessages: MinimalChatGPTMessage[];\n forwardedParams: { [key: string]: any } | undefined;\n}\n\nexport const defaultInsertionsMakeSystemPrompt: MakeSystemPrompt = (\n textareaPurpose,\n contextString\n) => {\n return `You are a versatile writing assistant.\n \nThe user is writing some text.\nThe purpose is: \\\"${textareaPurpose}\\\"\n\nThe user also provides you with a prompt for INSERTIONS into the text they are writing. \nYour job is to come up with an INSERTION into the text that the user would like AS BEST YOU CAN.\nOnly guess a SHORT distance ahead. Usually 1 sentence, or at most 1 paragraph.\n\nAdjust yourself to the user's style and implied intent.\n\nThe user will provide the text before and after the cursor, as well as the insertion prompt. You should use this to infer the best relevant insertion.\n<TextAfterCursor>\n<TextBeforeCursor>\n<InsertionPrompt>\n<YourSuggestion>\n\nIf we need to add a whitespace character to the suggested text, make sure to explicitly add it in.\n\nThe following external context is also provided. Use it to help you make better suggestions!!!\n\\`\\`\\`\n${contextString}\n\\`\\`\\`\n`;\n};\n\nexport const defaultInsertionsFewShotMessages: MinimalChatGPTMessage[] = [\n {\n role: \"user\",\n name: \"TextAfterCursor\",\n content:\n \"While I was there I also picked up some apples, oranges, and bananas.\",\n },\n {\n role: \"user\",\n name: \"TextBeforeCursor\",\n content: \"This morning I woke up and went straight to the grocery store.\",\n },\n {\n role: \"user\",\n name: \"InsertionPrompt\",\n content: \"I bought a big watermelon\",\n },\n {\n role: \"assistant\",\n content:\n \" When I arrived I went straight to the produce section and picked out a big watermelon. \",\n },\n {\n role: \"user\",\n name: \"TextAfterCursor\",\n content:\n \"and (iii) to the appointment of the Equityholders' Representative pursuant to Section 10.7 of the Merger Agreement and to the provisions thereof.\",\n },\n {\n role: \"user\",\n name: \"TextBeforeCursor\",\n content:\n 'The Optionholder, in the Optionholder\\'s capacity as a holder of vested Options, hereby irrevocably and unconditionally agrees: (i) that the Optionholder shall be deemed an \"Equityholder\" under the Merger Agreement and shall be entitled to the rights and benefits, and subject to the obligations, of an \"Equityholder\" thereunder;',\n },\n {\n role: \"user\",\n name: \"InsertionPrompt\",\n content: \"add section about the optionholder's pro rata share\",\n },\n {\n role: \"assistant\",\n content:\n ' (ii) that, for purposes of this Agreement and the Merger Agreement, the applicable percentage set forth opposite the name of the Optionholder in the Distribution Waterfall shall be such the Optionholder\\'s \"Pro Rata Share\"; ',\n },\n];\n\nexport const defaultInsertionsApiConfig: InsertionsApiConfig = {\n apiEndpoint: ChatlikeApiEndpoint.standardOpenAIEndpoint(\n \"/api/copilotkit_chatlike\"\n ),\n makeSystemPrompt: defaultInsertionsMakeSystemPrompt,\n fewShotMessages: defaultInsertionsFewShotMessages,\n forwardedParams: undefined,\n};\n"]}
@@ -1,91 +0,0 @@
1
- import { __objRest, __spreadProps, __spreadValues } from './chunk-MRXNTQOX.mjs';
2
- import { cx, css } from '@emotion/css';
3
- import React from 'react';
4
- import ReactDOM from 'react-dom';
5
- import { jsx } from 'react/jsx-runtime';
6
-
7
- var Button = React.forwardRef(
8
- (_a, ref) => {
9
- var _b = _a, {
10
- className,
11
- active,
12
- reversed
13
- } = _b, props = __objRest(_b, [
14
- "className",
15
- "active",
16
- "reversed"
17
- ]);
18
- return /* @__PURE__ */ jsx("span", __spreadProps(__spreadValues({}, props), {
19
- ref,
20
- className: cx(
21
- className,
22
- css`
23
- cursor: pointer;
24
- color: ${reversed ? active ? "white" : "#aaa" : active ? "black" : "#ccc"};
25
- `
26
- )
27
- }));
28
- }
29
- );
30
- var Icon = React.forwardRef(
31
- (_a, ref) => {
32
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
33
- return /* @__PURE__ */ jsx("span", __spreadProps(__spreadValues({}, props), {
34
- ref,
35
- className: cx(
36
- "material-icons",
37
- className,
38
- css`
39
- font-size: 18px;
40
- vertical-align: text-bottom;
41
- `
42
- )
43
- }));
44
- }
45
- );
46
- var Menu = React.forwardRef(
47
- (_a, ref) => {
48
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
49
- return /* @__PURE__ */ jsx("div", __spreadProps(__spreadValues({}, props), {
50
- "data-test-id": "menu",
51
- ref,
52
- className: cx(
53
- className,
54
- css`
55
- & > * {
56
- display: inline-block;
57
- }
58
-
59
- & > * + * {
60
- margin-left: 15px;
61
- }
62
- `
63
- )
64
- }));
65
- }
66
- );
67
- var Portal = ({ children }) => {
68
- return typeof document === "object" ? ReactDOM.createPortal(children, document.body) : null;
69
- };
70
- var Toolbar = React.forwardRef(
71
- (_a, ref) => {
72
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
73
- return /* @__PURE__ */ jsx(Menu, __spreadProps(__spreadValues({}, props), {
74
- ref,
75
- className: cx(
76
- className,
77
- css`
78
- position: relative;
79
- padding: 1px 18px 17px;
80
- margin: 0 -20px;
81
- border-bottom: 2px solid #eee;
82
- margin-bottom: 20px;
83
- `
84
- )
85
- }));
86
- }
87
- );
88
-
89
- export { Button, Icon, Menu, Portal, Toolbar };
90
- //# sourceMappingURL=out.js.map
91
- //# sourceMappingURL=chunk-XHUMROEY.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/hovering-toolbar/hovering-toolbar-components.tsx"],"names":[],"mappings":";;;;;;;AAAA,SAAS,KAAK,UAAU;AACxB,OAAO,WAAuC;AAC9C,OAAO,cAAc;AAsBjB;AAfG,IAAM,SAAS,MAAM;AAAA,EAC1B,CACE,IAWA,QACA;AAZA,iBACE;AAAA;AAAA,MACA;AAAA,MACA;AAAA,IAdN,IAWI,IAIK,kBAJL,IAIK;AAAA,MAHH;AAAA,MACA;AAAA,MACA;AAAA;AAUF,+BAAC,yCACK,QADL;AAAA,MAEC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA;AAAA,mBAEW,WACL,SACE,UACA,SACF,SACA,UACA;AAAA;AAAA,MAER;AAAA,MACF;AAAA;AAEJ;AAEO,IAAM,OAAO,MAAM;AAAA,EACxB,CACE,IACA,QACA;AAFA,iBAAE,YA9CN,IA8CI,IAAgB,kBAAhB,IAAgB,CAAd;AAGF,+BAAC,yCACK,QADL;AAAA,MAEC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA;AAAA;AAAA;AAAA,MAIF;AAAA,MACF;AAAA;AAEJ;AAEO,IAAM,OAAO,MAAM;AAAA,EACxB,CACE,IACA,QACA;AAFA,iBAAE,YAlEN,IAkEI,IAAgB,kBAAhB,IAAgB,CAAd;AAGF,+BAAC,wCACK,QADL;AAAA,MAEC,gBAAa;AAAA,MACb;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASF;AAAA,MACF;AAAA;AAEJ;AACO,IAAM,SAAS,CAAC,EAAE,SAAS,MAAqC;AACrE,SAAO,OAAO,aAAa,WACvB,SAAS,aAAa,UAAU,SAAS,IAAI,IAC7C;AACN;AAEO,IAAM,UAAU,MAAM;AAAA,EAC3B,CACE,IACA,QACA;AAFA,iBAAE,YAhGN,IAgGI,IAAgB,kBAAhB,IAAgB,CAAd;AAGF,+BAAC,uCACK,QADL;AAAA,MAEC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOF;AAAA,MACF;AAAA;AAEJ","sourcesContent":["import { css, cx } from \"@emotion/css\";\nimport React, { PropsWithChildren, Ref } from \"react\";\nimport ReactDOM from \"react-dom\";\n\ninterface BaseProps {\n className: string;\n [key: string]: unknown;\n}\n\nexport const Button = React.forwardRef(\n (\n {\n className,\n active,\n reversed,\n ...props\n }: PropsWithChildren<\n {\n active: boolean;\n reversed: boolean;\n } & BaseProps\n >,\n ref: Ref<HTMLSpanElement | null>\n ) => (\n <span\n {...props}\n ref={ref as Ref<HTMLSpanElement>}\n className={cx(\n className,\n css`\n cursor: pointer;\n color: ${reversed\n ? active\n ? \"white\"\n : \"#aaa\"\n : active\n ? \"black\"\n : \"#ccc\"};\n `\n )}\n />\n )\n);\n\nexport const Icon = React.forwardRef(\n (\n { className, ...props }: PropsWithChildren<BaseProps>,\n ref: Ref<HTMLSpanElement | null>\n ) => (\n <span\n {...props}\n ref={ref as Ref<HTMLSpanElement>}\n className={cx(\n \"material-icons\",\n className,\n css`\n font-size: 18px;\n vertical-align: text-bottom;\n `\n )}\n />\n )\n);\n\nexport const Menu = React.forwardRef(\n (\n { className, ...props }: PropsWithChildren<BaseProps>,\n ref: Ref<HTMLDivElement | null>\n ) => (\n <div\n {...props}\n data-test-id=\"menu\"\n ref={ref as Ref<HTMLDivElement>}\n className={cx(\n className,\n css`\n & > * {\n display: inline-block;\n }\n\n & > * + * {\n margin-left: 15px;\n }\n `\n )}\n />\n )\n);\nexport const Portal = ({ children }: { children: React.ReactNode }) => {\n return typeof document === \"object\"\n ? ReactDOM.createPortal(children, document.body)\n : null;\n};\n\nexport const Toolbar = React.forwardRef(\n (\n { className, ...props }: PropsWithChildren<BaseProps>,\n ref?: Ref<HTMLDivElement>\n ) => (\n <Menu\n {...props}\n ref={ref}\n className={cx(\n className,\n css`\n position: relative;\n padding: 1px 18px 17px;\n margin: 0 -20px;\n border-bottom: 2px solid #eee;\n margin-bottom: 20px;\n `\n )}\n />\n )\n);\n"]}
@@ -1,83 +0,0 @@
1
- import { replaceEditorText } from './chunk-RQHOUUXQ.mjs';
2
- import { getFullEditorTextWithNewlines } from './chunk-IXJ2HCOA.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-YQU7WG7T.mjs.map
@@ -1 +0,0 @@
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,45 +0,0 @@
1
- import { Element } from 'slate';
2
-
3
- // src/lib/editor-to-text.ts
4
- function nodeChildrenToTextComponents(editor, nodes) {
5
- const indeciesOfInlineElements = new Set(
6
- nodes.map((node, index) => {
7
- if (Element.isElement(node) && editor.isInline(node)) {
8
- return index;
9
- }
10
- return -1;
11
- }).filter((index) => index !== -1)
12
- );
13
- const nonIgnorableItems = nodes.filter((node, index) => {
14
- const isInline = indeciesOfInlineElements.has(index);
15
- if (isInline) {
16
- return false;
17
- }
18
- const isNeighbourOfInline = indeciesOfInlineElements.has(index - 1) || indeciesOfInlineElements.has(index + 1);
19
- if (isNeighbourOfInline) {
20
- return node.text !== "";
21
- }
22
- return true;
23
- });
24
- return nonIgnorableItems.map((node) => {
25
- if (Element.isElement(node)) {
26
- switch (node.type) {
27
- case "paragraph":
28
- return nodeChildrenToTextComponents(editor, node.children);
29
- case "suggestion":
30
- return [];
31
- }
32
- } else {
33
- return [node];
34
- }
35
- }).reduce((acc, val) => acc.concat(val), []);
36
- }
37
- var editorToText = (editor) => {
38
- const flattened = nodeChildrenToTextComponents(editor, editor.children);
39
- const text = flattened.map((textComponent) => textComponent.text).join("\n");
40
- return text;
41
- };
42
-
43
- export { editorToText };
44
- //# sourceMappingURL=out.js.map
45
- //# sourceMappingURL=chunk-YTOPHPSG.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/editor-to-text.ts"],"names":[],"mappings":";AAAA,SAAiC,eAAe;AAKhD,SAAS,6BACP,QACA,OACuB;AAEvB,QAAM,2BAA2B,IAAI;AAAA,IACnC,MACG,IAAI,CAAC,MAAM,UAAU;AACpB,UAAI,QAAQ,UAAU,IAAI,KAAK,OAAO,SAAS,IAAI,GAAG;AACpD,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT,CAAC,EACA,OAAO,CAAC,UAAU,UAAU,EAAE;AAAA,EACnC;AAIA,QAAM,oBAAoB,MAAM,OAAO,CAAC,MAAM,UAAU;AACtD,UAAM,WAAW,yBAAyB,IAAI,KAAK;AACnD,QAAI,UAAU;AACZ,aAAO;AAAA,IACT;AAEA,UAAM,sBACJ,yBAAyB,IAAI,QAAQ,CAAC,KACtC,yBAAyB,IAAI,QAAQ,CAAC;AACxC,QAAI,qBAAqB;AACvB,aAAQ,KAAa,SAAS;AAAA,IAChC;AAEA,WAAO;AAAA,EACT,CAAC;AAED,SAAO,kBACJ,IAAI,CAAC,SAAS;AACb,QAAI,QAAQ,UAAU,IAAI,GAAG;AAC3B,cAAQ,KAAK,MAAM;AAAA,QACjB,KAAK;AACH,iBAAO,6BAA6B,QAAQ,KAAK,QAAQ;AAAA,QAC3D,KAAK;AACH,iBAAO,CAAC;AAAA,MACZ;AAAA,IACF,OAAO;AACL,aAAO,CAAC,IAAI;AAAA,IACd;AAAA,EACF,CAAC,EACA,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC;AAC7C;AAEO,IAAM,eAAe,CAC1B,WACG;AACH,QAAM,YAAY,6BAA6B,QAAQ,OAAO,QAAQ;AAEtE,QAAM,OAAO,UAAU,IAAI,CAAC,kBAAkB,cAAc,IAAI,EAAE,KAAK,IAAI;AAE3E,SAAO;AACT","sourcesContent":["import { BaseEditor, Descendant, Element } from \"slate\";\nimport { HistoryEditor } from \"slate-history\";\nimport { ReactEditor } from \"slate-react\";\nimport { SuggestionAwareText } from \"../types/base/custom-editor\";\n\nfunction nodeChildrenToTextComponents(\n editor: BaseEditor & ReactEditor & HistoryEditor,\n nodes: Descendant[]\n): SuggestionAwareText[] {\n // find inlineable elements\n const indeciesOfInlineElements = new Set(\n nodes\n .map((node, index) => {\n if (Element.isElement(node) && editor.isInline(node)) {\n return index;\n }\n return -1;\n })\n .filter((index) => index !== -1)\n );\n\n // ignorable elements = inline elements,\n // or neighbors of inline elements that are {text: \"\"}\n const nonIgnorableItems = nodes.filter((node, index) => {\n const isInline = indeciesOfInlineElements.has(index);\n if (isInline) {\n return false;\n }\n\n const isNeighbourOfInline =\n indeciesOfInlineElements.has(index - 1) ||\n indeciesOfInlineElements.has(index + 1);\n if (isNeighbourOfInline) {\n return (node as any).text !== \"\";\n }\n\n return true;\n });\n\n return nonIgnorableItems\n .map((node) => {\n if (Element.isElement(node)) {\n switch (node.type) {\n case \"paragraph\":\n return nodeChildrenToTextComponents(editor, node.children);\n case \"suggestion\":\n return [];\n }\n } else {\n return [node];\n }\n })\n .reduce((acc, val) => acc.concat(val), []);\n}\n\nexport const editorToText = (\n editor: BaseEditor & ReactEditor & HistoryEditor\n) => {\n const flattened = nodeChildrenToTextComponents(editor, editor.children);\n\n const text = flattened.map((textComponent) => textComponent.text).join(\"\\n\");\n\n return text;\n};\n"]}
@@ -1,23 +0,0 @@
1
- import { createContext, useState, useContext } from 'react';
2
- import { jsx } from 'react/jsx-runtime';
3
-
4
- // src/components/hovering-toolbar/hovering-editor-provider.tsx
5
- var HoveringEditorContext = createContext({
6
- isDisplayed: false,
7
- setIsDisplayed: () => {
8
- }
9
- });
10
- var HoveringEditorProvider = ({
11
- children
12
- }) => {
13
- const [isDisplayed, setIsDisplayed] = useState(false);
14
- return /* @__PURE__ */ jsx(HoveringEditorContext.Provider, {
15
- value: { isDisplayed, setIsDisplayed },
16
- children
17
- });
18
- };
19
- var useHoveringEditorContext = () => useContext(HoveringEditorContext);
20
-
21
- export { HoveringEditorProvider, useHoveringEditorContext };
22
- //# sourceMappingURL=out.js.map
23
- //# sourceMappingURL=chunk-YW3REYX6.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/hovering-toolbar/hovering-editor-provider.tsx"],"names":[],"mappings":";AAAA,SAAgB,eAAe,UAAU,kBAA6B;AAsBlE;AAfJ,IAAM,wBAAwB,cAA0C;AAAA,EACtE,aAAa;AAAA,EACb,gBAAgB,MAAM;AAAA,EAAC;AACzB,CAAC;AAMM,IAAM,yBAAyB,CAAC;AAAA,EACrC;AACF,MAAmC;AACjC,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AAEpD,SACE,oBAAC,sBAAsB,UAAtB;AAAA,IAA+B,OAAO,EAAE,aAAa,eAAe;AAAA,IAClE;AAAA,GACH;AAEJ;AAEO,IAAM,2BAA2B,MAAM,WAAW,qBAAqB","sourcesContent":["import React, { createContext, useState, useContext, ReactNode } from \"react\";\n\ninterface HoveringEditorContextProps {\n isDisplayed: boolean;\n setIsDisplayed: (value: boolean) => void;\n}\n\nconst HoveringEditorContext = createContext<HoveringEditorContextProps>({\n isDisplayed: false,\n setIsDisplayed: () => {},\n});\n\ninterface HoveringEditorProviderProps {\n children: ReactNode;\n}\n\nexport const HoveringEditorProvider = ({\n children,\n}: HoveringEditorProviderProps) => {\n const [isDisplayed, setIsDisplayed] = useState(false);\n\n return (\n <HoveringEditorContext.Provider value={{ isDisplayed, setIsDisplayed }}>\n {children}\n </HoveringEditorContext.Provider>\n );\n};\n\nexport const useHoveringEditorContext = () => useContext(HoveringEditorContext);\n"]}