@copilotkit/react-textarea 0.0.0-0.0.0-max-changeset-10101010101010-20260109191632

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 (447) hide show
  1. package/CHANGELOG.md +4665 -0
  2. package/LICENSE +21 -0
  3. package/README.md +141 -0
  4. package/dist/chunk-23Q6A46J.mjs +103 -0
  5. package/dist/chunk-23Q6A46J.mjs.map +1 -0
  6. package/dist/chunk-2C7O2EVM.mjs +27 -0
  7. package/dist/chunk-2C7O2EVM.mjs.map +1 -0
  8. package/dist/chunk-2IWVZ4PP.mjs +103 -0
  9. package/dist/chunk-2IWVZ4PP.mjs.map +1 -0
  10. package/dist/chunk-2QDCE7PD.mjs +32 -0
  11. package/dist/chunk-2QDCE7PD.mjs.map +1 -0
  12. package/dist/chunk-3QJOFG3V.mjs +25 -0
  13. package/dist/chunk-3QJOFG3V.mjs.map +1 -0
  14. package/dist/chunk-4NHVQZ67.mjs +108 -0
  15. package/dist/chunk-4NHVQZ67.mjs.map +1 -0
  16. package/dist/chunk-4PDYALMP.mjs +52 -0
  17. package/dist/chunk-4PDYALMP.mjs.map +1 -0
  18. package/dist/chunk-5GYFXESG.mjs +31 -0
  19. package/dist/chunk-5GYFXESG.mjs.map +1 -0
  20. package/dist/chunk-5UNJXFUO.mjs +29 -0
  21. package/dist/chunk-5UNJXFUO.mjs.map +1 -0
  22. package/dist/chunk-63LEUA5A.mjs +269 -0
  23. package/dist/chunk-63LEUA5A.mjs.map +1 -0
  24. package/dist/chunk-65XYKSXZ.mjs +226 -0
  25. package/dist/chunk-65XYKSXZ.mjs.map +1 -0
  26. package/dist/chunk-6SGWO63I.mjs +32 -0
  27. package/dist/chunk-6SGWO63I.mjs.map +1 -0
  28. package/dist/chunk-7LSRNPNI.mjs +59 -0
  29. package/dist/chunk-7LSRNPNI.mjs.map +1 -0
  30. package/dist/chunk-AJ5OMEXM.mjs +13 -0
  31. package/dist/chunk-AJ5OMEXM.mjs.map +1 -0
  32. package/dist/chunk-D47EKHIF.mjs +26 -0
  33. package/dist/chunk-D47EKHIF.mjs.map +1 -0
  34. package/dist/chunk-DE5K76I2.mjs +1 -0
  35. package/dist/chunk-DE5K76I2.mjs.map +1 -0
  36. package/dist/chunk-DFTV4TST.mjs +36 -0
  37. package/dist/chunk-DFTV4TST.mjs.map +1 -0
  38. package/dist/chunk-DL3JWL2E.mjs +170 -0
  39. package/dist/chunk-DL3JWL2E.mjs.map +1 -0
  40. package/dist/chunk-DRV2FOHZ.mjs +70 -0
  41. package/dist/chunk-DRV2FOHZ.mjs.map +1 -0
  42. package/dist/chunk-ECR45NSD.mjs +104 -0
  43. package/dist/chunk-ECR45NSD.mjs.map +1 -0
  44. package/dist/chunk-EJGGLWWR.mjs +82 -0
  45. package/dist/chunk-EJGGLWWR.mjs.map +1 -0
  46. package/dist/chunk-F2ULK22F.mjs +39 -0
  47. package/dist/chunk-F2ULK22F.mjs.map +1 -0
  48. package/dist/chunk-F6RLSVG3.mjs +30 -0
  49. package/dist/chunk-F6RLSVG3.mjs.map +1 -0
  50. package/dist/chunk-GQN2HYFJ.mjs +22 -0
  51. package/dist/chunk-GQN2HYFJ.mjs.map +1 -0
  52. package/dist/chunk-H4VKQGVU.mjs +1 -0
  53. package/dist/chunk-H4VKQGVU.mjs.map +1 -0
  54. package/dist/chunk-I72DKFHD.mjs +114 -0
  55. package/dist/chunk-I72DKFHD.mjs.map +1 -0
  56. package/dist/chunk-IU3WTXLQ.mjs +1 -0
  57. package/dist/chunk-IU3WTXLQ.mjs.map +1 -0
  58. package/dist/chunk-JLOABKLH.mjs +49 -0
  59. package/dist/chunk-JLOABKLH.mjs.map +1 -0
  60. package/dist/chunk-KMVGEY7Q.mjs +51 -0
  61. package/dist/chunk-KMVGEY7Q.mjs.map +1 -0
  62. package/dist/chunk-KNQIEOFP.mjs +19 -0
  63. package/dist/chunk-KNQIEOFP.mjs.map +1 -0
  64. package/dist/chunk-L7VVZH4Q.mjs +1 -0
  65. package/dist/chunk-L7VVZH4Q.mjs.map +1 -0
  66. package/dist/chunk-LYB4B6MK.mjs +19 -0
  67. package/dist/chunk-LYB4B6MK.mjs.map +1 -0
  68. package/dist/chunk-MCNXIA4Q.mjs +75 -0
  69. package/dist/chunk-MCNXIA4Q.mjs.map +1 -0
  70. package/dist/chunk-MMVDU6DF.mjs +1 -0
  71. package/dist/chunk-MMVDU6DF.mjs.map +1 -0
  72. package/dist/chunk-MRXNTQOX.mjs +59 -0
  73. package/dist/chunk-MRXNTQOX.mjs.map +1 -0
  74. package/dist/chunk-NAFNY4FL.mjs +17 -0
  75. package/dist/chunk-NAFNY4FL.mjs.map +1 -0
  76. package/dist/chunk-QFXR6DOA.mjs +64 -0
  77. package/dist/chunk-QFXR6DOA.mjs.map +1 -0
  78. package/dist/chunk-QJNFNPWH.mjs +85 -0
  79. package/dist/chunk-QJNFNPWH.mjs.map +1 -0
  80. package/dist/chunk-RUV6NBIF.mjs +1 -0
  81. package/dist/chunk-RUV6NBIF.mjs.map +1 -0
  82. package/dist/chunk-T4HVUB4T.mjs +60 -0
  83. package/dist/chunk-T4HVUB4T.mjs.map +1 -0
  84. package/dist/chunk-T6MTDQZ7.mjs +45 -0
  85. package/dist/chunk-T6MTDQZ7.mjs.map +1 -0
  86. package/dist/chunk-VSVQZUPW.mjs +124 -0
  87. package/dist/chunk-VSVQZUPW.mjs.map +1 -0
  88. package/dist/chunk-WADHCMPK.mjs +1 -0
  89. package/dist/chunk-WADHCMPK.mjs.map +1 -0
  90. package/dist/chunk-WGWQRALG.mjs +83 -0
  91. package/dist/chunk-WGWQRALG.mjs.map +1 -0
  92. package/dist/chunk-WJHSY5T6.mjs +1 -0
  93. package/dist/chunk-WJHSY5T6.mjs.map +1 -0
  94. package/dist/chunk-X2QR2YGZ.mjs +120 -0
  95. package/dist/chunk-X2QR2YGZ.mjs.map +1 -0
  96. package/dist/chunk-YLFAIYRY.mjs +50 -0
  97. package/dist/chunk-YLFAIYRY.mjs.map +1 -0
  98. package/dist/chunk-ZQSEYPNN.mjs +74 -0
  99. package/dist/chunk-ZQSEYPNN.mjs.map +1 -0
  100. package/dist/components/base-copilot-textarea/base-copilot-textarea.css +9 -0
  101. package/dist/components/base-copilot-textarea/base-copilot-textarea.css.map +1 -0
  102. package/dist/components/base-copilot-textarea/base-copilot-textarea.d.ts +43 -0
  103. package/dist/components/base-copilot-textarea/base-copilot-textarea.js +1781 -0
  104. package/dist/components/base-copilot-textarea/base-copilot-textarea.js.map +1 -0
  105. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +40 -0
  106. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs.map +1 -0
  107. package/dist/components/base-copilot-textarea/render-element.d.ts +7 -0
  108. package/dist/components/base-copilot-textarea/render-element.js +75 -0
  109. package/dist/components/base-copilot-textarea/render-element.js.map +1 -0
  110. package/dist/components/base-copilot-textarea/render-element.mjs +8 -0
  111. package/dist/components/base-copilot-textarea/render-element.mjs.map +1 -0
  112. package/dist/components/base-copilot-textarea/render-placeholder.d.ts +7 -0
  113. package/dist/components/base-copilot-textarea/render-placeholder.js +72 -0
  114. package/dist/components/base-copilot-textarea/render-placeholder.js.map +1 -0
  115. package/dist/components/base-copilot-textarea/render-placeholder.mjs +8 -0
  116. package/dist/components/base-copilot-textarea/render-placeholder.mjs.map +1 -0
  117. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.d.ts +8 -0
  118. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js +112 -0
  119. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js.map +1 -0
  120. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs +9 -0
  121. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs.map +1 -0
  122. package/dist/components/base-copilot-textarea/use-add-branding-css.d.ts +3 -0
  123. package/dist/components/base-copilot-textarea/use-add-branding-css.js +83 -0
  124. package/dist/components/base-copilot-textarea/use-add-branding-css.js.map +1 -0
  125. package/dist/components/base-copilot-textarea/use-add-branding-css.mjs +8 -0
  126. package/dist/components/base-copilot-textarea/use-add-branding-css.mjs.map +1 -0
  127. package/dist/components/copilot-textarea/copilot-textarea.css +9 -0
  128. package/dist/components/copilot-textarea/copilot-textarea.css.map +1 -0
  129. package/dist/components/copilot-textarea/copilot-textarea.d.ts +171 -0
  130. package/dist/components/copilot-textarea/copilot-textarea.js +2261 -0
  131. package/dist/components/copilot-textarea/copilot-textarea.js.map +1 -0
  132. package/dist/components/copilot-textarea/copilot-textarea.mjs +49 -0
  133. package/dist/components/copilot-textarea/copilot-textarea.mjs.map +1 -0
  134. package/dist/components/hovering-toolbar/hovering-editor-provider.d.ts +18 -0
  135. package/dist/components/hovering-toolbar/hovering-editor-provider.js +44 -0
  136. package/dist/components/hovering-toolbar/hovering-editor-provider.js.map +1 -0
  137. package/dist/components/hovering-toolbar/hovering-editor-provider.mjs +10 -0
  138. package/dist/components/hovering-toolbar/hovering-editor-provider.mjs.map +1 -0
  139. package/dist/components/hovering-toolbar/hovering-toolbar-components.d.ts +18 -0
  140. package/dist/components/hovering-toolbar/hovering-toolbar-components.js +164 -0
  141. package/dist/components/hovering-toolbar/hovering-toolbar-components.js.map +1 -0
  142. package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs +16 -0
  143. package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs.map +1 -0
  144. package/dist/components/hovering-toolbar/hovering-toolbar.d.ts +12 -0
  145. package/dist/components/hovering-toolbar/hovering-toolbar.js +894 -0
  146. package/dist/components/hovering-toolbar/hovering-toolbar.js.map +1 -0
  147. package/dist/components/hovering-toolbar/hovering-toolbar.mjs +23 -0
  148. package/dist/components/hovering-toolbar/hovering-toolbar.mjs.map +1 -0
  149. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.d.ts +16 -0
  150. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js +603 -0
  151. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js.map +1 -0
  152. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs +18 -0
  153. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs.map +1 -0
  154. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.d.ts +13 -0
  155. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js +626 -0
  156. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js.map +1 -0
  157. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs +19 -0
  158. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs.map +1 -0
  159. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.d.ts +16 -0
  160. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.js +133 -0
  161. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.js.map +1 -0
  162. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.mjs +12 -0
  163. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.mjs.map +1 -0
  164. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.d.ts +4 -0
  165. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js +626 -0
  166. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js.map +1 -0
  167. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs +20 -0
  168. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs.map +1 -0
  169. package/dist/components/index.css +9 -0
  170. package/dist/components/index.css.map +1 -0
  171. package/dist/components/index.d.ts +15 -0
  172. package/dist/components/index.js +2265 -0
  173. package/dist/components/index.js.map +1 -0
  174. package/dist/components/index.mjs +53 -0
  175. package/dist/components/index.mjs.map +1 -0
  176. package/dist/components/manual-ui/chip-with-icon.d.ts +10 -0
  177. package/dist/components/manual-ui/chip-with-icon.js +38 -0
  178. package/dist/components/manual-ui/chip-with-icon.js.map +1 -0
  179. package/dist/components/manual-ui/chip-with-icon.mjs +15 -0
  180. package/dist/components/manual-ui/chip-with-icon.mjs.map +1 -0
  181. package/dist/components/source-search-box/source-search-box.d.ts +16 -0
  182. package/dist/components/source-search-box/source-search-box.js +240 -0
  183. package/dist/components/source-search-box/source-search-box.js.map +1 -0
  184. package/dist/components/source-search-box/source-search-box.mjs +13 -0
  185. package/dist/components/source-search-box/source-search-box.mjs.map +1 -0
  186. package/dist/components/ui/button.d.ts +14 -0
  187. package/dist/components/ui/button.js +114 -0
  188. package/dist/components/ui/button.js.map +1 -0
  189. package/dist/components/ui/button.mjs +11 -0
  190. package/dist/components/ui/button.mjs.map +1 -0
  191. package/dist/components/ui/command.d.ts +53 -0
  192. package/dist/components/ui/command.js +285 -0
  193. package/dist/components/ui/command.js.map +1 -0
  194. package/dist/components/ui/command.mjs +26 -0
  195. package/dist/components/ui/command.mjs.map +1 -0
  196. package/dist/components/ui/dialog.d.ts +19 -0
  197. package/dist/components/ui/dialog.js +183 -0
  198. package/dist/components/ui/dialog.js.map +1 -0
  199. package/dist/components/ui/dialog.mjs +21 -0
  200. package/dist/components/ui/dialog.mjs.map +1 -0
  201. package/dist/components/ui/label.d.ts +8 -0
  202. package/dist/components/ui/label.js +87 -0
  203. package/dist/components/ui/label.js.map +1 -0
  204. package/dist/components/ui/label.mjs +9 -0
  205. package/dist/components/ui/label.mjs.map +1 -0
  206. package/dist/context/index.d.ts +2 -0
  207. package/dist/context/index.js +19 -0
  208. package/dist/context/index.js.map +1 -0
  209. package/dist/context/index.mjs +2 -0
  210. package/dist/context/index.mjs.map +1 -0
  211. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.d.ts +15 -0
  212. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.js +180 -0
  213. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.js.map +1 -0
  214. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs +11 -0
  215. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs.map +1 -0
  216. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.d.ts +8 -0
  217. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.js +194 -0
  218. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.js.map +1 -0
  219. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs +9 -0
  220. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs.map +1 -0
  221. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.d.ts +7 -0
  222. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.js +180 -0
  223. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.js.map +1 -0
  224. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs +10 -0
  225. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs.map +1 -0
  226. package/dist/hooks/index.d.ts +2 -0
  227. package/dist/hooks/index.js +19 -0
  228. package/dist/hooks/index.js.map +1 -0
  229. package/dist/hooks/index.mjs +2 -0
  230. package/dist/hooks/index.mjs.map +1 -0
  231. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts +22 -0
  232. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.js +137 -0
  233. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.js.map +1 -0
  234. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs +9 -0
  235. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map +1 -0
  236. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.d.ts +23 -0
  237. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.js +230 -0
  238. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.js.map +1 -0
  239. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs +9 -0
  240. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs.map +1 -0
  241. package/dist/hooks/misc/use-autosize-textarea.d.ts +5 -0
  242. package/dist/hooks/misc/use-autosize-textarea.js +37 -0
  243. package/dist/hooks/misc/use-autosize-textarea.js.map +1 -0
  244. package/dist/hooks/misc/use-autosize-textarea.mjs +8 -0
  245. package/dist/hooks/misc/use-autosize-textarea.mjs.map +1 -0
  246. package/dist/index.css +643 -0
  247. package/dist/index.css.map +1 -0
  248. package/dist/index.d.ts +15 -0
  249. package/dist/index.js +2270 -0
  250. package/dist/index.js.map +1 -0
  251. package/dist/index.mjs +64 -0
  252. package/dist/index.mjs.map +1 -0
  253. package/dist/lib/debouncer.d.ts +11 -0
  254. package/dist/lib/debouncer.js +76 -0
  255. package/dist/lib/debouncer.js.map +1 -0
  256. package/dist/lib/debouncer.mjs +8 -0
  257. package/dist/lib/debouncer.mjs.map +1 -0
  258. package/dist/lib/editor-to-text.d.ts +7 -0
  259. package/dist/lib/editor-to-text.js +69 -0
  260. package/dist/lib/editor-to-text.js.map +1 -0
  261. package/dist/lib/editor-to-text.mjs +8 -0
  262. package/dist/lib/editor-to-text.mjs.map +1 -0
  263. package/dist/lib/get-text-around-cursor.d.ts +15 -0
  264. package/dist/lib/get-text-around-cursor.js +131 -0
  265. package/dist/lib/get-text-around-cursor.js.map +1 -0
  266. package/dist/lib/get-text-around-cursor.mjs +14 -0
  267. package/dist/lib/get-text-around-cursor.mjs.map +1 -0
  268. package/dist/lib/retry.d.ts +3 -0
  269. package/dist/lib/retry.js +43 -0
  270. package/dist/lib/retry.js.map +1 -0
  271. package/dist/lib/retry.mjs +8 -0
  272. package/dist/lib/retry.mjs.map +1 -0
  273. package/dist/lib/slatejs-edits/add-autocompletions.d.ts +8 -0
  274. package/dist/lib/slatejs-edits/add-autocompletions.js +51 -0
  275. package/dist/lib/slatejs-edits/add-autocompletions.js.map +1 -0
  276. package/dist/lib/slatejs-edits/add-autocompletions.mjs +8 -0
  277. package/dist/lib/slatejs-edits/add-autocompletions.mjs.map +1 -0
  278. package/dist/lib/slatejs-edits/clear-autocompletions.d.ts +8 -0
  279. package/dist/lib/slatejs-edits/clear-autocompletions.js +46 -0
  280. package/dist/lib/slatejs-edits/clear-autocompletions.js.map +1 -0
  281. package/dist/lib/slatejs-edits/clear-autocompletions.mjs +8 -0
  282. package/dist/lib/slatejs-edits/clear-autocompletions.mjs.map +1 -0
  283. package/dist/lib/slatejs-edits/replace-text.d.ts +5 -0
  284. package/dist/lib/slatejs-edits/replace-text.js +53 -0
  285. package/dist/lib/slatejs-edits/replace-text.js.map +1 -0
  286. package/dist/lib/slatejs-edits/replace-text.mjs +8 -0
  287. package/dist/lib/slatejs-edits/replace-text.mjs.map +1 -0
  288. package/dist/lib/slatejs-edits/with-partial-history.d.ts +8 -0
  289. package/dist/lib/slatejs-edits/with-partial-history.js +133 -0
  290. package/dist/lib/slatejs-edits/with-partial-history.js.map +1 -0
  291. package/dist/lib/slatejs-edits/with-partial-history.mjs +10 -0
  292. package/dist/lib/slatejs-edits/with-partial-history.mjs.map +1 -0
  293. package/dist/lib/stream-promise-flatten.d.ts +12 -0
  294. package/dist/lib/stream-promise-flatten.js +72 -0
  295. package/dist/lib/stream-promise-flatten.js.map +1 -0
  296. package/dist/lib/stream-promise-flatten.mjs +8 -0
  297. package/dist/lib/stream-promise-flatten.mjs.map +1 -0
  298. package/dist/lib/utils.d.ts +9 -0
  299. package/dist/lib/utils.js +94 -0
  300. package/dist/lib/utils.js.map +1 -0
  301. package/dist/lib/utils.mjs +16 -0
  302. package/dist/lib/utils.mjs.map +1 -0
  303. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.d.ts +23 -0
  304. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.js +19 -0
  305. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.js.map +1 -0
  306. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs +1 -0
  307. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs.map +1 -0
  308. package/dist/types/autosuggestions-config/autosuggestions-config.d.ts +20 -0
  309. package/dist/types/autosuggestions-config/autosuggestions-config.js +287 -0
  310. package/dist/types/autosuggestions-config/autosuggestions-config.js.map +1 -0
  311. package/dist/types/autosuggestions-config/autosuggestions-config.mjs +13 -0
  312. package/dist/types/autosuggestions-config/autosuggestions-config.mjs.map +1 -0
  313. package/dist/types/autosuggestions-config/editing-api-config.d.ts +15 -0
  314. package/dist/types/autosuggestions-config/editing-api-config.js +108 -0
  315. package/dist/types/autosuggestions-config/editing-api-config.js.map +1 -0
  316. package/dist/types/autosuggestions-config/editing-api-config.mjs +12 -0
  317. package/dist/types/autosuggestions-config/editing-api-config.mjs.map +1 -0
  318. package/dist/types/autosuggestions-config/index.d.ts +10 -0
  319. package/dist/types/autosuggestions-config/index.js +287 -0
  320. package/dist/types/autosuggestions-config/index.js.map +1 -0
  321. package/dist/types/autosuggestions-config/index.mjs +14 -0
  322. package/dist/types/autosuggestions-config/index.mjs.map +1 -0
  323. package/dist/types/autosuggestions-config/insertions-api-config.d.ts +15 -0
  324. package/dist/types/autosuggestions-config/insertions-api-config.js +101 -0
  325. package/dist/types/autosuggestions-config/insertions-api-config.js.map +1 -0
  326. package/dist/types/autosuggestions-config/insertions-api-config.mjs +12 -0
  327. package/dist/types/autosuggestions-config/insertions-api-config.mjs.map +1 -0
  328. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.d.ts +3 -0
  329. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.js +19 -0
  330. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.js.map +1 -0
  331. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs +1 -0
  332. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs.map +1 -0
  333. package/dist/types/autosuggestions-config/suggestions-api-config.d.ts +15 -0
  334. package/dist/types/autosuggestions-config/suggestions-api-config.js +90 -0
  335. package/dist/types/autosuggestions-config/suggestions-api-config.js.map +1 -0
  336. package/dist/types/autosuggestions-config/suggestions-api-config.mjs +12 -0
  337. package/dist/types/autosuggestions-config/suggestions-api-config.mjs.map +1 -0
  338. package/dist/types/base/autosuggestion-state.d.ts +8 -0
  339. package/dist/types/base/autosuggestion-state.js +19 -0
  340. package/dist/types/base/autosuggestion-state.js.map +1 -0
  341. package/dist/types/base/autosuggestion-state.mjs +1 -0
  342. package/dist/types/base/autosuggestion-state.mjs.map +1 -0
  343. package/dist/types/base/autosuggestions-bare-function.d.ts +19 -0
  344. package/dist/types/base/autosuggestions-bare-function.js +19 -0
  345. package/dist/types/base/autosuggestions-bare-function.js.map +1 -0
  346. package/dist/types/base/autosuggestions-bare-function.mjs +1 -0
  347. package/dist/types/base/autosuggestions-bare-function.mjs.map +1 -0
  348. package/dist/types/base/base-autosuggestions-config.d.ts +87 -0
  349. package/dist/types/base/base-autosuggestions-config.js +54 -0
  350. package/dist/types/base/base-autosuggestions-config.js.map +1 -0
  351. package/dist/types/base/base-autosuggestions-config.mjs +8 -0
  352. package/dist/types/base/base-autosuggestions-config.mjs.map +1 -0
  353. package/dist/types/base/base-copilot-textarea-props.d.ts +5 -0
  354. package/dist/types/base/base-copilot-textarea-props.js +19 -0
  355. package/dist/types/base/base-copilot-textarea-props.js.map +1 -0
  356. package/dist/types/base/base-copilot-textarea-props.mjs +1 -0
  357. package/dist/types/base/base-copilot-textarea-props.mjs.map +1 -0
  358. package/dist/types/base/custom-editor.d.ts +29 -0
  359. package/dist/types/base/custom-editor.js +19 -0
  360. package/dist/types/base/custom-editor.js.map +1 -0
  361. package/dist/types/base/custom-editor.mjs +1 -0
  362. package/dist/types/base/custom-editor.mjs.map +1 -0
  363. package/dist/types/base/editor-autocomplete-state.d.ts +10 -0
  364. package/dist/types/base/editor-autocomplete-state.js +40 -0
  365. package/dist/types/base/editor-autocomplete-state.js.map +1 -0
  366. package/dist/types/base/editor-autocomplete-state.mjs +9 -0
  367. package/dist/types/base/editor-autocomplete-state.mjs.map +1 -0
  368. package/dist/types/base/index.d.ts +54 -0
  369. package/dist/types/base/index.js +56 -0
  370. package/dist/types/base/index.js.map +1 -0
  371. package/dist/types/base/index.mjs +9 -0
  372. package/dist/types/base/index.mjs.map +1 -0
  373. package/dist/types/html-copilot-textarea-element.d.ts +7 -0
  374. package/dist/types/html-copilot-textarea-element.js +19 -0
  375. package/dist/types/html-copilot-textarea-element.js.map +1 -0
  376. package/dist/types/html-copilot-textarea-element.mjs +2 -0
  377. package/dist/types/html-copilot-textarea-element.mjs.map +1 -0
  378. package/dist/types/index.d.ts +13 -0
  379. package/dist/types/index.js +289 -0
  380. package/dist/types/index.js.map +1 -0
  381. package/dist/types/index.mjs +19 -0
  382. package/dist/types/index.mjs.map +1 -0
  383. package/jest.config.js +5 -0
  384. package/package.json +99 -0
  385. package/postcss.config.js +12 -0
  386. package/src/components/base-copilot-textarea/base-copilot-textarea.css +9 -0
  387. package/src/components/base-copilot-textarea/base-copilot-textarea.tsx +323 -0
  388. package/src/components/base-copilot-textarea/render-element.tsx +40 -0
  389. package/src/components/base-copilot-textarea/render-placeholder.tsx +24 -0
  390. package/src/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.tsx +80 -0
  391. package/src/components/base-copilot-textarea/use-add-branding-css.tsx +74 -0
  392. package/src/components/copilot-textarea/copilot-textarea.tsx +210 -0
  393. package/src/components/hovering-toolbar/hovering-editor-provider.tsx +31 -0
  394. package/src/components/hovering-toolbar/hovering-toolbar-components.tsx +88 -0
  395. package/src/components/hovering-toolbar/hovering-toolbar.tsx +154 -0
  396. package/src/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.tsx +273 -0
  397. package/src/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.tsx +30 -0
  398. package/src/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.tsx +55 -0
  399. package/src/components/hovering-toolbar/text-insertion-prompt-box/index.ts +2 -0
  400. package/src/components/index.ts +4 -0
  401. package/src/components/manual-ui/chip-with-icon.tsx +17 -0
  402. package/src/components/source-search-box/source-search-box.tsx +117 -0
  403. package/src/components/ui/button.tsx +49 -0
  404. package/src/components/ui/command.tsx +141 -0
  405. package/src/components/ui/dialog.tsx +107 -0
  406. package/src/components/ui/label.tsx +19 -0
  407. package/src/context/index.ts +1 -0
  408. package/src/hooks/base-copilot-textarea-implementation/use-autosuggestions.ts +142 -0
  409. package/src/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.tsx +100 -0
  410. package/src/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.ts +93 -0
  411. package/src/hooks/index.ts +1 -0
  412. package/src/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.tsx +116 -0
  413. package/src/hooks/make-autosuggestions-function/use-make-standard-insertion-function.tsx +215 -0
  414. package/src/hooks/misc/use-autosize-textarea.tsx +18 -0
  415. package/src/index.tsx +7 -0
  416. package/src/lib/debouncer.ts +36 -0
  417. package/src/lib/editor-to-text.ts +61 -0
  418. package/src/lib/get-text-around-cursor.ts +135 -0
  419. package/src/lib/retry.tsx +23 -0
  420. package/src/lib/slatejs-edits/add-autocompletions.ts +30 -0
  421. package/src/lib/slatejs-edits/clear-autocompletions.ts +19 -0
  422. package/src/lib/slatejs-edits/replace-text.ts +28 -0
  423. package/src/lib/slatejs-edits/with-partial-history.ts +149 -0
  424. package/src/lib/stream-promise-flatten.ts +33 -0
  425. package/src/lib/utils.test.ts +7 -0
  426. package/src/lib/utils.ts +49 -0
  427. package/src/styles.css +3 -0
  428. package/src/types/autosuggestions-config/autosuggestions-config-user-specified.tsx +19 -0
  429. package/src/types/autosuggestions-config/autosuggestions-config.tsx +30 -0
  430. package/src/types/autosuggestions-config/editing-api-config.tsx +96 -0
  431. package/src/types/autosuggestions-config/index.ts +8 -0
  432. package/src/types/autosuggestions-config/insertions-api-config.tsx +87 -0
  433. package/src/types/autosuggestions-config/subtypes/make-system-prompt.ts +1 -0
  434. package/src/types/autosuggestions-config/suggestions-api-config.tsx +76 -0
  435. package/src/types/base/autosuggestion-state.ts +6 -0
  436. package/src/types/base/autosuggestions-bare-function.ts +30 -0
  437. package/src/types/base/base-autosuggestions-config.tsx +128 -0
  438. package/src/types/base/base-copilot-textarea-props.tsx +58 -0
  439. package/src/types/base/custom-editor.tsx +29 -0
  440. package/src/types/base/editor-autocomplete-state.ts +20 -0
  441. package/src/types/base/index.ts +6 -0
  442. package/src/types/html-copilot-textarea-element.ts +5 -0
  443. package/src/types/index.ts +3 -0
  444. package/tailwind.config.js +9 -0
  445. package/tsconfig.json +12 -0
  446. package/tsup.config.ts +11 -0
  447. package/typedoc.json +4 -0
