@copilotkit/react-textarea 0.21.0-alpha.0 → 0.21.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. package/.turbo/turbo-build.log +414 -252
  2. package/CHANGELOG.md +22 -0
  3. package/dist/chunk-2NURR2DX.mjs +16 -8
  4. package/dist/chunk-2NURR2DX.mjs.map +1 -1
  5. package/dist/chunk-463BFNUP.mjs +16 -5
  6. package/dist/chunk-463BFNUP.mjs.map +1 -1
  7. package/dist/{chunk-YXA3UPMI.mjs → chunk-4ENJ4VF6.mjs} +59 -23
  8. package/dist/chunk-4ENJ4VF6.mjs.map +1 -0
  9. package/dist/chunk-4S5ZJH3I.mjs +3 -2
  10. package/dist/chunk-4S5ZJH3I.mjs.map +1 -1
  11. package/dist/chunk-5EJ5XOGP.mjs +16 -8
  12. package/dist/chunk-5EJ5XOGP.mjs.map +1 -1
  13. package/dist/chunk-5FO6ISW4.mjs +0 -2
  14. package/dist/chunk-5FO6ISW4.mjs.map +1 -1
  15. package/dist/{chunk-5DU2QDHZ.mjs → chunk-7JO276KU.mjs} +9 -5
  16. package/dist/chunk-7JO276KU.mjs.map +1 -0
  17. package/dist/chunk-AXN37AHC.mjs +5 -2
  18. package/dist/chunk-AXN37AHC.mjs.map +1 -1
  19. package/dist/chunk-CSGFJU3L.mjs +11 -6
  20. package/dist/chunk-CSGFJU3L.mjs.map +1 -1
  21. package/dist/chunk-DE5K76I2.mjs +0 -2
  22. package/dist/chunk-DE5K76I2.mjs.map +1 -1
  23. package/dist/chunk-DYGPLRY3.mjs +15 -7
  24. package/dist/chunk-DYGPLRY3.mjs.map +1 -1
  25. package/dist/chunk-F2TIBXML.mjs +19 -7
  26. package/dist/chunk-F2TIBXML.mjs.map +1 -1
  27. package/dist/chunk-F3MHL6ZY.mjs +4 -4
  28. package/dist/chunk-F3MHL6ZY.mjs.map +1 -1
  29. package/dist/{chunk-O7G7E3E3.mjs → chunk-F4WZCQG6.mjs} +35 -13
  30. package/dist/chunk-F4WZCQG6.mjs.map +1 -0
  31. package/dist/chunk-GCMQHIRF.mjs +6 -3
  32. package/dist/chunk-GCMQHIRF.mjs.map +1 -1
  33. package/dist/chunk-H4VKQGVU.mjs +0 -2
  34. package/dist/chunk-H4VKQGVU.mjs.map +1 -1
  35. package/dist/chunk-IU3WTXLQ.mjs +0 -2
  36. package/dist/chunk-IU3WTXLQ.mjs.map +1 -1
  37. package/dist/chunk-IXJ2HCOA.mjs +14 -4
  38. package/dist/chunk-IXJ2HCOA.mjs.map +1 -1
  39. package/dist/chunk-JAFCXEPU.mjs +6 -3
  40. package/dist/chunk-JAFCXEPU.mjs.map +1 -1
  41. package/dist/{chunk-24SYR4JB.mjs → chunk-JHLXWI44.mjs} +25 -11
  42. package/dist/chunk-JHLXWI44.mjs.map +1 -0
  43. package/dist/chunk-JHTAOLEW.mjs +5 -2
  44. package/dist/chunk-JHTAOLEW.mjs.map +1 -1
  45. package/dist/chunk-KCHYD3EB.mjs +6 -5
  46. package/dist/chunk-KCHYD3EB.mjs.map +1 -1
  47. package/dist/chunk-KGKLUWKW.mjs +15 -6
  48. package/dist/chunk-KGKLUWKW.mjs.map +1 -1
  49. package/dist/chunk-L7VVZH4Q.mjs +0 -2
  50. package/dist/chunk-L7VVZH4Q.mjs.map +1 -1
  51. package/dist/chunk-LNAIMEB2.mjs +9 -4
  52. package/dist/chunk-LNAIMEB2.mjs.map +1 -1
  53. package/dist/{chunk-KLROO6ID.mjs → chunk-LRXRD5KU.mjs} +24 -12
  54. package/dist/chunk-LRXRD5KU.mjs.map +1 -0
  55. package/dist/chunk-MMVDU6DF.mjs +0 -2
  56. package/dist/chunk-MMVDU6DF.mjs.map +1 -1
  57. package/dist/chunk-MPME5BW2.mjs +4 -4
  58. package/dist/chunk-MPME5BW2.mjs.map +1 -1
  59. package/dist/chunk-MRXNTQOX.mjs +6 -2
  60. package/dist/chunk-MRXNTQOX.mjs.map +1 -1
  61. package/dist/chunk-ND5PXTAW.mjs +4 -4
  62. package/dist/chunk-ND5PXTAW.mjs.map +1 -1
  63. package/dist/chunk-NKW5OU2S.mjs +6 -3
  64. package/dist/chunk-NKW5OU2S.mjs.map +1 -1
  65. package/dist/chunk-O5OWT5GE.mjs +23 -8
  66. package/dist/chunk-O5OWT5GE.mjs.map +1 -1
  67. package/dist/chunk-OD7ZMOVE.mjs +11 -7
  68. package/dist/chunk-OD7ZMOVE.mjs.map +1 -1
  69. package/dist/chunk-OELUUJZY.mjs +10 -4
  70. package/dist/chunk-OELUUJZY.mjs.map +1 -1
  71. package/dist/chunk-QJDMIGLU.mjs +12 -4
  72. package/dist/chunk-QJDMIGLU.mjs.map +1 -1
  73. package/dist/chunk-RQHOUUXQ.mjs +4 -4
  74. package/dist/chunk-RQHOUUXQ.mjs.map +1 -1
  75. package/dist/chunk-RR6OQGTI.mjs +5 -2
  76. package/dist/chunk-RR6OQGTI.mjs.map +1 -1
  77. package/dist/chunk-S6JUGJK2.mjs +3 -2
  78. package/dist/chunk-S6JUGJK2.mjs.map +1 -1
  79. package/dist/{chunk-63FSISXT.mjs → chunk-TIBMW3DC.mjs} +12 -7
  80. package/dist/chunk-TIBMW3DC.mjs.map +1 -0
  81. package/dist/chunk-UHD44NC5.mjs +17 -7
  82. package/dist/chunk-UHD44NC5.mjs.map +1 -1
  83. package/dist/chunk-WADHCMPK.mjs +0 -2
  84. package/dist/chunk-WADHCMPK.mjs.map +1 -1
  85. package/dist/chunk-WJHSY5T6.mjs +0 -2
  86. package/dist/chunk-WJHSY5T6.mjs.map +1 -1
  87. package/dist/chunk-WJYQWL4I.mjs +4 -4
  88. package/dist/chunk-WJYQWL4I.mjs.map +1 -1
  89. package/dist/chunk-WLPYYGES.mjs +42 -22
  90. package/dist/chunk-WLPYYGES.mjs.map +1 -1
  91. package/dist/chunk-WPIA53HF.mjs +15 -7
  92. package/dist/chunk-WPIA53HF.mjs.map +1 -1
  93. package/dist/chunk-XHUMROEY.mjs +17 -7
  94. package/dist/chunk-XHUMROEY.mjs.map +1 -1
  95. package/dist/chunk-YQU7WG7T.mjs +12 -6
  96. package/dist/chunk-YQU7WG7T.mjs.map +1 -1
  97. package/dist/chunk-YTOPHPSG.mjs +4 -4
  98. package/dist/chunk-YTOPHPSG.mjs.map +1 -1
  99. package/dist/chunk-YW3REYX6.mjs +6 -5
  100. package/dist/chunk-YW3REYX6.mjs.map +1 -1
  101. package/dist/components/base-copilot-textarea/base-copilot-textarea.d.ts +14 -0
  102. package/dist/components/base-copilot-textarea/base-copilot-textarea.js +1772 -0
  103. package/dist/components/base-copilot-textarea/base-copilot-textarea.js.map +1 -0
  104. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +39 -35
  105. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs.map +1 -1
  106. package/dist/components/base-copilot-textarea/render-element.d.ts +6 -0
  107. package/dist/components/base-copilot-textarea/render-element.js +75 -0
  108. package/dist/components/base-copilot-textarea/render-element.js.map +1 -0
  109. package/dist/components/base-copilot-textarea/render-element.mjs +7 -3
  110. package/dist/components/base-copilot-textarea/render-element.mjs.map +1 -1
  111. package/dist/components/base-copilot-textarea/render-placeholder.d.ts +6 -0
  112. package/dist/components/base-copilot-textarea/render-placeholder.js +69 -0
  113. package/dist/components/base-copilot-textarea/render-placeholder.js.map +1 -0
  114. package/dist/components/base-copilot-textarea/render-placeholder.mjs +7 -3
  115. package/dist/components/base-copilot-textarea/render-placeholder.mjs.map +1 -1
  116. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.d.ts +6 -0
  117. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js +112 -0
  118. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js.map +1 -0
  119. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs +8 -4
  120. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs.map +1 -1
  121. package/dist/components/base-copilot-textarea/use-add-branding-css.d.ts +3 -0
  122. package/dist/components/base-copilot-textarea/use-add-branding-css.js +83 -0
  123. package/dist/components/base-copilot-textarea/use-add-branding-css.js.map +1 -0
  124. package/dist/components/base-copilot-textarea/use-add-branding-css.mjs +7 -3
  125. package/dist/components/base-copilot-textarea/use-add-branding-css.mjs.map +1 -1
  126. package/dist/components/copilot-textarea/copilot-textarea.d.ts +20 -0
  127. package/dist/components/copilot-textarea/copilot-textarea.js +2246 -0
  128. package/dist/components/copilot-textarea/copilot-textarea.js.map +1 -0
  129. package/dist/components/copilot-textarea/copilot-textarea.mjs +51 -47
  130. package/dist/components/copilot-textarea/copilot-textarea.mjs.map +1 -1
  131. package/dist/components/hovering-toolbar/hovering-editor-provider.d.ts +13 -0
  132. package/dist/components/hovering-toolbar/hovering-editor-provider.js +49 -0
  133. package/dist/components/hovering-toolbar/hovering-editor-provider.js.map +1 -0
  134. package/dist/components/hovering-toolbar/hovering-editor-provider.mjs +9 -3
  135. package/dist/components/hovering-toolbar/hovering-editor-provider.mjs.map +1 -1
  136. package/dist/components/hovering-toolbar/hovering-toolbar-components.d.ts +18 -0
  137. package/dist/components/hovering-toolbar/hovering-toolbar-components.js +158 -0
  138. package/dist/components/hovering-toolbar/hovering-toolbar-components.js.map +1 -0
  139. package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs +15 -3
  140. package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs.map +1 -1
  141. package/dist/components/hovering-toolbar/hovering-toolbar.d.ts +10 -0
  142. package/dist/components/hovering-toolbar/hovering-toolbar.js +915 -0
  143. package/dist/components/hovering-toolbar/hovering-toolbar.js.map +1 -0
  144. package/dist/components/hovering-toolbar/hovering-toolbar.mjs +22 -18
  145. package/dist/components/hovering-toolbar/hovering-toolbar.mjs.map +1 -1
  146. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.d.ts +16 -0
  147. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js +622 -0
  148. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js.map +1 -0
  149. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs +16 -12
  150. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs.map +1 -1
  151. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.d.ts +14 -0
  152. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js +639 -0
  153. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js.map +1 -0
  154. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs +17 -13
  155. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs.map +1 -1
  156. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.d.ts +15 -0
  157. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.js +140 -0
  158. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.js.map +1 -0
  159. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.mjs +11 -5
  160. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.mjs.map +1 -1
  161. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.d.ts +4 -0
  162. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js +639 -0
  163. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js.map +1 -0
  164. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs +18 -14
  165. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs.map +1 -1
  166. package/dist/components/index.d.ts +15 -0
  167. package/dist/components/index.js +2250 -0
  168. package/dist/components/index.js.map +1 -0
  169. package/dist/components/index.mjs +55 -48
  170. package/dist/components/index.mjs.map +1 -1
  171. package/dist/components/manual-ui/chip-with-icon.d.ts +10 -0
  172. package/dist/components/manual-ui/chip-with-icon.js +53 -0
  173. package/dist/components/manual-ui/chip-with-icon.js.map +1 -0
  174. package/dist/components/manual-ui/chip-with-icon.mjs +6 -5
  175. package/dist/components/manual-ui/chip-with-icon.mjs.map +1 -1
  176. package/dist/components/source-search-box/source-search-box.d.ts +15 -0
  177. package/dist/components/source-search-box/source-search-box.js +243 -0
  178. package/dist/components/source-search-box/source-search-box.js.map +1 -0
  179. package/dist/components/source-search-box/source-search-box.mjs +12 -6
  180. package/dist/components/source-search-box/source-search-box.mjs.map +1 -1
  181. package/dist/components/ui/button.d.ts +14 -0
  182. package/dist/components/ui/button.js +118 -0
  183. package/dist/components/ui/button.js.map +1 -0
  184. package/dist/components/ui/button.mjs +10 -4
  185. package/dist/components/ui/button.mjs.map +1 -1
  186. package/dist/components/ui/card.d.ts +10 -0
  187. package/dist/components/ui/card.js +142 -0
  188. package/dist/components/ui/card.js.map +1 -0
  189. package/dist/components/ui/card.mjs +18 -7
  190. package/dist/components/ui/card.mjs.map +1 -1
  191. package/dist/components/ui/command.d.ts +48 -0
  192. package/dist/components/ui/command.js +306 -0
  193. package/dist/components/ui/command.js.map +1 -0
  194. package/dist/components/ui/command.mjs +25 -5
  195. package/dist/components/ui/command.mjs.map +1 -1
  196. package/dist/components/ui/dialog.d.ts +18 -0
  197. package/dist/components/ui/dialog.js +199 -0
  198. package/dist/components/ui/dialog.js.map +1 -0
  199. package/dist/components/ui/dialog.mjs +20 -4
  200. package/dist/components/ui/dialog.mjs.map +1 -1
  201. package/dist/components/ui/label.d.ts +8 -0
  202. package/dist/components/ui/label.js +92 -0
  203. package/dist/components/ui/label.js.map +1 -0
  204. package/dist/components/ui/label.mjs +8 -4
  205. package/dist/components/ui/label.mjs.map +1 -1
  206. package/dist/components/ui/separator.d.ts +6 -0
  207. package/dist/components/ui/separator.js +96 -0
  208. package/dist/components/ui/separator.js.map +1 -0
  209. package/dist/components/ui/separator.mjs +15 -8
  210. package/dist/components/ui/separator.mjs.map +1 -1
  211. package/dist/components/ui/textarea.d.ts +7 -0
  212. package/dist/components/ui/textarea.js +91 -0
  213. package/dist/components/ui/textarea.js.map +1 -0
  214. package/dist/components/ui/textarea.mjs +13 -7
  215. package/dist/components/ui/textarea.mjs.map +1 -1
  216. package/dist/context/index.d.ts +1 -0
  217. package/dist/context/index.js +19 -0
  218. package/dist/context/index.js.map +1 -0
  219. package/dist/context/index.mjs +1 -2
  220. package/dist/context/index.mjs.map +1 -1
  221. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.d.ts +14 -0
  222. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.js +193 -0
  223. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.js.map +1 -0
  224. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs +10 -6
  225. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs.map +1 -1
  226. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.d.ts +8 -0
  227. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.js +194 -0
  228. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.js.map +1 -0
  229. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs +8 -4
  230. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs.map +1 -1
  231. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.d.ts +7 -0
  232. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.js +180 -0
  233. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.js.map +1 -0
  234. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs +9 -5
  235. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs.map +1 -1
  236. package/dist/hooks/index.d.ts +1 -0
  237. package/dist/hooks/index.js +19 -0
  238. package/dist/hooks/index.js.map +1 -0
  239. package/dist/hooks/index.mjs +1 -2
  240. package/dist/hooks/index.mjs.map +1 -1
  241. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts +22 -0
  242. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.js +167 -0
  243. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.js.map +1 -0
  244. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs +18 -14
  245. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map +1 -1
  246. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.d.ts +23 -0
  247. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.js +227 -0
  248. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.js.map +1 -0
  249. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs +18 -14
  250. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs.map +1 -1
  251. package/dist/hooks/misc/use-autosize-textarea.d.ts +5 -0
  252. package/dist/hooks/misc/use-autosize-textarea.js +39 -0
  253. package/dist/hooks/misc/use-autosize-textarea.js.map +1 -0
  254. package/dist/hooks/misc/use-autosize-textarea.mjs +7 -3
  255. package/dist/hooks/misc/use-autosize-textarea.mjs.map +1 -1
  256. package/dist/index.d.ts +16 -0
  257. package/dist/index.js +2256 -0
  258. package/dist/index.js.map +1 -0
  259. package/dist/index.mjs +66 -50
  260. package/dist/index.mjs.map +1 -1
  261. package/dist/lib/debouncer.d.ts +11 -0
  262. package/dist/lib/debouncer.js +76 -0
  263. package/dist/lib/debouncer.js.map +1 -0
  264. package/dist/lib/debouncer.mjs +7 -3
  265. package/dist/lib/debouncer.mjs.map +1 -1
  266. package/dist/lib/editor-to-text.d.ts +7 -0
  267. package/dist/lib/editor-to-text.js +69 -0
  268. package/dist/lib/editor-to-text.js.map +1 -0
  269. package/dist/lib/editor-to-text.mjs +7 -3
  270. package/dist/lib/editor-to-text.mjs.map +1 -1
  271. package/dist/lib/get-text-around-cursor.d.ts +15 -0
  272. package/dist/lib/get-text-around-cursor.js +131 -0
  273. package/dist/lib/get-text-around-cursor.js.map +1 -0
  274. package/dist/lib/get-text-around-cursor.mjs +13 -3
  275. package/dist/lib/get-text-around-cursor.mjs.map +1 -1
  276. package/dist/lib/retry.d.ts +3 -0
  277. package/dist/lib/retry.js +43 -0
  278. package/dist/lib/retry.js.map +1 -0
  279. package/dist/lib/retry.mjs +7 -3
  280. package/dist/lib/retry.mjs.map +1 -1
  281. package/dist/lib/slatejs-edits/add-autocompletions.d.ts +8 -0
  282. package/dist/lib/slatejs-edits/add-autocompletions.js +51 -0
  283. package/dist/lib/slatejs-edits/add-autocompletions.js.map +1 -0
  284. package/dist/lib/slatejs-edits/add-autocompletions.mjs +7 -3
  285. package/dist/lib/slatejs-edits/add-autocompletions.mjs.map +1 -1
  286. package/dist/lib/slatejs-edits/clear-autocompletions.d.ts +8 -0
  287. package/dist/lib/slatejs-edits/clear-autocompletions.js +49 -0
  288. package/dist/lib/slatejs-edits/clear-autocompletions.js.map +1 -0
  289. package/dist/lib/slatejs-edits/clear-autocompletions.mjs +7 -3
  290. package/dist/lib/slatejs-edits/clear-autocompletions.mjs.map +1 -1
  291. package/dist/lib/slatejs-edits/replace-text.d.ts +5 -0
  292. package/dist/lib/slatejs-edits/replace-text.js +53 -0
  293. package/dist/lib/slatejs-edits/replace-text.js.map +1 -0
  294. package/dist/lib/slatejs-edits/replace-text.mjs +7 -3
  295. package/dist/lib/slatejs-edits/replace-text.mjs.map +1 -1
  296. package/dist/lib/slatejs-edits/with-partial-history.d.ts +10 -0
  297. package/dist/lib/slatejs-edits/with-partial-history.js +133 -0
  298. package/dist/lib/slatejs-edits/with-partial-history.js.map +1 -0
  299. package/dist/lib/slatejs-edits/with-partial-history.mjs +9 -3
  300. package/dist/lib/slatejs-edits/with-partial-history.mjs.map +1 -1
  301. package/dist/lib/stream-promise-flatten.d.ts +12 -0
  302. package/dist/lib/stream-promise-flatten.js +72 -0
  303. package/dist/lib/stream-promise-flatten.js.map +1 -0
  304. package/dist/lib/stream-promise-flatten.mjs +7 -3
  305. package/dist/lib/stream-promise-flatten.mjs.map +1 -1
  306. package/dist/lib/utils.d.ts +10 -0
  307. package/dist/lib/utils.js +101 -0
  308. package/dist/lib/utils.js.map +1 -0
  309. package/dist/lib/utils.mjs +17 -3
  310. package/dist/lib/utils.mjs.map +1 -1
  311. package/dist/lib/utils.test.d.ts +1 -0
  312. package/dist/lib/utils.test.js +9 -0
  313. package/dist/lib/utils.test.js.map +1 -0
  314. package/dist/lib/utils.test.mjs +0 -1
  315. package/dist/lib/utils.test.mjs.map +1 -1
  316. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.d.ts +23 -0
  317. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.js +19 -0
  318. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.js.map +1 -0
  319. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs +0 -2
  320. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs.map +1 -1
  321. package/dist/types/autosuggestions-config/autosuggestions-config.d.ts +20 -0
  322. package/dist/types/autosuggestions-config/autosuggestions-config.js +275 -0
  323. package/dist/types/autosuggestions-config/autosuggestions-config.js.map +1 -0
  324. package/dist/types/autosuggestions-config/autosuggestions-config.mjs +12 -8
  325. package/dist/types/autosuggestions-config/autosuggestions-config.mjs.map +1 -1
  326. package/dist/types/autosuggestions-config/editing-api-config.d.ts +15 -0
  327. package/dist/types/autosuggestions-config/editing-api-config.js +109 -0
  328. package/dist/types/autosuggestions-config/editing-api-config.js.map +1 -0
  329. package/dist/types/autosuggestions-config/editing-api-config.mjs +11 -3
  330. package/dist/types/autosuggestions-config/editing-api-config.mjs.map +1 -1
  331. package/dist/types/autosuggestions-config/index.d.ts +11 -0
  332. package/dist/types/autosuggestions-config/index.js +331 -0
  333. package/dist/types/autosuggestions-config/index.js.map +1 -0
  334. package/dist/types/autosuggestions-config/index.mjs +17 -10
  335. package/dist/types/autosuggestions-config/index.mjs.map +1 -1
  336. package/dist/types/autosuggestions-config/insertions-api-config.d.ts +15 -0
  337. package/dist/types/autosuggestions-config/insertions-api-config.js +103 -0
  338. package/dist/types/autosuggestions-config/insertions-api-config.js.map +1 -0
  339. package/dist/types/autosuggestions-config/insertions-api-config.mjs +11 -3
  340. package/dist/types/autosuggestions-config/insertions-api-config.mjs.map +1 -1
  341. package/dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.d.ts +27 -0
  342. package/dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.js +99 -0
  343. package/dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.js.map +1 -0
  344. package/dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.mjs +7 -3
  345. package/dist/types/autosuggestions-config/subtypes/chatlike-api-endpoint.mjs.map +1 -1
  346. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.d.ts +3 -0
  347. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.js +19 -0
  348. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.js.map +1 -0
  349. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs +0 -2
  350. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs.map +1 -1
  351. package/dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.d.ts +7 -0
  352. package/dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.js +19 -0
  353. package/dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.js.map +1 -0
  354. package/dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs +0 -2
  355. package/dist/types/autosuggestions-config/subtypes/minimal-chat-gpt-message.mjs.map +1 -1
  356. package/dist/types/autosuggestions-config/suggestions-api-config.d.ts +15 -0
  357. package/dist/types/autosuggestions-config/suggestions-api-config.js +92 -0
  358. package/dist/types/autosuggestions-config/suggestions-api-config.js.map +1 -0
  359. package/dist/types/autosuggestions-config/suggestions-api-config.mjs +11 -3
  360. package/dist/types/autosuggestions-config/suggestions-api-config.mjs.map +1 -1
  361. package/dist/types/base/autosuggestion-state.d.ts +8 -0
  362. package/dist/types/base/autosuggestion-state.js +19 -0
  363. package/dist/types/base/autosuggestion-state.js.map +1 -0
  364. package/dist/types/base/autosuggestion-state.mjs +0 -2
  365. package/dist/types/base/autosuggestion-state.mjs.map +1 -1
  366. package/dist/types/base/autosuggestions-bare-function.d.ts +19 -0
  367. package/dist/types/base/autosuggestions-bare-function.js +19 -0
  368. package/dist/types/base/autosuggestions-bare-function.js.map +1 -0
  369. package/dist/types/base/autosuggestions-bare-function.mjs +0 -2
  370. package/dist/types/base/autosuggestions-bare-function.mjs.map +1 -1
  371. package/dist/types/base/base-autosuggestions-config.d.ts +16 -0
  372. package/dist/types/base/base-autosuggestions-config.js +38 -0
  373. package/dist/types/base/base-autosuggestions-config.js.map +1 -0
  374. package/dist/types/base/base-autosuggestions-config.mjs +7 -3
  375. package/dist/types/base/base-autosuggestions-config.mjs.map +1 -1
  376. package/dist/types/base/base-copilot-textarea-props.d.ts +41 -0
  377. package/dist/types/base/base-copilot-textarea-props.js +19 -0
  378. package/dist/types/base/base-copilot-textarea-props.js.map +1 -0
  379. package/dist/types/base/base-copilot-textarea-props.mjs +0 -2
  380. package/dist/types/base/base-copilot-textarea-props.mjs.map +1 -1
  381. package/dist/types/base/custom-editor.d.ts +29 -0
  382. package/dist/types/base/custom-editor.js +19 -0
  383. package/dist/types/base/custom-editor.js.map +1 -0
  384. package/dist/types/base/custom-editor.mjs +0 -2
  385. package/dist/types/base/custom-editor.mjs.map +1 -1
  386. package/dist/types/base/editor-autocomplete-state.d.ts +10 -0
  387. package/dist/types/base/editor-autocomplete-state.js +45 -0
  388. package/dist/types/base/editor-autocomplete-state.js.map +1 -0
  389. package/dist/types/base/editor-autocomplete-state.mjs +8 -4
  390. package/dist/types/base/editor-autocomplete-state.mjs.map +1 -1
  391. package/dist/types/base/index.d.ts +5 -0
  392. package/dist/types/base/index.js +40 -0
  393. package/dist/types/base/index.js.map +1 -0
  394. package/dist/types/base/index.mjs +8 -4
  395. package/dist/types/base/index.mjs.map +1 -1
  396. package/dist/types/html-copilot-textarea-element.d.ts +7 -0
  397. package/dist/types/html-copilot-textarea-element.js +19 -0
  398. package/dist/types/html-copilot-textarea-element.js.map +1 -0
  399. package/dist/types/html-copilot-textarea-element.mjs +1 -2
  400. package/dist/types/html-copilot-textarea-element.mjs.map +1 -1
  401. package/dist/types/index.d.ts +14 -0
  402. package/dist/types/index.js +333 -0
  403. package/dist/types/index.js.map +1 -0
  404. package/dist/types/index.mjs +22 -12
  405. package/dist/types/index.mjs.map +1 -1
  406. package/package.json +5 -5
  407. package/tsup.config.ts +1 -1
  408. package/dist/chunk-24SYR4JB.mjs.map +0 -1
  409. package/dist/chunk-5DU2QDHZ.mjs.map +0 -1
  410. package/dist/chunk-63FSISXT.mjs.map +0 -1
  411. package/dist/chunk-KLROO6ID.mjs.map +0 -1
  412. package/dist/chunk-O7G7E3E3.mjs.map +0 -1
  413. package/dist/chunk-YXA3UPMI.mjs.map +0 -1