@@ -0,0 +1,59 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ var __async = (__this, __arguments, generator) => {
33
+ return new Promise((resolve, reject) => {
34
+ var fulfilled = (value) => {
35
+ try {
36
+ step(generator.next(value));
37
+ } catch (e) {
38
+ reject(e);
39
+ }
40
+ };
41
+ var rejected = (value) => {
42
+ try {
43
+ step(generator.throw(value));
44
+ } catch (e) {
45
+ reject(e);
46
+ }
47
+ };
48
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
49
+ step((generator = generator.apply(__this, __arguments)).next());
50
+ });
51
+ };
52
+
53
+ export {
54
+ __spreadValues,
55
+ __spreadProps,
56
+ __objRest,
57
+ __async
58
+ };
59
+ //# sourceMappingURL=chunk-MRXNTQOX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,17 @@
1
+ // src/hooks/misc/use-autosize-textarea.tsx
2
+ import { useEffect } from "react";
3
+ var useAutosizeTextArea = (textAreaRef, value) => {
4
+ useEffect(() => {
5
+ if (textAreaRef.current !== null) {
6
+ textAreaRef.current.style.height = "0px";
7
+ const scrollHeight = textAreaRef.current.scrollHeight;
8
+ textAreaRef.current.style.height = scrollHeight + "px";
9
+ }
10
+ }, [textAreaRef, value]);
11
+ };
12
+ var use_autosize_textarea_default = useAutosizeTextArea;
13
+
14
+ export {
15
+ use_autosize_textarea_default
16
+ };
17
+ //# sourceMappingURL=chunk-NAFNY4FL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/misc/use-autosize-textarea.tsx"],"sourcesContent":["import { Ref, RefObject, useEffect } from \"react\";\n\n// Updates the height of a <textarea> when the value changes.\nconst useAutosizeTextArea = (textAreaRef: RefObject<HTMLTextAreaElement | null>, value: string) => {\n useEffect(() => {\n if (textAreaRef.current !== null) {\n // We need to reset the height momentarily to get the correct scrollHeight for the textarea\n textAreaRef.current.style.height = \"0px\";\n const scrollHeight = textAreaRef.current.scrollHeight;\n\n // We then set the height directly, outside of the render loop\n // Trying to set this with state or a ref will product an incorrect value.\n textAreaRef.current.style.height = scrollHeight + \"px\";\n }\n }, [textAreaRef, value]);\n};\n\nexport default useAutosizeTextArea;\n"],"mappings":";AAAA,SAAyB,iBAAiB;AAG1C,IAAM,sBAAsB,CAAC,aAAoD,UAAkB;AACjG,YAAU,MAAM;AACd,QAAI,YAAY,YAAY,MAAM;AAEhC,kBAAY,QAAQ,MAAM,SAAS;AACnC,YAAM,eAAe,YAAY,QAAQ;AAIzC,kBAAY,QAAQ,MAAM,SAAS,eAAe;AAAA,IACpD;AAAA,EACF,GAAG,CAAC,aAAa,KAAK,CAAC;AACzB;AAEA,IAAO,gCAAQ;","names":[]}
@@ -0,0 +1,64 @@
1
+ // src/types/autosuggestions-config/suggestions-api-config.tsx
2
+ import { Role, TextMessage } from "@copilotkit/runtime-client-gql";
3
+ var defaultSuggestionsMakeSystemPrompt = (textareaPurpose, contextString) => {
4
+ return `You are a versatile writing assistant.
5
+
6
+ The user is writing some text.
7
+ The purpose is: "${textareaPurpose}"
8
+
9
+ Your job is to guess what the user will write next AS BEST YOU CAN.
10
+ Only guess a SHORT distance ahead. Usually 1 sentence, or at most 1 paragraph.
11
+
12
+ Adjust yourself to the user's style and implied intent.
13
+
14
+ The user will provide both the text before and after the cursor. You should use this to infer what the user is likely to write next.
15
+ <TextAfterCursor>
16
+ <TextBeforeCursor>
17
+ <YourSuggestion>
18
+
19
+ If we need to add a whitespace character to the suggested text, make sure to explicitly add it in.
20
+ Refrain from adding <YourSuggestion> tags when responding
21
+
22
+ The following external context is also provided. Use it to help you make better suggestions!!!
23
+ \`\`\`
24
+ ${contextString}
25
+ \`\`\`
26
+ `;
27
+ };
28
+ var defaultSuggestionsFewShotMessages = [
29
+ new TextMessage({
30
+ role: Role.User,
31
+ content: "<TextAfterCursor>While I was there I also picked up some apples, oranges, and bananas.</TextAfterCursor>"
32
+ }),
33
+ new TextMessage({
34
+ role: Role.User,
35
+ content: "This morning I woke up and went straight to the grocery store."
36
+ }),
37
+ new TextMessage({
38
+ role: Role.Assistant,
39
+ content: " When I arrived I went straight to the produce section and picked out a big watermelon. "
40
+ }),
41
+ new TextMessage({
42
+ role: Role.User,
43
+ content: "<TextAfterCursor>and (iii) to the appointment of the Equityholders' Representative pursuant to Section 10.7 of the Merger Agreement and to the provisions thereof.</TextAfterCursor>"
44
+ }),
45
+ new TextMessage({
46
+ role: Role.User,
47
+ content: `<TextBeforeCursor>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;</TextBeforeCursor>`
48
+ }),
49
+ new TextMessage({
50
+ role: Role.Assistant,
51
+ 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"; `
52
+ })
53
+ ];
54
+ var defaultSuggestionsApiConfig = {
55
+ makeSystemPrompt: defaultSuggestionsMakeSystemPrompt,
56
+ fewShotMessages: defaultSuggestionsFewShotMessages
57
+ };
58
+
59
+ export {
60
+ defaultSuggestionsMakeSystemPrompt,
61
+ defaultSuggestionsFewShotMessages,
62
+ defaultSuggestionsApiConfig
63
+ };
64
+ //# sourceMappingURL=chunk-QFXR6DOA.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types/autosuggestions-config/suggestions-api-config.tsx"],"sourcesContent":["import { Message, Role, TextMessage } from \"@copilotkit/runtime-client-gql\";\nimport { MakeSystemPrompt } from \"./subtypes/make-system-prompt\";\n\nexport interface SuggestionsApiConfig {\n makeSystemPrompt: MakeSystemPrompt;\n fewShotMessages: Message[];\n maxTokens?: number;\n stop?: string[];\n temperature?: number;\n}\n\nexport const defaultSuggestionsMakeSystemPrompt: 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\nYour job is to guess what the user will write next 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 both the text before and after the cursor. You should use this to infer what the user is likely to write next.\n<TextAfterCursor>\n<TextBeforeCursor>\n<YourSuggestion>\n\nIf we need to add a whitespace character to the suggested text, make sure to explicitly add it in.\nRefrain from adding <YourSuggestion> tags when responding\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 defaultSuggestionsFewShotMessages: Message[] = [\n new TextMessage({\n role: Role.User,\n content:\n \"<TextAfterCursor>While I was there I also picked up some apples, oranges, and bananas.</TextAfterCursor>\",\n }),\n new TextMessage({\n role: Role.User,\n content: \"This morning I woke up and went straight to the grocery store.\",\n }),\n new TextMessage({\n role: Role.Assistant,\n content:\n \" When I arrived I went straight to the produce section and picked out a big watermelon. \",\n }),\n new TextMessage({\n role: Role.User,\n content:\n \"<TextAfterCursor>and (iii) to the appointment of the Equityholders' Representative pursuant to Section 10.7 of the Merger Agreement and to the provisions thereof.</TextAfterCursor>\",\n }),\n new TextMessage({\n role: Role.User,\n content:\n '<TextBeforeCursor>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;</TextBeforeCursor>',\n }),\n new TextMessage({\n role: 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 defaultSuggestionsApiConfig: SuggestionsApiConfig = {\n makeSystemPrompt: defaultSuggestionsMakeSystemPrompt,\n fewShotMessages: defaultSuggestionsFewShotMessages,\n};\n"],"mappings":";AAAA,SAAkB,MAAM,mBAAmB;AAWpC,IAAM,qCAAuD,CAClE,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,EAiBlB;AAAA;AAAA;AAGF;AAEO,IAAM,oCAA+C;AAAA,EAC1D,IAAI,YAAY;AAAA,IACd,MAAM,KAAK;AAAA,IACX,SACE;AAAA,EACJ,CAAC;AAAA,EACD,IAAI,YAAY;AAAA,IACd,MAAM,KAAK;AAAA,IACX,SAAS;AAAA,EACX,CAAC;AAAA,EACD,IAAI,YAAY;AAAA,IACd,MAAM,KAAK;AAAA,IACX,SACE;AAAA,EACJ,CAAC;AAAA,EACD,IAAI,YAAY;AAAA,IACd,MAAM,KAAK;AAAA,IACX,SACE;AAAA,EACJ,CAAC;AAAA,EACD,IAAI,YAAY;AAAA,IACd,MAAM,KAAK;AAAA,IACX,SACE;AAAA,EACJ,CAAC;AAAA,EACD,IAAI,YAAY;AAAA,IACd,MAAM,KAAK;AAAA,IACX,SACE;AAAA,EACJ,CAAC;AACH;AAEO,IAAM,8BAAoD;AAAA,EAC/D,kBAAkB;AAAA,EAClB,iBAAiB;AACnB;","names":[]}
@@ -0,0 +1,85 @@
1
+ import {
2
+ replaceEditorText
3
+ } from "./chunk-5UNJXFUO.mjs";
4
+ import {
5
+ getFullEditorTextWithNewlines
6
+ } from "./chunk-ECR45NSD.mjs";
7
+
8
+ // src/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.ts
9
+ import React from "react";
10
+ import { ReactEditor } from "slate-react";
11
+ function usePopulateCopilotTextareaRef(editor, ref) {
12
+ React.useImperativeHandle(ref, () => {
13
+ class Combined {
14
+ constructor(customMethods2, editorHtmlElement2) {
15
+ this.customMethods = customMethods2;
16
+ this.editorHtmlElement = editorHtmlElement2;
17
+ }
18
+ get(target, propKey) {
19
+ if (this.isKeyOfCustomMethods(propKey)) {
20
+ const value = this.customMethods[propKey];
21
+ if (typeof value === "function") {
22
+ return value.bind(this.customMethods);
23
+ }
24
+ return value;
25
+ } else if (this.isKeyOfHTMLElement(propKey)) {
26
+ const value = this.editorHtmlElement[propKey];
27
+ if (typeof value === "function") {
28
+ return value.bind(this.editorHtmlElement);
29
+ }
30
+ return value;
31
+ }
32
+ }
33
+ set(target, propKey, value) {
34
+ if (this.isKeyOfCustomMethods(propKey)) {
35
+ this.customMethods[propKey] = value;
36
+ } else if (this.isKeyOfHTMLElement(propKey)) {
37
+ this.editorHtmlElement[propKey] = value;
38
+ } else {
39
+ target[propKey] = value;
40
+ }
41
+ return true;
42
+ }
43
+ isKeyOfCustomMethods(key) {
44
+ return key in this.customMethods;
45
+ }
46
+ isKeyOfHTMLElement(key) {
47
+ return key in this.editorHtmlElement;
48
+ }
49
+ }
50
+ const handler = {
51
+ get(target, propKey) {
52
+ return target.get(target, propKey);
53
+ },
54
+ set(target, propKey, value) {
55
+ return target.set(target, propKey, value);
56
+ }
57
+ };
58
+ class CustomMethods {
59
+ constructor(editor2) {
60
+ this.editor = editor2;
61
+ }
62
+ focus() {
63
+ ReactEditor.focus(this.editor);
64
+ }
65
+ blur() {
66
+ ReactEditor.blur(this.editor);
67
+ }
68
+ get value() {
69
+ return getFullEditorTextWithNewlines(this.editor);
70
+ }
71
+ set value(value) {
72
+ replaceEditorText(this.editor, value);
73
+ }
74
+ }
75
+ const editorHtmlElement = ReactEditor.toDOMNode(editor, editor);
76
+ const customMethods = new CustomMethods(editor);
77
+ const combined = new Combined(customMethods, editorHtmlElement);
78
+ return new Proxy(combined, handler);
79
+ }, [editor]);
80
+ }
81
+
82
+ export {
83
+ usePopulateCopilotTextareaRef
84
+ };
85
+ //# sourceMappingURL=chunk-QJNFNPWH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.ts"],"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(ref, () => {\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(target: any, propKey: keyof CustomMethods | keyof HTMLElement, value: any) {\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 }, [editor]);\n}\n"],"mappings":";;;;;;;;AAAA,OAAO,WAAW;AAElB,SAAS,mBAAmB;AAMrB,SAAS,8BACd,QACA,KACA;AACA,QAAM,oBAAoB,KAAK,MAAM;AACnC,UAAM,SAAS;AAAA,MACb,YACUA,gBACAC,oBACR;AAFQ,6BAAAD;AACA,iCAAAC;AAAA,MACP;AAAA,MAIH,IAAI,QAAa,SAAsB;AACrC,YAAI,KAAK,qBAAqB,OAAO,GAAG;AACtC,gBAAM,QAAQ,KAAK,cAAc,OAAO;AACxC,cAAI,OAAO,UAAU,YAAY;AAC/B,mBAAO,MAAM,KAAK,KAAK,aAAa;AAAA,UACtC;AACA,iBAAO;AAAA,QACT,WAAW,KAAK,mBAAmB,OAAO,GAAG;AAC3C,gBAAM,QAAQ,KAAK,kBAAkB,OAAO;AAC5C,cAAI,OAAO,UAAU,YAAY;AAC/B,mBAAO,MAAM,KAAK,KAAK,iBAAiB;AAAA,UAC1C;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,MAEA,IAAI,QAAa,SAAiB,OAAqB;AACrD,YAAI,KAAK,qBAAqB,OAAO,GAAG;AACtC,UAAC,KAAK,cAAsB,OAAO,IAAI;AAAA,QACzC,WAAW,KAAK,mBAAmB,OAAO,GAAG;AAC3C,UAAC,KAAK,kBAA0B,OAAO,IAAI;AAAA,QAC7C,OAAO;AAEL,iBAAO,OAAO,IAAI;AAAA,QACpB;AACA,eAAO;AAAA,MACT;AAAA,MAEQ,qBAAqB,KAAyC;AACpE,eAAO,OAAO,KAAK;AAAA,MACrB;AAAA,MAEQ,mBAAmB,KAAuC;AAChE,eAAO,OAAO,KAAK;AAAA,MACrB;AAAA,IACF;AAEA,UAAM,UAAU;AAAA,MACd,IAAI,QAAa,SAAkD;AACjE,eAAO,OAAO,IAAI,QAAQ,OAAO;AAAA,MACnC;AAAA,MACA,IAAI,QAAa,SAAkD,OAAY;AAC7E,eAAO,OAAO,IAAI,QAAQ,SAAS,KAAK;AAAA,MAC1C;AAAA,IACF;AAEA,UAAM,cAAc;AAAA,MAClB,YAAoBC,SAAsB;AAAtB,sBAAAA;AAAA,MAAuB;AAAA,MAE3C,QAAQ;AACN,oBAAY,MAAM,KAAK,MAAM;AAAA,MAC/B;AAAA,MAEA,OAAO;AACL,oBAAY,KAAK,KAAK,MAAM;AAAA,MAC9B;AAAA,MAEA,IAAI,QAAQ;AACV,eAAO,8BAA8B,KAAK,MAAM;AAAA,MAClD;AAAA,MACA,IAAI,MAAM,OAAe;AACvB,0BAAkB,KAAK,QAAQ,KAAK;AAAA,MACtC;AAAA,IACF;AAEA,UAAM,oBAAoB,YAAY,UAAU,QAAQ,MAAM;AAC9D,UAAM,gBAAgB,IAAI,cAAc,MAAM;AAE9C,UAAM,WAAW,IAAI,SAAS,eAAe,iBAAiB;AAC9D,WAAO,IAAI,MAAM,UAAU,OAAO;AAAA,EACpC,GAAG,CAAC,MAAM,CAAC;AACb;","names":["customMethods","editorHtmlElement","editor"]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-RUV6NBIF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,60 @@
1
+ import {
2
+ useMakeStandardInsertionOrEditingFunction
3
+ } from "./chunk-DL3JWL2E.mjs";
4
+ import {
5
+ BaseCopilotTextarea
6
+ } from "./chunk-63LEUA5A.mjs";
7
+ import {
8
+ defaultAutosuggestionsConfig
9
+ } from "./chunk-6SGWO63I.mjs";
10
+ import {
11
+ useMakeStandardAutosuggestionFunction
12
+ } from "./chunk-ZQSEYPNN.mjs";
13
+ import {
14
+ __objRest,
15
+ __spreadProps,
16
+ __spreadValues
17
+ } from "./chunk-MRXNTQOX.mjs";
18
+
19
+ // src/components/copilot-textarea/copilot-textarea.tsx
20
+ import React from "react";
21
+ import merge from "lodash.merge";
22
+ import { Fragment, jsx } from "react/jsx-runtime";
23
+ var CopilotTextarea = React.forwardRef(
24
+ (props, ref) => {
25
+ const _a = props, { autosuggestionsConfig: autosuggestionsConfigUserSpecified } = _a, forwardedProps = __objRest(_a, ["autosuggestionsConfig"]);
26
+ const autosuggestionsConfig = merge(
27
+ defaultAutosuggestionsConfig,
28
+ autosuggestionsConfigUserSpecified
29
+ );
30
+ const autosuggestionsFunction = useMakeStandardAutosuggestionFunction(
31
+ autosuggestionsConfig.textareaPurpose,
32
+ autosuggestionsConfig.contextCategories,
33
+ autosuggestionsConfig.chatApiConfigs.suggestionsApiConfig
34
+ );
35
+ const insertionOrEditingFunction = useMakeStandardInsertionOrEditingFunction(
36
+ autosuggestionsConfig.textareaPurpose,
37
+ autosuggestionsConfig.contextCategories,
38
+ autosuggestionsConfig.chatApiConfigs.insertionApiConfig,
39
+ autosuggestionsConfig.chatApiConfigs.editingApiConfig
40
+ );
41
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
42
+ BaseCopilotTextarea,
43
+ __spreadProps(__spreadValues({
44
+ ref
45
+ }, forwardedProps), {
46
+ baseAutosuggestionsConfig: __spreadProps(__spreadValues({}, autosuggestionsConfig), {
47
+ apiConfig: {
48
+ insertionOrEditingFunction,
49
+ autosuggestionsFunction
50
+ }
51
+ })
52
+ })
53
+ ) });
54
+ }
55
+ );
56
+
57
+ export {
58
+ CopilotTextarea
59
+ };
60
+ //# sourceMappingURL=chunk-T4HVUB4T.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/copilot-textarea/copilot-textarea.tsx"],"sourcesContent":["/**\n * <br/>\n * <img src=\"https://cdn.copilotkit.ai/docs/copilotkit/images/CopilotTextarea.gif\" width=\"500\" />\n *\n * `<CopilotTextarea>` is a React component that acts as a drop-in replacement for the standard `<textarea>`,\n * offering enhanced autocomplete features powered by AI. It is context-aware, integrating seamlessly with the\n * [`useCopilotReadable`](/reference/hooks/useCopilotReadable) hook to provide intelligent suggestions based on the application context.\n *\n * In addition, it provides a hovering editor window (available by default via `Cmd + K` on Mac and `Ctrl + K` on Windows) that allows the user to\n * suggest changes to the text, for example providing a summary or rephrasing the text.\n *\n * ## Example\n *\n * ```tsx\n * import { CopilotTextarea } from '@copilotkit/react-textarea';\n * import \"@copilotkit/react-textarea/styles.css\";\n *\n * <CopilotTextarea\n * autosuggestionsConfig={{\n * textareaPurpose:\n * \"the body of an email message\",\n * chatApiConfigs: {},\n * }}\n * />\n * ```\n *\n * ## Usage\n *\n * ### Install Dependencies\n *\n * This component is part of the [@copilotkit/react-textarea](https://npmjs.com/package/@copilotkit/react-textarea) package.\n *\n * ```shell npm2yarn \\\"@copilotkit/react-textarea\"\\\n * npm install @copilotkit/react-core @copilotkit/react-textarea\n * ```\n *\n * ### Usage\n *\n * Use the CopilotTextarea component in your React application similarly to a standard `<textarea />`,\n * with additional configurations for AI-powered features.\n *\n * For example:\n *\n * ```tsx\n * import { useState } from \"react\";\n * import { CopilotTextarea } from \"@copilotkit/react-textarea\";\n * import \"@copilotkit/react-textarea/styles.css\";\n *\n * export function ExampleComponent() {\n * const [text, setText] = useState(\"\");\n *\n * return (\n * <CopilotTextarea\n * className=\"custom-textarea-class\"\n * value={text}\n * onValueChange={(value: string) => setText(value)}\n * placeholder=\"Enter your text here...\"\n * autosuggestionsConfig={{\n * textareaPurpose: \"Provide context or purpose of the textarea.\",\n * chatApiConfigs: {\n * suggestionsApiConfig: {\n * maxTokens: 20,\n * stop: [\".\", \"?\", \"!\"],\n * },\n * },\n * }}\n * />\n * );\n * }\n * ```\n *\n * ### Look & Feel\n *\n * By default, CopilotKit components do not have any styles. You can import CopilotKit's stylesheet at the root of your project:\n * ```tsx title=\"YourRootComponent.tsx\"\n * ...\n * import \"@copilotkit/react-textarea/styles.css\"; // [!code highlight]\n *\n * export function YourRootComponent() {\n * return (\n * <CopilotKit>\n * ...\n * </CopilotKit>\n * );\n * }\n * ```\n * For more information about how to customize the styles, check out the [Customize Look & Feel](/guides/custom-look-and-feel/customize-built-in-ui-components) guide.\n * */\nimport React from \"react\";\nimport { useMakeStandardAutosuggestionFunction } from \"../../hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function\";\nimport { HTMLCopilotTextAreaElement } from \"../../types\";\nimport { BaseCopilotTextareaProps } from \"../../types/base/base-copilot-textarea-props\";\nimport {\n AutosuggestionsConfig,\n defaultAutosuggestionsConfig,\n} from \"../../types/autosuggestions-config\";\nimport { BaseCopilotTextarea } from \"../base-copilot-textarea/base-copilot-textarea\";\nimport { useMakeStandardInsertionOrEditingFunction } from \"../../hooks/make-autosuggestions-function/use-make-standard-insertion-function\";\nimport merge from \"lodash.merge\";\nimport { AutosuggestionsConfigUserSpecified } from \"../../types/autosuggestions-config/autosuggestions-config-user-specified\";\n\n// Like the base copilot textarea props,\n// but with baseAutosuggestionsConfig replaced with autosuggestionsConfig.\nexport interface CopilotTextareaProps\n extends Omit<BaseCopilotTextareaProps, \"baseAutosuggestionsConfig\"> {\n /**\n * Configuration settings for the autosuggestions feature.\n * For full reference, [check the interface on GitHub](https://github.com/CopilotKit/CopilotKit/blob/main/src/v1.x/packages/react-textarea/src/types/base/base-copilot-textarea-props.tsx#L8).\n *\n * <PropertyReference name=\"textareaPurpose\" type=\"string\" required={true} >\n * The purpose of the text area in plain text.\n *\n * Example: *\"The body of the email response\"*\n * </PropertyReference>\n *\n * <PropertyReference name=\"chatApiConfigs\" type=\"ChatApiConfigs\" >\n * The chat API configurations.\n *\n * <strong>NOTE:</strong> You must provide specify at least one of `suggestionsApiConfig` or `insertionApiConfig`.\n *\n * <PropertyReference name=\"suggestionsApiConfig\" type=\"SuggestionsApiConfig\">\n * For full reference, please [click here](https://github.com/CopilotKit/CopilotKit/blob/main/src/v1.x/packages/react-textarea/src/types/autosuggestions-config/suggestions-api-config.tsx#L4).\n * </PropertyReference>\n * <PropertyReference name=\"insertionApiConfig\" type=\"InsertionApiConfig\">\n * For full reference, please [click here](https://github.com/CopilotKit/CopilotKit/blob/main/src/v1.x/packages/react-textarea/src/types/autosuggestions-config/insertions-api-config.tsx#L4).\n * </PropertyReference>\n * </PropertyReference>\n *\n * <PropertyReference name=\"disabled\" type=\"boolean\" >\n * Whether the textarea is disabled.\n * </PropertyReference>\n *\n * <PropertyReference name=\"disableBranding\" type=\"boolean\" >\n * Whether to disable the CopilotKit branding.\n * </PropertyReference>\n *\n * <PropertyReference name=\"placeholderStyle\" type=\"React.CSSProperties\" >\n * Specifies the CSS styles to apply to the placeholder text.\n * </PropertyReference>\n *\n * <PropertyReference name=\"suggestionsStyle\" type=\"React.CSSProperties\" >\n * Specifies the CSS styles to apply to the suggestions list.\n * </PropertyReference>\n *\n * <PropertyReference name=\"hoverMenuClassname\" type=\"string\" >\n * A class name to apply to the editor popover window.\n * </PropertyReference>\n *\n * <PropertyReference name=\"value\" type=\"string\" >\n * The initial value of the textarea. Can be controlled via `onValueChange`.\n * </PropertyReference>\n *\n * <PropertyReference name=\"onValueChange\" type=\"(value: string) => void\" >\n * Callback invoked when the value of the textarea changes.\n * </PropertyReference>\n *\n * <PropertyReference name=\"onChange\" type=\"(event: React.ChangeEvent<HTMLTextAreaElement>) => void\" >\n * Callback invoked when a `change` event is triggered on the textarea element.\n * </PropertyReference>\n *\n * <PropertyReference name=\"shortcut\" type=\"string\" >\n * The shortcut to use to open the editor popover window. Default is `\"Cmd-k\"`.\n * </PropertyReference>\n */\n autosuggestionsConfig: AutosuggestionsConfigUserSpecified;\n}\n\n/**\n * A copilot textarea that uses the standard autosuggestions function.\n */\nexport const CopilotTextarea = React.forwardRef(\n (props: CopilotTextareaProps, ref: React.Ref<HTMLCopilotTextAreaElement>) => {\n // separate the AutosuggestionsConfigUserSpecified from the rest of the props\n const { autosuggestionsConfig: autosuggestionsConfigUserSpecified, ...forwardedProps } = props;\n\n const autosuggestionsConfig: AutosuggestionsConfig = merge(\n defaultAutosuggestionsConfig,\n autosuggestionsConfigUserSpecified,\n );\n\n const autosuggestionsFunction = useMakeStandardAutosuggestionFunction(\n autosuggestionsConfig.textareaPurpose,\n autosuggestionsConfig.contextCategories,\n autosuggestionsConfig.chatApiConfigs.suggestionsApiConfig,\n );\n\n const insertionOrEditingFunction = useMakeStandardInsertionOrEditingFunction(\n autosuggestionsConfig.textareaPurpose,\n autosuggestionsConfig.contextCategories,\n autosuggestionsConfig.chatApiConfigs.insertionApiConfig,\n autosuggestionsConfig.chatApiConfigs.editingApiConfig,\n );\n\n return (\n <>\n <BaseCopilotTextarea\n ref={ref}\n {...forwardedProps}\n baseAutosuggestionsConfig={{\n ...autosuggestionsConfig,\n apiConfig: {\n insertionOrEditingFunction: insertionOrEditingFunction,\n autosuggestionsFunction: autosuggestionsFunction,\n },\n }}\n />\n </>\n );\n },\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAwFA,OAAO,WAAW;AAUlB,OAAO,WAAW;AAgGZ,mBACE,WADF;AAxBC,IAAM,kBAAkB,MAAM;AAAA,EACnC,CAAC,OAA6B,QAA+C;AAE3E,UAAyF,YAAjF,yBAAuB,mCA7KnC,IA6K6F,IAAnB,2BAAmB,IAAnB,CAA9D;AAER,UAAM,wBAA+C;AAAA,MACnD;AAAA,MACA;AAAA,IACF;AAEA,UAAM,0BAA0B;AAAA,MAC9B,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,MACtB,sBAAsB,eAAe;AAAA,IACvC;AAEA,UAAM,6BAA6B;AAAA,MACjC,sBAAsB;AAAA,MACtB,sBAAsB;AAAA,MACtB,sBAAsB,eAAe;AAAA,MACrC,sBAAsB,eAAe;AAAA,IACvC;AAEA,WACE,gCACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,SACI,iBAFL;AAAA,QAGC,2BAA2B,iCACtB,wBADsB;AAAA,UAEzB,WAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA;AAAA,IACF,GACF;AAAA,EAEJ;AACF;","names":[]}
@@ -0,0 +1,45 @@
1
+ // src/lib/editor-to-text.ts
2
+ import { Element } from "slate";
3
+ function nodeChildrenToTextComponents(editor, nodes) {
4
+ const indeciesOfInlineElements = new Set(
5
+ nodes.map((node, index) => {
6
+ if (Element.isElement(node) && editor.isInline(node)) {
7
+ return index;
8
+ }
9
+ return -1;
10
+ }).filter((index) => index !== -1)
11
+ );
12
+ const nonIgnorableItems = nodes.filter((node, index) => {
13
+ const isInline = indeciesOfInlineElements.has(index);
14
+ if (isInline) {
15
+ return false;
16
+ }
17
+ const isNeighbourOfInline = indeciesOfInlineElements.has(index - 1) || indeciesOfInlineElements.has(index + 1);
18
+ if (isNeighbourOfInline) {
19
+ return node.text !== "";
20
+ }
21
+ return true;
22
+ });
23
+ return nonIgnorableItems.map((node) => {
24
+ if (Element.isElement(node)) {
25
+ switch (node.type) {
26
+ case "paragraph":
27
+ return nodeChildrenToTextComponents(editor, node.children);
28
+ case "suggestion":
29
+ return [];
30
+ }
31
+ } else {
32
+ return [node];
33
+ }
34
+ }).reduce((acc, val) => acc.concat(val), []);
35
+ }
36
+ var editorToText = (editor) => {
37
+ const flattened = nodeChildrenToTextComponents(editor, editor.children);
38
+ const text = flattened.map((textComponent) => textComponent.text).join("\n");
39
+ return text;
40
+ };
41
+
42
+ export {
43
+ editorToText
44
+ };
45
+ //# sourceMappingURL=chunk-T6MTDQZ7.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/editor-to-text.ts"],"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) || 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 = (editor: BaseEditor & ReactEditor & HistoryEditor) => {\n const flattened = nodeChildrenToTextComponents(editor, editor.children);\n\n const text = flattened.map((textComponent) => textComponent.text).join(\"\\n\");\n\n return text;\n};\n"],"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,KAAK,yBAAyB,IAAI,QAAQ,CAAC;AACnF,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,CAAC,WAAqD;AAChF,QAAM,YAAY,6BAA6B,QAAQ,OAAO,QAAQ;AAEtE,QAAM,OAAO,UAAU,IAAI,CAAC,kBAAkB,cAAc,IAAI,EAAE,KAAK,IAAI;AAE3E,SAAO;AACT;","names":[]}
@@ -0,0 +1,124 @@
1
+ import {
2
+ Dialog,
3
+ DialogContent
4
+ } from "./chunk-I72DKFHD.mjs";
5
+ import {
6
+ cn
7
+ } from "./chunk-YLFAIYRY.mjs";
8
+ import {
9
+ __objRest,
10
+ __spreadProps,
11
+ __spreadValues
12
+ } from "./chunk-MRXNTQOX.mjs";
13
+
14
+ // src/components/ui/command.tsx
15
+ import * as React from "react";
16
+ import { Command as CommandPrimitive } from "cmdk";
17
+ import { jsx } from "react/jsx-runtime";
18
+ var Command = React.forwardRef((_a, ref) => {
19
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
20
+ return /* @__PURE__ */ jsx(
21
+ CommandPrimitive,
22
+ __spreadValues({
23
+ ref,
24
+ className: cn(
25
+ "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
26
+ className
27
+ )
28
+ }, props)
29
+ );
30
+ });
31
+ Command.displayName = CommandPrimitive.displayName;
32
+ var CommandDialog = (_a) => {
33
+ var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
34
+ return /* @__PURE__ */ jsx(Dialog, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) }));
35
+ };
36
+ var CommandInput = React.forwardRef((_a, ref) => {
37
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
38
+ return /* @__PURE__ */ jsx("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: /* @__PURE__ */ jsx(
39
+ CommandPrimitive.Input,
40
+ __spreadValues({
41
+ ref,
42
+ className: cn(
43
+ "flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
44
+ className
45
+ )
46
+ }, props)
47
+ ) });
48
+ });
49
+ CommandInput.displayName = CommandPrimitive.Input.displayName;
50
+ var CommandList = React.forwardRef((_a, ref) => {
51
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
52
+ return /* @__PURE__ */ jsx(
53
+ CommandPrimitive.List,
54
+ __spreadValues({
55
+ ref,
56
+ className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden pb-2", className)
57
+ }, props)
58
+ );
59
+ });
60
+ CommandList.displayName = CommandPrimitive.List.displayName;
61
+ var CommandEmpty = React.forwardRef((props, ref) => /* @__PURE__ */ jsx(CommandPrimitive.Empty, __spreadValues({ ref, className: "py-6 text-center text-sm" }, props)));
62
+ CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
63
+ var CommandGroup = React.forwardRef((_a, ref) => {
64
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
65
+ return /* @__PURE__ */ jsx(
66
+ CommandPrimitive.Group,
67
+ __spreadValues({
68
+ ref,
69
+ className: cn(
70
+ "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
71
+ className
72
+ )
73
+ }, props)
74
+ );
75
+ });
76
+ CommandGroup.displayName = CommandPrimitive.Group.displayName;
77
+ var CommandSeparator = React.forwardRef((_a, ref) => {
78
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
79
+ return /* @__PURE__ */ jsx(
80
+ CommandPrimitive.Separator,
81
+ __spreadValues({
82
+ ref,
83
+ className: cn("-mx-1 h-px bg-border", className)
84
+ }, props)
85
+ );
86
+ });
87
+ CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
88
+ var CommandItem = React.forwardRef((_a, ref) => {
89
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
90
+ return /* @__PURE__ */ jsx(
91
+ CommandPrimitive.Item,
92
+ __spreadValues({
93
+ ref,
94
+ className: cn(
95
+ "relative flex cursor-default select-none items-center rounded-sm text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
96
+ className
97
+ )
98
+ }, props)
99
+ );
100
+ });
101
+ CommandItem.displayName = CommandPrimitive.Item.displayName;
102
+ var CommandShortcut = (_a) => {
103
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
104
+ return /* @__PURE__ */ jsx(
105
+ "span",
106
+ __spreadValues({
107
+ className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className)
108
+ }, props)
109
+ );
110
+ };
111
+ CommandShortcut.displayName = "CommandShortcut";
112
+
113
+ export {
114
+ Command,
115
+ CommandDialog,
116
+ CommandInput,
117
+ CommandList,
118
+ CommandEmpty,
119
+ CommandGroup,
120
+ CommandSeparator,
121
+ CommandItem,
122
+ CommandShortcut
123
+ };
124
+ //# sourceMappingURL=chunk-VSVQZUPW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/command.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { DialogProps } from \"@radix-ui/react-dialog\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { cn } from \"../../lib/utils\";\nimport { Dialog, DialogContent } from \"./dialog\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n {/* <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" /> */}\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden pb-2\", className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n));\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className,\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest text-muted-foreground\", className)}\n {...props}\n />\n );\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA,YAAY,WAAW;AAEvB,SAAS,WAAW,wBAAwB;AAQ1C;AAJF,IAAM,UAAgB,iBAGpB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YATL,IASG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AACD,QAAQ,cAAc,iBAAiB;AAIvC,IAAM,gBAAgB,CAAC,OAA+C;AAA/C,eAAE,WAvBzB,IAuBuB,IAAe,kBAAf,IAAe,CAAb;AACvB,SACE,oBAAC,yCAAW,QAAX,EACC,8BAAC,iBAAc,WAAU,iCACvB,8BAAC,WAAQ,WAAU,+WAChB,UACH,GACF,IACF;AAEJ;AAEA,IAAM,eAAqB,iBAGzB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAtCL,IAsCG,IAAgB,kBAAhB,IAAgB,CAAd;AACH,6BAAC,SAAI,WAAU,mCAAkC,sBAAmB,IAElE;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN,GACF;AAAA,CACD;AAED,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,cAAoB,iBAGxB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAzDL,IAyDG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW,GAAG,wDAAwD,SAAS;AAAA,OAC3E;AAAA,EACN;AAAA,CACD;AAED,YAAY,cAAc,iBAAiB,KAAK;AAEhD,IAAM,eAAqB,iBAGzB,CAAC,OAAO,QACR,oBAAC,iBAAiB,OAAjB,iBAAuB,KAAU,WAAU,8BAA+B,MAAO,CACnF;AAED,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,eAAqB,iBAGzB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YA/EL,IA+EG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AAED,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,mBAAyB,iBAG7B,CAAC,IAAyB,QAAK;AAA9B,eAAE,YA/FL,IA+FG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW,GAAG,wBAAwB,SAAS;AAAA,OAC3C;AAAA,EACN;AAAA,CACD;AACD,iBAAiB,cAAc,iBAAiB,UAAU;AAE1D,IAAM,cAAoB,iBAGxB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YA3GL,IA2GG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AAED,YAAY,cAAc,iBAAiB,KAAK;AAEhD,IAAM,kBAAkB,CAAC,OAAmE;AAAnE,eAAE,YAxH3B,IAwHyB,IAAgB,kBAAhB,IAAgB,CAAd;AACzB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,GAAG,yDAAyD,SAAS;AAAA,OAC5E;AAAA,EACN;AAEJ;AACA,gBAAgB,cAAc;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-WADHCMPK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,83 @@
1
+ import {
2
+ Command,
3
+ CommandEmpty,
4
+ CommandGroup,
5
+ CommandInput,
6
+ CommandItem,
7
+ CommandList,
8
+ CommandSeparator
9
+ } from "./chunk-VSVQZUPW.mjs";
10
+
11
+ // src/components/source-search-box/source-search-box.tsx
12
+ import { useState } from "react";
13
+ import { jsx, jsxs } from "react/jsx-runtime";
14
+ function SourceSearchBox(props) {
15
+ const [selectedValue, setSelectedValue] = useState("");
16
+ return /* @__PURE__ */ jsxs(
17
+ Command,
18
+ {
19
+ className: "rounded-lg border shadow-md",
20
+ value: selectedValue,
21
+ onValueChange: (value) => {
22
+ setSelectedValue(value);
23
+ },
24
+ filter: (value, search) => {
25
+ if (props.searchTerm === "")
26
+ return 1;
27
+ if (value.startsWith(props.searchTerm))
28
+ return 1;
29
+ return 0;
30
+ },
31
+ children: [
32
+ /* @__PURE__ */ jsx(
33
+ CommandInput,
34
+ {
35
+ value: props.searchTerm,
36
+ className: "rounded-t-lg hidden",
37
+ placeholder: "Search for a command..."
38
+ }
39
+ ),
40
+ /* @__PURE__ */ jsxs(CommandList, { children: [
41
+ /* @__PURE__ */ jsx(CommandEmpty, { children: "No results found." }),
42
+ /* @__PURE__ */ jsx(CommandGroup, { heading: "Available resources", children: props.suggestedFiles.map((filePointer) => {
43
+ return /* @__PURE__ */ jsx(
44
+ CommandItem,
45
+ {
46
+ value: filePointer.name,
47
+ onSelect: (value) => {
48
+ props.onSelectedFile(filePointer);
49
+ },
50
+ children: /* @__PURE__ */ jsxs("div", { className: " px-3 flex flex-row gap-1 items-center", children: [
51
+ /* @__PURE__ */ jsx(Logo, { width: "20px", height: "20px", children: /* @__PURE__ */ jsx(
52
+ "img",
53
+ {
54
+ src: filePointer.iconImageUri,
55
+ alt: filePointer.sourceApplication,
56
+ className: "w-full h-full"
57
+ }
58
+ ) }),
59
+ filePointer.name
60
+ ] })
61
+ },
62
+ `word-${filePointer.sourceApplication}.${filePointer.name}`
63
+ );
64
+ }) }),
65
+ /* @__PURE__ */ jsx(CommandSeparator, {})
66
+ ] })
67
+ ]
68
+ }
69
+ );
70
+ }
71
+ function Logo({
72
+ children,
73
+ width,
74
+ height
75
+ }) {
76
+ return /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center", style: { width, height }, children });
77
+ }
78
+
79
+ export {
80
+ SourceSearchBox,
81
+ Logo
82
+ };
83
+ //# sourceMappingURL=chunk-WGWQRALG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/source-search-box/source-search-box.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n} from \"../ui/command\";\n\nimport { Calculator, Calendar, CreditCard, Settings, Smile, User } from \"lucide-react\";\n\nimport { DocumentPointer } from \"@copilotkit/react-core\";\n\nexport interface SourceSearchBoxProps {\n searchTerm: string;\n suggestedFiles: DocumentPointer[];\n onSelectedFile: (filePointer: DocumentPointer) => void;\n}\n\nexport function SourceSearchBox(props: SourceSearchBoxProps) {\n const [selectedValue, setSelectedValue] = useState<string>(\"\");\n\n return (\n <Command\n className=\"rounded-lg border shadow-md\"\n value={selectedValue}\n onValueChange={(value) => {\n setSelectedValue(value);\n }}\n filter={(value, search) => {\n // if the search term is empty, show all commands\n if (props.searchTerm === \"\") return 1;\n\n // if the search term is a prefix of the command, show it\n if (value.startsWith(props.searchTerm)) return 1;\n\n // otherwise, don't show it\n return 0;\n }}\n >\n <CommandInput\n value={props.searchTerm}\n className=\"rounded-t-lg hidden\"\n placeholder=\"Search for a command...\"\n />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n\n <CommandGroup heading=\"Available resources\">\n {props.suggestedFiles.map((filePointer) => {\n return (\n <CommandItem\n key={`word-${filePointer.sourceApplication}.${filePointer.name}`}\n value={filePointer.name}\n onSelect={(value) => {\n props.onSelectedFile(filePointer);\n }}\n >\n <div className=\" px-3 flex flex-row gap-1 items-center\">\n <Logo width=\"20px\" height=\"20px\">\n <img\n src={filePointer.iconImageUri}\n alt={filePointer.sourceApplication}\n className=\"w-full h-full\"\n />\n </Logo>\n {filePointer.name}\n </div>\n </CommandItem>\n );\n })}\n </CommandGroup>\n\n {/* <CommandGroup heading=\"Suggestions\">\n <CommandItem\n onSelect={(value) => {\n console.log(value);\n console.log(value);\n }}\n >\n <Calendar className=\"mr-2 h-4 w-4\" />\n <span>Calendar</span>\n </CommandItem>\n <CommandItem>\n <Smile className=\"mr-2 h-4 w-4\" />\n <span>Search Emoji</span>\n </CommandItem>\n <CommandItem>\n <Calculator className=\"mr-2 h-4 w-4\" />\n <span>Calculator</span>\n </CommandItem>\n </CommandGroup> */}\n <CommandSeparator />\n </CommandList>\n </Command>\n );\n}\n\nexport function Logo({\n children,\n width,\n height,\n}: {\n children: React.ReactNode;\n width: string;\n height: string;\n}) {\n return (\n <div className=\"flex items-center justify-center\" style={{ width: width, height: height }}>\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;AAAA,SAAS,gBAAgB;AA4CnB,cAkBU,YAlBV;AArBC,SAAS,gBAAgB,OAA6B;AAC3D,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAiB,EAAE;AAE7D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO;AAAA,MACP,eAAe,CAAC,UAAU;AACxB,yBAAiB,KAAK;AAAA,MACxB;AAAA,MACA,QAAQ,CAAC,OAAO,WAAW;AAEzB,YAAI,MAAM,eAAe;AAAI,iBAAO;AAGpC,YAAI,MAAM,WAAW,MAAM,UAAU;AAAG,iBAAO;AAG/C,eAAO;AAAA,MACT;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO,MAAM;AAAA,YACb,WAAU;AAAA,YACV,aAAY;AAAA;AAAA,QACd;AAAA,QACA,qBAAC,eACC;AAAA,8BAAC,gBAAa,+BAAiB;AAAA,UAE/B,oBAAC,gBAAa,SAAQ,uBACnB,gBAAM,eAAe,IAAI,CAAC,gBAAgB;AACzC,mBACE;AAAA,cAAC;AAAA;AAAA,gBAEC,OAAO,YAAY;AAAA,gBACnB,UAAU,CAAC,UAAU;AACnB,wBAAM,eAAe,WAAW;AAAA,gBAClC;AAAA,gBAEA,+BAAC,SAAI,WAAU,2CACb;AAAA,sCAAC,QAAK,OAAM,QAAO,QAAO,QACxB;AAAA,oBAAC;AAAA;AAAA,sBACC,KAAK,YAAY;AAAA,sBACjB,KAAK,YAAY;AAAA,sBACjB,WAAU;AAAA;AAAA,kBACZ,GACF;AAAA,kBACC,YAAY;AAAA,mBACf;AAAA;AAAA,cAfK,QAAQ,YAAY,qBAAqB,YAAY;AAAA,YAgB5D;AAAA,UAEJ,CAAC,GACH;AAAA,UAqBA,oBAAC,oBAAiB;AAAA,WACpB;AAAA;AAAA;AAAA,EACF;AAEJ;AAEO,SAAS,KAAK;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,SACE,oBAAC,SAAI,WAAU,oCAAmC,OAAO,EAAE,OAAc,OAAe,GACrF,UACH;AAEJ;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-WJHSY5T6.mjs.map