@@ -1,8 +1,14 @@
1
- import { cn } from '../../chunk-KGKLUWKW.mjs';
2
- import { __objRest, __spreadValues } from '../../chunk-MRXNTQOX.mjs';
3
- import * as React from 'react';
4
- import { jsx } from 'react/jsx-runtime';
1
+ import {
2
+ cn
3
+ } from "../../chunk-KGKLUWKW.mjs";
4
+ import {
5
+ __objRest,
6
+ __spreadValues
7
+ } from "../../chunk-MRXNTQOX.mjs";
5
8
 
9
+ // src/components/ui/textarea.tsx
10
+ import * as React from "react";
11
+ import { jsx } from "react/jsx-runtime";
6
12
  var Textarea = React.forwardRef(
7
13
  (_a, ref) => {
8
14
  var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
@@ -16,7 +22,7 @@ var Textarea = React.forwardRef(
16
22
  }
17
23
  );
18
24
  Textarea.displayName = "Textarea";
19
-
20
- export { Textarea };
21
- //# sourceMappingURL=out.js.map
25
+ export {
26
+ Textarea
27
+ };
22
28
  //# sourceMappingURL=textarea.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/textarea.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,YAAY,WAAW;AAUjB;AAHN,IAAM,WAAiB;AAAA,EACrB,CAAC,IAAyB,QAAQ;AAAjC,iBAAE,YARL,IAQG,IAAgB,kBAAhB,IAAgB,CAAd;AACD,WACE,oBAAC;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,OACI,MACN;AAAA,EAEJ;AACF;AACA,SAAS,cAAc","sourcesContent":["import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n"]}
1
+ {"version":3,"sources":["../../../src/components/ui/textarea.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n"],"mappings":";;;;;;;;;AAAA,YAAY,WAAW;AAUjB;AAHN,IAAM,WAAiB;AAAA,EACrB,CAAC,IAAyB,QAAQ;AAAjC,iBAAE,YARL,IAQG,IAAgB,kBAAhB,IAAgB,CAAd;AACD,WACE,oBAAC;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,OACI,MACN;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;","names":[]}
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/context/index.ts
17
+ var context_exports = {};
18
+ module.exports = __toCommonJS(context_exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/context/index.ts"],"sourcesContent":["export {};\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -1,3 +1,2 @@
1
- import '../chunk-IU3WTXLQ.mjs';
2
- //# sourceMappingURL=out.js.map
1
+ import "../chunk-IU3WTXLQ.mjs";
3
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,14 @@
1
+ import { AutosuggestionsBareFunction } from '../../types/base/autosuggestions-bare-function.js';
2
+ import { AutosuggestionState } from '../../types/base/autosuggestion-state.js';
3
+ import { EditorAutocompleteState } from '../../types/base/editor-autocomplete-state.js';
4
+ import '@copilotkit/react-core';
5
+ import 'slate';
6
+
7
+ interface UseAutosuggestionsResult {
8
+ currentAutocompleteSuggestion: AutosuggestionState | null;
9
+ onChangeHandler: (newEditorState: EditorAutocompleteState | null) => void;
10
+ onKeyDownHandler: (event: React.KeyboardEvent<HTMLDivElement>) => void;
11
+ }
12
+ declare function useAutosuggestions(debounceTime: number, acceptAutosuggestionKey: string, autosuggestionFunction: AutosuggestionsBareFunction, insertAutocompleteSuggestion: (suggestion: AutosuggestionState) => void, disableWhenEmpty: boolean, disabled: boolean): UseAutosuggestionsResult;
13
+
14
+ export { UseAutosuggestionsResult, useAutosuggestions };
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var __async = (__this, __arguments, generator) => {
20
+ return new Promise((resolve, reject) => {
21
+ var fulfilled = (value) => {
22
+ try {
23
+ step(generator.next(value));
24
+ } catch (e) {
25
+ reject(e);
26
+ }
27
+ };
28
+ var rejected = (value) => {
29
+ try {
30
+ step(generator.throw(value));
31
+ } catch (e) {
32
+ reject(e);
33
+ }
34
+ };
35
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
36
+ step((generator = generator.apply(__this, __arguments)).next());
37
+ });
38
+ };
39
+
40
+ // src/hooks/base-copilot-textarea-implementation/use-autosuggestions.ts
41
+ var use_autosuggestions_exports = {};
42
+ __export(use_autosuggestions_exports, {
43
+ useAutosuggestions: () => useAutosuggestions
44
+ });
45
+ module.exports = __toCommonJS(use_autosuggestions_exports);
46
+ var import_react = require("react");
47
+
48
+ // src/lib/debouncer.ts
49
+ var Debouncer = class {
50
+ constructor(wait) {
51
+ this.wait = wait;
52
+ this.debounce = (func, ...args) => __async(this, null, function* () {
53
+ this.cancel();
54
+ this.timeoutId = setTimeout(() => __async(this, null, function* () {
55
+ try {
56
+ this.activeAbortController = new AbortController();
57
+ yield func(...args, this.activeAbortController.signal);
58
+ this.activeAbortController = void 0;
59
+ } catch (error) {
60
+ }
61
+ }), this.wait);
62
+ });
63
+ this.cancel = () => {
64
+ if (this.activeAbortController) {
65
+ this.activeAbortController.abort();
66
+ this.activeAbortController = void 0;
67
+ }
68
+ if (this.timeoutId !== void 0) {
69
+ clearTimeout(this.timeoutId);
70
+ this.timeoutId = void 0;
71
+ }
72
+ };
73
+ }
74
+ };
75
+
76
+ // src/lib/utils.ts
77
+ var import_clsx = require("clsx");
78
+ var import_nanoid = require("nanoid");
79
+ var import_tailwind_merge = require("tailwind-merge");
80
+ var nanoid = (0, import_nanoid.customAlphabet)(
81
+ "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
82
+ 7
83
+ );
84
+ var arraysAreEqual = (arr1, arr2) => arr1.length === arr2.length && arr1.every((value, index) => value === arr2[index]);
85
+ function nullableCompatibleEqualityCheck(naiveEqualityCheck, a, b) {
86
+ if (a === null || a === void 0 || b === null || b === void 0) {
87
+ return a === b;
88
+ }
89
+ return naiveEqualityCheck(a, b);
90
+ }
91
+
92
+ // src/types/base/editor-autocomplete-state.ts
93
+ function areEqual_autocompleteState(prev, next) {
94
+ return prev.cursorPoint.offset === next.cursorPoint.offset && arraysAreEqual(prev.cursorPoint.path, next.cursorPoint.path) && prev.textBeforeCursor === next.textBeforeCursor && prev.textAfterCursor === next.textAfterCursor;
95
+ }
96
+
97
+ // src/hooks/base-copilot-textarea-implementation/use-autosuggestions.ts
98
+ function useAutosuggestions(debounceTime, acceptAutosuggestionKey, autosuggestionFunction, insertAutocompleteSuggestion, disableWhenEmpty, disabled) {
99
+ const [previousAutocompleteState, setPreviousAutocompleteState] = (0, import_react.useState)(null);
100
+ const [currentAutocompleteSuggestion, setCurrentAutocompleteSuggestion] = (0, import_react.useState)(null);
101
+ const awaitForAndAppendSuggestion = (0, import_react.useCallback)(
102
+ (editorAutocompleteState, abortSignal) => __async(this, null, function* () {
103
+ if (disabled) {
104
+ return;
105
+ }
106
+ if (disableWhenEmpty && editorAutocompleteState.textBeforeCursor === "" && editorAutocompleteState.textAfterCursor === "") {
107
+ return;
108
+ }
109
+ const suggestion = yield autosuggestionFunction(
110
+ editorAutocompleteState,
111
+ abortSignal
112
+ );
113
+ if (!suggestion || abortSignal.aborted) {
114
+ throw new DOMException("Aborted", "AbortError");
115
+ }
116
+ setCurrentAutocompleteSuggestion({
117
+ text: suggestion,
118
+ point: editorAutocompleteState.cursorPoint
119
+ });
120
+ }),
121
+ [
122
+ autosuggestionFunction,
123
+ setCurrentAutocompleteSuggestion,
124
+ disableWhenEmpty,
125
+ disabled
126
+ ]
127
+ );
128
+ const debouncedFunction = (0, import_react.useMemo)(
129
+ () => new Debouncer(
130
+ debounceTime
131
+ ),
132
+ [debounceTime]
133
+ );
134
+ (0, import_react.useEffect)(() => {
135
+ return () => {
136
+ debouncedFunction.cancel();
137
+ setCurrentAutocompleteSuggestion(null);
138
+ };
139
+ }, [debouncedFunction, disabled]);
140
+ const onChange = (0, import_react.useCallback)(
141
+ (newEditorState) => {
142
+ const editorStateHasChanged = !nullableCompatibleEqualityCheck(
143
+ areEqual_autocompleteState,
144
+ previousAutocompleteState,
145
+ newEditorState
146
+ );
147
+ setPreviousAutocompleteState(newEditorState);
148
+ if (!editorStateHasChanged) {
149
+ return;
150
+ }
151
+ setCurrentAutocompleteSuggestion(null);
152
+ if (newEditorState) {
153
+ debouncedFunction.debounce(awaitForAndAppendSuggestion, newEditorState);
154
+ } else {
155
+ debouncedFunction.cancel();
156
+ }
157
+ },
158
+ [
159
+ previousAutocompleteState,
160
+ setPreviousAutocompleteState,
161
+ debouncedFunction,
162
+ awaitForAndAppendSuggestion,
163
+ setCurrentAutocompleteSuggestion
164
+ ]
165
+ );
166
+ const keyDownHandler = (0, import_react.useCallback)(
167
+ (event) => {
168
+ if (currentAutocompleteSuggestion) {
169
+ if (event.key === acceptAutosuggestionKey) {
170
+ event.preventDefault();
171
+ insertAutocompleteSuggestion(currentAutocompleteSuggestion);
172
+ setCurrentAutocompleteSuggestion(null);
173
+ }
174
+ }
175
+ },
176
+ [
177
+ currentAutocompleteSuggestion,
178
+ setCurrentAutocompleteSuggestion,
179
+ insertAutocompleteSuggestion,
180
+ acceptAutosuggestionKey
181
+ ]
182
+ );
183
+ return {
184
+ currentAutocompleteSuggestion,
185
+ onChangeHandler: onChange,
186
+ onKeyDownHandler: keyDownHandler
187
+ };
188
+ }
189
+ // Annotate the CommonJS export names for ESM import in node:
190
+ 0 && (module.exports = {
191
+ useAutosuggestions
192
+ });
193
+ //# sourceMappingURL=use-autosuggestions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/hooks/base-copilot-textarea-implementation/use-autosuggestions.ts","../../../src/lib/debouncer.ts","../../../src/lib/utils.ts","../../../src/types/base/editor-autocomplete-state.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Debouncer } from \"../../lib/debouncer\";\nimport { nullableCompatibleEqualityCheck } from \"../../lib/utils\";\nimport { AutosuggestionsBareFunction } from \"../../types/base\";\nimport { AutosuggestionState } from \"../../types/base/autosuggestion-state\";\nimport {\n EditorAutocompleteState,\n areEqual_autocompleteState,\n} from \"../../types/base/editor-autocomplete-state\";\n\nexport interface UseAutosuggestionsResult {\n currentAutocompleteSuggestion: AutosuggestionState | null;\n onChangeHandler: (newEditorState: EditorAutocompleteState | null) => void;\n onKeyDownHandler: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n}\n\nexport function useAutosuggestions(\n debounceTime: number,\n acceptAutosuggestionKey: string,\n autosuggestionFunction: AutosuggestionsBareFunction,\n insertAutocompleteSuggestion: (suggestion: AutosuggestionState) => void,\n disableWhenEmpty: boolean,\n disabled: boolean\n): UseAutosuggestionsResult {\n const [previousAutocompleteState, setPreviousAutocompleteState] =\n useState<EditorAutocompleteState | null>(null);\n\n const [currentAutocompleteSuggestion, setCurrentAutocompleteSuggestion] =\n useState<AutosuggestionState | null>(null);\n\n const awaitForAndAppendSuggestion: (\n editorAutocompleteState: EditorAutocompleteState,\n abortSignal: AbortSignal\n ) => Promise<void> = useCallback(\n async (\n editorAutocompleteState: EditorAutocompleteState,\n abortSignal: AbortSignal\n ) => {\n // early return if disabled\n if (disabled) {\n return;\n }\n\n if (\n disableWhenEmpty &&\n editorAutocompleteState.textBeforeCursor === \"\" &&\n editorAutocompleteState.textAfterCursor === \"\"\n ) {\n return;\n }\n\n // fetch the suggestion\n const suggestion = await autosuggestionFunction(\n editorAutocompleteState,\n abortSignal\n );\n\n // We'll assume for now that the autocomplete function might or might not respect the abort signal.\n if (!suggestion || abortSignal.aborted) {\n throw new DOMException(\"Aborted\", \"AbortError\");\n }\n\n setCurrentAutocompleteSuggestion({\n text: suggestion,\n point: editorAutocompleteState.cursorPoint,\n });\n },\n [\n autosuggestionFunction,\n setCurrentAutocompleteSuggestion,\n disableWhenEmpty,\n disabled,\n ]\n );\n\n const debouncedFunction = useMemo(\n () =>\n new Debouncer<[editorAutocompleteState: EditorAutocompleteState]>(\n debounceTime\n ),\n [debounceTime]\n );\n\n // clean current state when unmounting or disabling\n useEffect(() => {\n return () => {\n debouncedFunction.cancel();\n setCurrentAutocompleteSuggestion(null);\n };\n }, [debouncedFunction, disabled]);\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","export type AsyncFunction<T extends any[]> = (\n ...args: [...T, AbortSignal]\n) => Promise<void>;\n\nexport class Debouncer<T extends any[]> {\n private timeoutId?: number;\n private activeAbortController?: AbortController;\n\n constructor(private wait: number) {}\n\n debounce = async (func: AsyncFunction<T>, ...args: T) => {\n // Abort the previous promise immediately\n this.cancel();\n\n this.timeoutId = setTimeout(async () => {\n try {\n this.activeAbortController = new AbortController();\n\n // Pass the signal to the async function, assuming it supports it\n await func(...args, this.activeAbortController.signal);\n\n this.activeAbortController = undefined;\n } catch (error) {}\n }, this.wait);\n };\n\n cancel = () => {\n if (this.activeAbortController) {\n this.activeAbortController.abort();\n this.activeAbortController = undefined;\n }\n\n if (this.timeoutId !== undefined) {\n clearTimeout(this.timeoutId);\n this.timeoutId = undefined;\n }\n };\n}\n","import { clsx, type ClassValue } from \"clsx\";\nimport { customAlphabet } from \"nanoid\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const nanoid = customAlphabet(\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n 7\n); // 7-character random string\n\nexport async function fetcher<JSON = any>(\n input: RequestInfo,\n init?: RequestInit\n): Promise<JSON> {\n const res = await fetch(input, init);\n\n if (!res.ok) {\n const json = await res.json();\n if (json.error) {\n const error = new Error(json.error) as Error & {\n status: number;\n };\n error.status = res.status;\n throw error;\n } else {\n throw new Error(\"An unexpected error occurred\");\n }\n }\n\n return res.json();\n}\n\nexport function formatDate(input: string | number | Date): string {\n const date = new Date(input);\n return date.toLocaleDateString(\"en-US\", {\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n });\n}\n\nexport const arraysAreEqual = (arr1: number[], arr2: number[]): boolean =>\n arr1.length === arr2.length &&\n arr1.every((value, index) => value === arr2[index]);\n\nexport function nullableCompatibleEqualityCheck<T>(\n naiveEqualityCheck: (a: T, b: T) => boolean,\n a: T | null | undefined,\n b: T | null | undefined\n): boolean {\n if (a === null || a === undefined || b === null || b === undefined) {\n return a === b;\n }\n\n return naiveEqualityCheck(a, b);\n}\n","import { BasePoint } from \"slate\";\nimport { arraysAreEqual } from \"../../lib/utils\";\n\nexport interface EditorAutocompleteState {\n cursorPoint: BasePoint;\n textBeforeCursor: string;\n textAfterCursor: string;\n}\n\nexport function areEqual_autocompleteState(\n prev: EditorAutocompleteState,\n next: EditorAutocompleteState\n) {\n return (\n prev.cursorPoint.offset === next.cursorPoint.offset &&\n arraysAreEqual(prev.cursorPoint.path, next.cursorPoint.path) &&\n prev.textBeforeCursor === next.textBeforeCursor &&\n prev.textAfterCursor === next.textAfterCursor\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0D;;;ACInD,IAAM,YAAN,MAAiC;AAAA,EAItC,YAAoB,MAAc;AAAd;AAEpB,oBAAW,CAAO,SAA2B,SAAY;AAEvD,WAAK,OAAO;AAEZ,WAAK,YAAY,WAAW,MAAY;AACtC,YAAI;AACF,eAAK,wBAAwB,IAAI,gBAAgB;AAGjD,gBAAM,KAAK,GAAG,MAAM,KAAK,sBAAsB,MAAM;AAErD,eAAK,wBAAwB;AAAA,QAC/B,SAAS,OAAP;AAAA,QAAe;AAAA,MACnB,IAAG,KAAK,IAAI;AAAA,IACd;AAEA,kBAAS,MAAM;AACb,UAAI,KAAK,uBAAuB;AAC9B,aAAK,sBAAsB,MAAM;AACjC,aAAK,wBAAwB;AAAA,MAC/B;AAEA,UAAI,KAAK,cAAc,QAAW;AAChC,qBAAa,KAAK,SAAS;AAC3B,aAAK,YAAY;AAAA,MACnB;AAAA,IACF;AAAA,EA5BmC;AA6BrC;;;ACrCA,kBAAsC;AACtC,oBAA+B;AAC/B,4BAAwB;AAMjB,IAAM,aAAS;AAAA,EACpB;AAAA,EACA;AACF;AAiCO,IAAM,iBAAiB,CAAC,MAAgB,SAC7C,KAAK,WAAW,KAAK,UACrB,KAAK,MAAM,CAAC,OAAO,UAAU,UAAU,KAAK,MAAM;AAE7C,SAAS,gCACd,oBACA,GACA,GACS;AACT,MAAI,MAAM,QAAQ,MAAM,UAAa,MAAM,QAAQ,MAAM,QAAW;AAClE,WAAO,MAAM;AAAA,EACf;AAEA,SAAO,mBAAmB,GAAG,CAAC;AAChC;;;ACjDO,SAAS,2BACd,MACA,MACA;AACA,SACE,KAAK,YAAY,WAAW,KAAK,YAAY,UAC7C,eAAe,KAAK,YAAY,MAAM,KAAK,YAAY,IAAI,KAC3D,KAAK,qBAAqB,KAAK,oBAC/B,KAAK,oBAAoB,KAAK;AAElC;;;AHHO,SAAS,mBACd,cACA,yBACA,wBACA,8BACA,kBACA,UAC0B;AAC1B,QAAM,CAAC,2BAA2B,4BAA4B,QAC5D,uBAAyC,IAAI;AAE/C,QAAM,CAAC,+BAA+B,gCAAgC,QACpE,uBAAqC,IAAI;AAE3C,QAAM,kCAGe;AAAA,IACnB,CACE,yBACA,gBACG;AAEH,UAAI,UAAU;AACZ;AAAA,MACF;AAEA,UACE,oBACA,wBAAwB,qBAAqB,MAC7C,wBAAwB,oBAAoB,IAC5C;AACA;AAAA,MACF;AAGA,YAAM,aAAa,MAAM;AAAA,QACvB;AAAA,QACA;AAAA,MACF;AAGA,UAAI,CAAC,cAAc,YAAY,SAAS;AACtC,cAAM,IAAI,aAAa,WAAW,YAAY;AAAA,MAChD;AAEA,uCAAiC;AAAA,QAC/B,MAAM;AAAA,QACN,OAAO,wBAAwB;AAAA,MACjC,CAAC;AAAA,IACH;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,wBAAoB;AAAA,IACxB,MACE,IAAI;AAAA,MACF;AAAA,IACF;AAAA,IACF,CAAC,YAAY;AAAA,EACf;AAGA,8BAAU,MAAM;AACd,WAAO,MAAM;AACX,wBAAkB,OAAO;AACzB,uCAAiC,IAAI;AAAA,IACvC;AAAA,EACF,GAAG,CAAC,mBAAmB,QAAQ,CAAC;AAEhC,QAAM,eAAW;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,qBAAiB;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;","names":[]}
@@ -1,7 +1,11 @@
1
- export { useAutosuggestions } from '../../chunk-UHD44NC5.mjs';
2
- import '../../chunk-JAFCXEPU.mjs';
3
- import '../../chunk-KGKLUWKW.mjs';
4
- import '../../chunk-NKW5OU2S.mjs';
5
- import '../../chunk-MRXNTQOX.mjs';
6
- //# sourceMappingURL=out.js.map
1
+ import {
2
+ useAutosuggestions
3
+ } from "../../chunk-UHD44NC5.mjs";
4
+ import "../../chunk-JAFCXEPU.mjs";
5
+ import "../../chunk-KGKLUWKW.mjs";
6
+ import "../../chunk-NKW5OU2S.mjs";
7
+ import "../../chunk-MRXNTQOX.mjs";
8
+ export {
9
+ useAutosuggestions
10
+ };
7
11
  //# sourceMappingURL=use-autosuggestions.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,8 @@
1
+ import { CustomEditor } from '../../types/base/custom-editor.js';
2
+ import 'slate';
3
+ import 'slate-react';
4
+ import 'slate-history';
5
+
6
+ declare function useCopilotTextareaEditor(): CustomEditor;
7
+
8
+ export { useCopilotTextareaEditor };
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.tsx
21
+ var use_copilot_textarea_editor_exports = {};
22
+ __export(use_copilot_textarea_editor_exports, {
23
+ useCopilotTextareaEditor: () => useCopilotTextareaEditor
24
+ });
25
+ module.exports = __toCommonJS(use_copilot_textarea_editor_exports);
26
+ var import_react = require("react");
27
+ var import_slate2 = require("slate");
28
+ var import_slate_react = require("slate-react");
29
+
30
+ // src/lib/slatejs-edits/with-partial-history.ts
31
+ var import_slate = require("slate");
32
+ var import_slate_history = require("slate-history");
33
+ var withPartialHistory = (editor, shouldSave2) => {
34
+ const e = editor;
35
+ const { apply } = e;
36
+ e.history = { undos: [], redos: [] };
37
+ e.redo = () => {
38
+ const { history } = e;
39
+ const { redos } = history;
40
+ if (redos.length > 0) {
41
+ const batch = redos[redos.length - 1];
42
+ if (batch.selectionBefore) {
43
+ import_slate.Transforms.setSelection(e, batch.selectionBefore);
44
+ }
45
+ import_slate_history.HistoryEditor.withoutSaving(e, () => {
46
+ import_slate.Editor.withoutNormalizing(e, () => {
47
+ for (const op of batch.operations) {
48
+ e.apply(op);
49
+ }
50
+ });
51
+ });
52
+ history.redos.pop();
53
+ e.writeHistory("undos", batch);
54
+ }
55
+ };
56
+ e.undo = () => {
57
+ const { history } = e;
58
+ const { undos } = history;
59
+ if (undos.length > 0) {
60
+ const batch = undos[undos.length - 1];
61
+ import_slate_history.HistoryEditor.withoutSaving(e, () => {
62
+ import_slate.Editor.withoutNormalizing(e, () => {
63
+ const inverseOps = batch.operations.map(import_slate.Operation.inverse).reverse();
64
+ for (const op of inverseOps) {
65
+ e.apply(op);
66
+ }
67
+ if (batch.selectionBefore) {
68
+ import_slate.Transforms.setSelection(e, batch.selectionBefore);
69
+ }
70
+ });
71
+ });
72
+ e.writeHistory("redos", batch);
73
+ history.undos.pop();
74
+ }
75
+ };
76
+ e.apply = (op) => {
77
+ const { operations, history } = e;
78
+ const { undos } = history;
79
+ const lastBatch = undos[undos.length - 1];
80
+ const lastOp = lastBatch && lastBatch.operations[lastBatch.operations.length - 1];
81
+ let save = import_slate_history.HistoryEditor.isSaving(e);
82
+ let merge = import_slate_history.HistoryEditor.isMerging(e);
83
+ if (save == null) {
84
+ save = shouldSave2(op, lastOp);
85
+ }
86
+ if (save) {
87
+ if (merge == null) {
88
+ if (lastBatch == null) {
89
+ merge = false;
90
+ } else if (operations.length !== 0) {
91
+ merge = true;
92
+ } else {
93
+ merge = shouldMerge(op, lastOp);
94
+ }
95
+ }
96
+ if (lastBatch && merge) {
97
+ lastBatch.operations.push(op);
98
+ } else {
99
+ const batch = {
100
+ operations: [op],
101
+ selectionBefore: e.selection
102
+ };
103
+ e.writeHistory("undos", batch);
104
+ }
105
+ while (undos.length > 100) {
106
+ undos.shift();
107
+ }
108
+ history.redos = [];
109
+ }
110
+ apply(op);
111
+ };
112
+ e.writeHistory = (stack, batch) => {
113
+ e.history[stack].push(batch);
114
+ };
115
+ return e;
116
+ };
117
+ var shouldMerge = (op, prev) => {
118
+ if (prev && op.type === "insert_text" && prev.type === "insert_text" && op.offset === prev.offset + prev.text.length && import_slate.Path.equals(op.path, prev.path)) {
119
+ return true;
120
+ }
121
+ if (prev && op.type === "remove_text" && prev.type === "remove_text" && op.offset + op.text.length === prev.offset && import_slate.Path.equals(op.path, prev.path)) {
122
+ return true;
123
+ }
124
+ return false;
125
+ };
126
+ var defaultShouldSave = (op, prev) => {
127
+ if (op.type === "set_selection") {
128
+ return false;
129
+ }
130
+ return true;
131
+ };
132
+
133
+ // src/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.tsx
134
+ var shouldSave = (op, prev) => {
135
+ const excludedNodeType = "suggestion";
136
+ if (op.type === "insert_node" && import_slate2.Element.isElement(op.node) && op.node.type === excludedNodeType) {
137
+ return false;
138
+ }
139
+ if (op.type === "remove_node" && import_slate2.Element.isElement(op.node) && op.node.type === excludedNodeType) {
140
+ return false;
141
+ }
142
+ if (op.type === "set_node" && "type" in op.newProperties && op.newProperties.type === excludedNodeType) {
143
+ return false;
144
+ }
145
+ if (op.type == "set_node" && "type" in op.properties && op.properties.type === excludedNodeType) {
146
+ return false;
147
+ }
148
+ if (op.type === "merge_node" && "type" in op.properties && op.properties.type === excludedNodeType) {
149
+ return false;
150
+ }
151
+ if (op.type === "split_node" && "type" in op.properties && op.properties.type === excludedNodeType) {
152
+ return false;
153
+ }
154
+ return defaultShouldSave(op, prev);
155
+ };
156
+ function useCopilotTextareaEditor() {
157
+ const editor = (0, import_react.useMemo)(() => {
158
+ const editor2 = withPartialHistory((0, import_slate_react.withReact)((0, import_slate2.createEditor)()), shouldSave);
159
+ const { isVoid } = editor2;
160
+ editor2.isVoid = (element) => {
161
+ switch (element.type) {
162
+ case "suggestion":
163
+ return true;
164
+ default:
165
+ return isVoid(element);
166
+ }
167
+ };
168
+ const { markableVoid } = editor2;
169
+ editor2.markableVoid = (element) => {
170
+ switch (element.type) {
171
+ case "suggestion":
172
+ return true;
173
+ default:
174
+ return markableVoid(element);
175
+ }
176
+ };
177
+ const { isInline } = editor2;
178
+ editor2.isInline = (element) => {
179
+ switch (element.type) {
180
+ case "suggestion":
181
+ return element.inline;
182
+ default:
183
+ return isInline(element);
184
+ }
185
+ };
186
+ return editor2;
187
+ }, []);
188
+ return editor;
189
+ }
190
+ // Annotate the CommonJS export names for ESM import in node:
191
+ 0 && (module.exports = {
192
+ useCopilotTextareaEditor
193
+ });
194
+ //# sourceMappingURL=use-copilot-textarea-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.tsx","../../../src/lib/slatejs-edits/with-partial-history.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { createEditor, Element } from \"slate\";\nimport { withReact } from \"slate-react\";\nimport {\n defaultShouldSave,\n ShouldSaveToHistory,\n withPartialHistory,\n} from \"../../lib/slatejs-edits/with-partial-history\";\nimport { CustomEditor } from \"../../types/base/custom-editor\";\n\nconst shouldSave: ShouldSaveToHistory = (op, prev) => {\n const excludedNodeType = \"suggestion\";\n // Check if the operation involves the suggestion inline node type\n if (\n op.type === \"insert_node\" &&\n Element.isElement(op.node) &&\n op.node.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type === \"remove_node\" &&\n Element.isElement(op.node) &&\n op.node.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type === \"set_node\" &&\n \"type\" in op.newProperties &&\n op.newProperties.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type == \"set_node\" &&\n \"type\" in op.properties &&\n op.properties.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type === \"merge_node\" &&\n \"type\" in op.properties &&\n op.properties.type === excludedNodeType\n ) {\n return false;\n }\n\n if (\n op.type === \"split_node\" &&\n \"type\" in op.properties &&\n op.properties.type === excludedNodeType\n ) {\n return false;\n }\n\n // Otherwise, save the operation to history\n return defaultShouldSave(op, prev);\n};\n\nexport function useCopilotTextareaEditor(): CustomEditor {\n const editor = useMemo(() => {\n const editor = withPartialHistory(withReact(createEditor()), shouldSave);\n\n const { isVoid } = editor;\n editor.isVoid = (element) => {\n switch (element.type) {\n case \"suggestion\":\n return true;\n default:\n return isVoid(element);\n }\n };\n\n const { markableVoid } = editor;\n editor.markableVoid = (element) => {\n switch (element.type) {\n case \"suggestion\":\n return true;\n default:\n return markableVoid(element);\n }\n };\n\n const { isInline } = editor;\n editor.isInline = (element) => {\n switch (element.type) {\n case \"suggestion\":\n return element.inline;\n default:\n return isInline(element);\n }\n };\n\n return editor;\n }, []);\n\n return editor;\n}\n","import { Editor, Operation, Path, Range, Transforms } from \"slate\";\nimport { HistoryEditor } from \"slate-history\";\n\n// Copy-pasted from `https://github.com/ianstormtaylor/slate/blob/main/packages/slate-history/src/with-history.ts`\n// With one exception: the `shouldSave` function is passed in as an argument to `withPartialHistory` instead of being hardcoded\nexport type ShouldSaveToHistory = (\n op: Operation,\n prev: Operation | undefined\n) => boolean;\n\nexport const withPartialHistory = <T extends Editor>(\n editor: T,\n shouldSave: ShouldSaveToHistory\n) => {\n const e = editor as T & HistoryEditor;\n const { apply } = e;\n e.history = { undos: [], redos: [] };\n\n e.redo = () => {\n const { history } = e;\n const { redos } = history;\n\n if (redos.length > 0) {\n const batch = redos[redos.length - 1];\n\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n for (const op of batch.operations) {\n e.apply(op);\n }\n });\n });\n\n history.redos.pop();\n e.writeHistory(\"undos\", batch);\n }\n };\n\n e.undo = () => {\n const { history } = e;\n const { undos } = history;\n\n if (undos.length > 0) {\n const batch = undos[undos.length - 1];\n\n HistoryEditor.withoutSaving(e, () => {\n Editor.withoutNormalizing(e, () => {\n const inverseOps = batch.operations.map(Operation.inverse).reverse();\n\n for (const op of inverseOps) {\n e.apply(op);\n }\n if (batch.selectionBefore) {\n Transforms.setSelection(e, batch.selectionBefore);\n }\n });\n });\n\n e.writeHistory(\"redos\", batch);\n history.undos.pop();\n }\n };\n\n e.apply = (op: Operation) => {\n const { operations, history } = e;\n const { undos } = history;\n const lastBatch = undos[undos.length - 1];\n const lastOp =\n lastBatch && lastBatch.operations[lastBatch.operations.length - 1];\n let save = HistoryEditor.isSaving(e);\n let merge = HistoryEditor.isMerging(e);\n\n if (save == null) {\n save = shouldSave(op, lastOp);\n }\n\n if (save) {\n if (merge == null) {\n if (lastBatch == null) {\n merge = false;\n } else if (operations.length !== 0) {\n merge = true;\n } else {\n merge = shouldMerge(op, lastOp);\n }\n }\n\n if (lastBatch && merge) {\n lastBatch.operations.push(op);\n } else {\n const batch = {\n operations: [op],\n selectionBefore: e.selection,\n };\n e.writeHistory(\"undos\", batch);\n }\n\n while (undos.length > 100) {\n undos.shift();\n }\n\n history.redos = [];\n }\n\n apply(op);\n };\n\n e.writeHistory = (stack: \"undos\" | \"redos\", batch: any) => {\n e.history[stack].push(batch);\n };\n\n return e;\n};\n\n/**\n * Check whether to merge an operation into the previous operation.\n */\n\nconst shouldMerge = (op: Operation, prev: Operation | undefined): boolean => {\n if (\n prev &&\n op.type === \"insert_text\" &&\n prev.type === \"insert_text\" &&\n op.offset === prev.offset + prev.text.length &&\n Path.equals(op.path, prev.path)\n ) {\n return true;\n }\n\n if (\n prev &&\n op.type === \"remove_text\" &&\n prev.type === \"remove_text\" &&\n op.offset + op.text.length === prev.offset &&\n Path.equals(op.path, prev.path)\n ) {\n return true;\n }\n\n return false;\n};\n\nexport const defaultShouldSave = (\n op: Operation,\n prev: Operation | undefined\n): boolean => {\n if (op.type === \"set_selection\") {\n return false;\n }\n\n return true;\n};\n"],"mappings":"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","names":["import_slate","shouldSave","editor"]}
@@ -1,5 +1,9 @@
1
- export { useCopilotTextareaEditor } from '../../chunk-CSGFJU3L.mjs';
2
- import '../../chunk-KCHYD3EB.mjs';
3
- import '../../chunk-MRXNTQOX.mjs';
4
- //# sourceMappingURL=out.js.map
1
+ import {
2
+ useCopilotTextareaEditor
3
+ } from "../../chunk-CSGFJU3L.mjs";
4
+ import "../../chunk-KCHYD3EB.mjs";
5
+ import "../../chunk-MRXNTQOX.mjs";
6
+ export {
7
+ useCopilotTextareaEditor
8
+ };
5
9
  //# sourceMappingURL=use-copilot-textarea-editor.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":""}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,7 @@
1
+ import React__default from 'react';
2
+ import { Editor } from 'slate';
3
+ import { HTMLCopilotTextAreaElement } from '../../types/html-copilot-textarea-element.js';
4
+
5
+ declare function usePopulateCopilotTextareaRef(editor: Editor, ref: React__default.Ref<HTMLCopilotTextAreaElement>): void;
6
+
7
+ export { usePopulateCopilotTextareaRef };