@copilotkit/react-textarea 1.51.4 → 1.51.5-next.1

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 (396) hide show
  1. package/.attw.json +3 -0
  2. package/CHANGELOG.md +18 -0
  3. package/dist/index.cjs +1918 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.css +10 -639
  6. package/dist/index.css.map +1 -1
  7. package/dist/index.d.cts +318 -0
  8. package/dist/index.d.cts.map +1 -0
  9. package/dist/index.d.mts +318 -0
  10. package/dist/index.d.mts.map +1 -0
  11. package/dist/index.mjs +1879 -61
  12. package/dist/index.mjs.map +1 -1
  13. package/dist/index.umd.js +1900 -123
  14. package/dist/index.umd.js.map +1 -1
  15. package/package.json +18 -16
  16. package/src/components/copilot-textarea/copilot-textarea.tsx +1 -1
  17. package/tsdown.config.ts +60 -0
  18. package/vitest.config.mjs +11 -0
  19. package/dist/chunk-2C7O2EVM.mjs +0 -27
  20. package/dist/chunk-2C7O2EVM.mjs.map +0 -1
  21. package/dist/chunk-2X3CZVEP.mjs +0 -32
  22. package/dist/chunk-2X3CZVEP.mjs.map +0 -1
  23. package/dist/chunk-3WLGLZTY.mjs +0 -232
  24. package/dist/chunk-3WLGLZTY.mjs.map +0 -1
  25. package/dist/chunk-5UNJXFUO.mjs +0 -29
  26. package/dist/chunk-5UNJXFUO.mjs.map +0 -1
  27. package/dist/chunk-7GZWOXE4.mjs +0 -70
  28. package/dist/chunk-7GZWOXE4.mjs.map +0 -1
  29. package/dist/chunk-7V4ORVQX.mjs +0 -17
  30. package/dist/chunk-7V4ORVQX.mjs.map +0 -1
  31. package/dist/chunk-A6YGJFQI.mjs +0 -111
  32. package/dist/chunk-A6YGJFQI.mjs.map +0 -1
  33. package/dist/chunk-AHNPJMBR.mjs +0 -90
  34. package/dist/chunk-AHNPJMBR.mjs.map +0 -1
  35. package/dist/chunk-ARLBRSB7.mjs +0 -140
  36. package/dist/chunk-ARLBRSB7.mjs.map +0 -1
  37. package/dist/chunk-AZ7RF6ED.mjs +0 -120
  38. package/dist/chunk-AZ7RF6ED.mjs.map +0 -1
  39. package/dist/chunk-CFCMZVQ2.mjs +0 -136
  40. package/dist/chunk-CFCMZVQ2.mjs.map +0 -1
  41. package/dist/chunk-CMKGYQFX.mjs +0 -45
  42. package/dist/chunk-CMKGYQFX.mjs.map +0 -1
  43. package/dist/chunk-DE5K76I2.mjs +0 -1
  44. package/dist/chunk-DE5K76I2.mjs.map +0 -1
  45. package/dist/chunk-DZMQBOPG.mjs +0 -36
  46. package/dist/chunk-DZMQBOPG.mjs.map +0 -1
  47. package/dist/chunk-E7C63KQP.mjs +0 -64
  48. package/dist/chunk-E7C63KQP.mjs.map +0 -1
  49. package/dist/chunk-EGBZSVLK.mjs +0 -25
  50. package/dist/chunk-EGBZSVLK.mjs.map +0 -1
  51. package/dist/chunk-FTG7P3NP.mjs +0 -25
  52. package/dist/chunk-FTG7P3NP.mjs.map +0 -1
  53. package/dist/chunk-H4VKQGVU.mjs +0 -1
  54. package/dist/chunk-H4VKQGVU.mjs.map +0 -1
  55. package/dist/chunk-IBZTDP72.mjs +0 -56
  56. package/dist/chunk-IBZTDP72.mjs.map +0 -1
  57. package/dist/chunk-IU3WTXLQ.mjs +0 -1
  58. package/dist/chunk-IU3WTXLQ.mjs.map +0 -1
  59. package/dist/chunk-KNQIEOFP.mjs +0 -19
  60. package/dist/chunk-KNQIEOFP.mjs.map +0 -1
  61. package/dist/chunk-L7VVZH4Q.mjs +0 -1
  62. package/dist/chunk-L7VVZH4Q.mjs.map +0 -1
  63. package/dist/chunk-LYNGBKJR.mjs +0 -58
  64. package/dist/chunk-LYNGBKJR.mjs.map +0 -1
  65. package/dist/chunk-M7GTVHFB.mjs +0 -188
  66. package/dist/chunk-M7GTVHFB.mjs.map +0 -1
  67. package/dist/chunk-MCNXIA4Q.mjs +0 -75
  68. package/dist/chunk-MCNXIA4Q.mjs.map +0 -1
  69. package/dist/chunk-MMVDU6DF.mjs +0 -1
  70. package/dist/chunk-MMVDU6DF.mjs.map +0 -1
  71. package/dist/chunk-MQBPYOOZ.mjs +0 -97
  72. package/dist/chunk-MQBPYOOZ.mjs.map +0 -1
  73. package/dist/chunk-MQXYWOE2.mjs +0 -32
  74. package/dist/chunk-MQXYWOE2.mjs.map +0 -1
  75. package/dist/chunk-MRXNTQOX.mjs +0 -59
  76. package/dist/chunk-MRXNTQOX.mjs.map +0 -1
  77. package/dist/chunk-NFMCLTJU.mjs +0 -39
  78. package/dist/chunk-NFMCLTJU.mjs.map +0 -1
  79. package/dist/chunk-O4WCM57A.mjs +0 -30
  80. package/dist/chunk-O4WCM57A.mjs.map +0 -1
  81. package/dist/chunk-PDFIUPCS.mjs +0 -108
  82. package/dist/chunk-PDFIUPCS.mjs.map +0 -1
  83. package/dist/chunk-QFXR6DOA.mjs +0 -64
  84. package/dist/chunk-QFXR6DOA.mjs.map +0 -1
  85. package/dist/chunk-RUV6NBIF.mjs +0 -1
  86. package/dist/chunk-RUV6NBIF.mjs.map +0 -1
  87. package/dist/chunk-SWX3MRZ4.mjs +0 -278
  88. package/dist/chunk-SWX3MRZ4.mjs.map +0 -1
  89. package/dist/chunk-TGN3YVSO.mjs +0 -85
  90. package/dist/chunk-TGN3YVSO.mjs.map +0 -1
  91. package/dist/chunk-UB4Y22EF.mjs +0 -21
  92. package/dist/chunk-UB4Y22EF.mjs.map +0 -1
  93. package/dist/chunk-UIBUYQPG.mjs +0 -79
  94. package/dist/chunk-UIBUYQPG.mjs.map +0 -1
  95. package/dist/chunk-VBPZTMXB.mjs +0 -13
  96. package/dist/chunk-VBPZTMXB.mjs.map +0 -1
  97. package/dist/chunk-VH7INUR5.mjs +0 -82
  98. package/dist/chunk-VH7INUR5.mjs.map +0 -1
  99. package/dist/chunk-VVRGAA43.mjs +0 -59
  100. package/dist/chunk-VVRGAA43.mjs.map +0 -1
  101. package/dist/chunk-VYLLLBUP.mjs +0 -50
  102. package/dist/chunk-VYLLLBUP.mjs.map +0 -1
  103. package/dist/chunk-WADHCMPK.mjs +0 -1
  104. package/dist/chunk-WADHCMPK.mjs.map +0 -1
  105. package/dist/chunk-WJHSY5T6.mjs +0 -1
  106. package/dist/chunk-WJHSY5T6.mjs.map +0 -1
  107. package/dist/chunk-WXKPRNNO.mjs +0 -32
  108. package/dist/chunk-WXKPRNNO.mjs.map +0 -1
  109. package/dist/chunk-YINY56BI.mjs +0 -49
  110. package/dist/chunk-YINY56BI.mjs.map +0 -1
  111. package/dist/chunk-ZBP4SABT.mjs +0 -117
  112. package/dist/chunk-ZBP4SABT.mjs.map +0 -1
  113. package/dist/chunk-ZWI5KPQ5.mjs +0 -31
  114. package/dist/chunk-ZWI5KPQ5.mjs.map +0 -1
  115. package/dist/components/base-copilot-textarea/base-copilot-textarea.css +0 -9
  116. package/dist/components/base-copilot-textarea/base-copilot-textarea.css.map +0 -1
  117. package/dist/components/base-copilot-textarea/base-copilot-textarea.d.ts +0 -43
  118. package/dist/components/base-copilot-textarea/base-copilot-textarea.js +0 -1849
  119. package/dist/components/base-copilot-textarea/base-copilot-textarea.js.map +0 -1
  120. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs +0 -40
  121. package/dist/components/base-copilot-textarea/base-copilot-textarea.mjs.map +0 -1
  122. package/dist/components/base-copilot-textarea/render-element.d.ts +0 -7
  123. package/dist/components/base-copilot-textarea/render-element.js +0 -75
  124. package/dist/components/base-copilot-textarea/render-element.js.map +0 -1
  125. package/dist/components/base-copilot-textarea/render-element.mjs +0 -8
  126. package/dist/components/base-copilot-textarea/render-element.mjs.map +0 -1
  127. package/dist/components/base-copilot-textarea/render-placeholder.d.ts +0 -7
  128. package/dist/components/base-copilot-textarea/render-placeholder.js +0 -72
  129. package/dist/components/base-copilot-textarea/render-placeholder.js.map +0 -1
  130. package/dist/components/base-copilot-textarea/render-placeholder.mjs +0 -8
  131. package/dist/components/base-copilot-textarea/render-placeholder.mjs.map +0 -1
  132. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.d.ts +0 -8
  133. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js +0 -112
  134. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.js.map +0 -1
  135. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs +0 -9
  136. package/dist/components/base-copilot-textarea/track-cursor-moved-since-last-text-change.mjs.map +0 -1
  137. package/dist/components/base-copilot-textarea/use-add-branding-css.d.ts +0 -3
  138. package/dist/components/base-copilot-textarea/use-add-branding-css.js +0 -83
  139. package/dist/components/base-copilot-textarea/use-add-branding-css.js.map +0 -1
  140. package/dist/components/base-copilot-textarea/use-add-branding-css.mjs +0 -8
  141. package/dist/components/base-copilot-textarea/use-add-branding-css.mjs.map +0 -1
  142. package/dist/components/copilot-textarea/copilot-textarea.css +0 -9
  143. package/dist/components/copilot-textarea/copilot-textarea.css.map +0 -1
  144. package/dist/components/copilot-textarea/copilot-textarea.d.ts +0 -171
  145. package/dist/components/copilot-textarea/copilot-textarea.js +0 -2356
  146. package/dist/components/copilot-textarea/copilot-textarea.js.map +0 -1
  147. package/dist/components/copilot-textarea/copilot-textarea.mjs +0 -49
  148. package/dist/components/copilot-textarea/copilot-textarea.mjs.map +0 -1
  149. package/dist/components/hovering-toolbar/hovering-editor-provider.d.ts +0 -18
  150. package/dist/components/hovering-toolbar/hovering-editor-provider.js +0 -46
  151. package/dist/components/hovering-toolbar/hovering-editor-provider.js.map +0 -1
  152. package/dist/components/hovering-toolbar/hovering-editor-provider.mjs +0 -10
  153. package/dist/components/hovering-toolbar/hovering-editor-provider.mjs.map +0 -1
  154. package/dist/components/hovering-toolbar/hovering-toolbar-components.d.ts +0 -18
  155. package/dist/components/hovering-toolbar/hovering-toolbar-components.js +0 -158
  156. package/dist/components/hovering-toolbar/hovering-toolbar-components.js.map +0 -1
  157. package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs +0 -16
  158. package/dist/components/hovering-toolbar/hovering-toolbar-components.mjs.map +0 -1
  159. package/dist/components/hovering-toolbar/hovering-toolbar.d.ts +0 -12
  160. package/dist/components/hovering-toolbar/hovering-toolbar.js +0 -934
  161. package/dist/components/hovering-toolbar/hovering-toolbar.js.map +0 -1
  162. package/dist/components/hovering-toolbar/hovering-toolbar.mjs +0 -23
  163. package/dist/components/hovering-toolbar/hovering-toolbar.mjs.map +0 -1
  164. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.d.ts +0 -16
  165. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js +0 -649
  166. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.js.map +0 -1
  167. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs +0 -18
  168. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box-core.mjs.map +0 -1
  169. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.d.ts +0 -13
  170. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js +0 -672
  171. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.js.map +0 -1
  172. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs +0 -19
  173. package/dist/components/hovering-toolbar/text-insertion-prompt-box/hovering-insertion-prompt-box.mjs.map +0 -1
  174. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.d.ts +0 -16
  175. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.js +0 -144
  176. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.js.map +0 -1
  177. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.mjs +0 -12
  178. package/dist/components/hovering-toolbar/text-insertion-prompt-box/included-files-preview.mjs.map +0 -1
  179. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.d.ts +0 -4
  180. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js +0 -672
  181. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.js.map +0 -1
  182. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs +0 -20
  183. package/dist/components/hovering-toolbar/text-insertion-prompt-box/index.mjs.map +0 -1
  184. package/dist/components/index.css +0 -9
  185. package/dist/components/index.css.map +0 -1
  186. package/dist/components/index.d.ts +0 -15
  187. package/dist/components/index.js +0 -2360
  188. package/dist/components/index.js.map +0 -1
  189. package/dist/components/index.mjs +0 -53
  190. package/dist/components/index.mjs.map +0 -1
  191. package/dist/components/manual-ui/chip-with-icon.d.ts +0 -10
  192. package/dist/components/manual-ui/chip-with-icon.js +0 -49
  193. package/dist/components/manual-ui/chip-with-icon.js.map +0 -1
  194. package/dist/components/manual-ui/chip-with-icon.mjs +0 -26
  195. package/dist/components/manual-ui/chip-with-icon.mjs.map +0 -1
  196. package/dist/components/source-search-box/source-search-box.d.ts +0 -16
  197. package/dist/components/source-search-box/source-search-box.js +0 -263
  198. package/dist/components/source-search-box/source-search-box.js.map +0 -1
  199. package/dist/components/source-search-box/source-search-box.mjs +0 -13
  200. package/dist/components/source-search-box/source-search-box.mjs.map +0 -1
  201. package/dist/components/ui/button.d.ts +0 -14
  202. package/dist/components/ui/button.js +0 -120
  203. package/dist/components/ui/button.js.map +0 -1
  204. package/dist/components/ui/button.mjs +0 -11
  205. package/dist/components/ui/button.mjs.map +0 -1
  206. package/dist/components/ui/command.d.ts +0 -53
  207. package/dist/components/ui/command.js +0 -323
  208. package/dist/components/ui/command.js.map +0 -1
  209. package/dist/components/ui/command.mjs +0 -26
  210. package/dist/components/ui/command.mjs.map +0 -1
  211. package/dist/components/ui/dialog.d.ts +0 -19
  212. package/dist/components/ui/dialog.js +0 -205
  213. package/dist/components/ui/dialog.js.map +0 -1
  214. package/dist/components/ui/dialog.mjs +0 -21
  215. package/dist/components/ui/dialog.mjs.map +0 -1
  216. package/dist/components/ui/label.d.ts +0 -8
  217. package/dist/components/ui/label.js +0 -93
  218. package/dist/components/ui/label.js.map +0 -1
  219. package/dist/components/ui/label.mjs +0 -9
  220. package/dist/components/ui/label.mjs.map +0 -1
  221. package/dist/context/index.d.ts +0 -2
  222. package/dist/context/index.js +0 -19
  223. package/dist/context/index.js.map +0 -1
  224. package/dist/context/index.mjs +0 -2
  225. package/dist/context/index.mjs.map +0 -1
  226. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.d.ts +0 -15
  227. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.js +0 -194
  228. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.js.map +0 -1
  229. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs +0 -11
  230. package/dist/hooks/base-copilot-textarea-implementation/use-autosuggestions.mjs.map +0 -1
  231. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.d.ts +0 -8
  232. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.js +0 -194
  233. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.js.map +0 -1
  234. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs +0 -9
  235. package/dist/hooks/base-copilot-textarea-implementation/use-copilot-textarea-editor.mjs.map +0 -1
  236. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.d.ts +0 -7
  237. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.js +0 -180
  238. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.js.map +0 -1
  239. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs +0 -10
  240. package/dist/hooks/base-copilot-textarea-implementation/use-populate-copilot-textarea-ref.mjs.map +0 -1
  241. package/dist/hooks/index.d.ts +0 -2
  242. package/dist/hooks/index.js +0 -19
  243. package/dist/hooks/index.js.map +0 -1
  244. package/dist/hooks/index.mjs +0 -2
  245. package/dist/hooks/index.mjs.map +0 -1
  246. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.d.ts +0 -22
  247. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.js +0 -142
  248. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.js.map +0 -1
  249. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs +0 -9
  250. package/dist/hooks/make-autosuggestions-function/use-make-standard-autosuggestions-function.mjs.map +0 -1
  251. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.d.ts +0 -23
  252. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.js +0 -248
  253. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.js.map +0 -1
  254. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs +0 -9
  255. package/dist/hooks/make-autosuggestions-function/use-make-standard-insertion-function.mjs.map +0 -1
  256. package/dist/hooks/misc/use-autosize-textarea.d.ts +0 -5
  257. package/dist/hooks/misc/use-autosize-textarea.js +0 -37
  258. package/dist/hooks/misc/use-autosize-textarea.js.map +0 -1
  259. package/dist/hooks/misc/use-autosize-textarea.mjs +0 -8
  260. package/dist/hooks/misc/use-autosize-textarea.mjs.map +0 -1
  261. package/dist/index.d.ts +0 -15
  262. package/dist/index.js +0 -2365
  263. package/dist/index.js.map +0 -1
  264. package/dist/lib/debouncer.d.ts +0 -11
  265. package/dist/lib/debouncer.js +0 -76
  266. package/dist/lib/debouncer.js.map +0 -1
  267. package/dist/lib/debouncer.mjs +0 -8
  268. package/dist/lib/debouncer.mjs.map +0 -1
  269. package/dist/lib/editor-to-text.d.ts +0 -7
  270. package/dist/lib/editor-to-text.js +0 -69
  271. package/dist/lib/editor-to-text.js.map +0 -1
  272. package/dist/lib/editor-to-text.mjs +0 -8
  273. package/dist/lib/editor-to-text.mjs.map +0 -1
  274. package/dist/lib/get-text-around-cursor.d.ts +0 -15
  275. package/dist/lib/get-text-around-cursor.js +0 -131
  276. package/dist/lib/get-text-around-cursor.js.map +0 -1
  277. package/dist/lib/get-text-around-cursor.mjs +0 -14
  278. package/dist/lib/get-text-around-cursor.mjs.map +0 -1
  279. package/dist/lib/retry.d.ts +0 -3
  280. package/dist/lib/retry.js +0 -43
  281. package/dist/lib/retry.js.map +0 -1
  282. package/dist/lib/retry.mjs +0 -8
  283. package/dist/lib/retry.mjs.map +0 -1
  284. package/dist/lib/slatejs-edits/add-autocompletions.d.ts +0 -8
  285. package/dist/lib/slatejs-edits/add-autocompletions.js +0 -51
  286. package/dist/lib/slatejs-edits/add-autocompletions.js.map +0 -1
  287. package/dist/lib/slatejs-edits/add-autocompletions.mjs +0 -8
  288. package/dist/lib/slatejs-edits/add-autocompletions.mjs.map +0 -1
  289. package/dist/lib/slatejs-edits/clear-autocompletions.d.ts +0 -8
  290. package/dist/lib/slatejs-edits/clear-autocompletions.js +0 -49
  291. package/dist/lib/slatejs-edits/clear-autocompletions.js.map +0 -1
  292. package/dist/lib/slatejs-edits/clear-autocompletions.mjs +0 -8
  293. package/dist/lib/slatejs-edits/clear-autocompletions.mjs.map +0 -1
  294. package/dist/lib/slatejs-edits/replace-text.d.ts +0 -5
  295. package/dist/lib/slatejs-edits/replace-text.js +0 -53
  296. package/dist/lib/slatejs-edits/replace-text.js.map +0 -1
  297. package/dist/lib/slatejs-edits/replace-text.mjs +0 -8
  298. package/dist/lib/slatejs-edits/replace-text.mjs.map +0 -1
  299. package/dist/lib/slatejs-edits/with-partial-history.d.ts +0 -8
  300. package/dist/lib/slatejs-edits/with-partial-history.js +0 -133
  301. package/dist/lib/slatejs-edits/with-partial-history.js.map +0 -1
  302. package/dist/lib/slatejs-edits/with-partial-history.mjs +0 -10
  303. package/dist/lib/slatejs-edits/with-partial-history.mjs.map +0 -1
  304. package/dist/lib/stream-promise-flatten.d.ts +0 -12
  305. package/dist/lib/stream-promise-flatten.js +0 -72
  306. package/dist/lib/stream-promise-flatten.js.map +0 -1
  307. package/dist/lib/stream-promise-flatten.mjs +0 -8
  308. package/dist/lib/stream-promise-flatten.mjs.map +0 -1
  309. package/dist/lib/utils.d.ts +0 -9
  310. package/dist/lib/utils.js +0 -94
  311. package/dist/lib/utils.js.map +0 -1
  312. package/dist/lib/utils.mjs +0 -16
  313. package/dist/lib/utils.mjs.map +0 -1
  314. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.d.ts +0 -23
  315. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.js +0 -19
  316. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.js.map +0 -1
  317. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs +0 -1
  318. package/dist/types/autosuggestions-config/autosuggestions-config-user-specified.mjs.map +0 -1
  319. package/dist/types/autosuggestions-config/autosuggestions-config.d.ts +0 -20
  320. package/dist/types/autosuggestions-config/autosuggestions-config.js +0 -287
  321. package/dist/types/autosuggestions-config/autosuggestions-config.js.map +0 -1
  322. package/dist/types/autosuggestions-config/autosuggestions-config.mjs +0 -13
  323. package/dist/types/autosuggestions-config/autosuggestions-config.mjs.map +0 -1
  324. package/dist/types/autosuggestions-config/editing-api-config.d.ts +0 -15
  325. package/dist/types/autosuggestions-config/editing-api-config.js +0 -108
  326. package/dist/types/autosuggestions-config/editing-api-config.js.map +0 -1
  327. package/dist/types/autosuggestions-config/editing-api-config.mjs +0 -12
  328. package/dist/types/autosuggestions-config/editing-api-config.mjs.map +0 -1
  329. package/dist/types/autosuggestions-config/index.d.ts +0 -10
  330. package/dist/types/autosuggestions-config/index.js +0 -287
  331. package/dist/types/autosuggestions-config/index.js.map +0 -1
  332. package/dist/types/autosuggestions-config/index.mjs +0 -14
  333. package/dist/types/autosuggestions-config/index.mjs.map +0 -1
  334. package/dist/types/autosuggestions-config/insertions-api-config.d.ts +0 -15
  335. package/dist/types/autosuggestions-config/insertions-api-config.js +0 -101
  336. package/dist/types/autosuggestions-config/insertions-api-config.js.map +0 -1
  337. package/dist/types/autosuggestions-config/insertions-api-config.mjs +0 -12
  338. package/dist/types/autosuggestions-config/insertions-api-config.mjs.map +0 -1
  339. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.d.ts +0 -3
  340. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.js +0 -19
  341. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.js.map +0 -1
  342. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs +0 -1
  343. package/dist/types/autosuggestions-config/subtypes/make-system-prompt.mjs.map +0 -1
  344. package/dist/types/autosuggestions-config/suggestions-api-config.d.ts +0 -15
  345. package/dist/types/autosuggestions-config/suggestions-api-config.js +0 -90
  346. package/dist/types/autosuggestions-config/suggestions-api-config.js.map +0 -1
  347. package/dist/types/autosuggestions-config/suggestions-api-config.mjs +0 -12
  348. package/dist/types/autosuggestions-config/suggestions-api-config.mjs.map +0 -1
  349. package/dist/types/base/autosuggestion-state.d.ts +0 -8
  350. package/dist/types/base/autosuggestion-state.js +0 -19
  351. package/dist/types/base/autosuggestion-state.js.map +0 -1
  352. package/dist/types/base/autosuggestion-state.mjs +0 -1
  353. package/dist/types/base/autosuggestion-state.mjs.map +0 -1
  354. package/dist/types/base/autosuggestions-bare-function.d.ts +0 -19
  355. package/dist/types/base/autosuggestions-bare-function.js +0 -19
  356. package/dist/types/base/autosuggestions-bare-function.js.map +0 -1
  357. package/dist/types/base/autosuggestions-bare-function.mjs +0 -1
  358. package/dist/types/base/autosuggestions-bare-function.mjs.map +0 -1
  359. package/dist/types/base/base-autosuggestions-config.d.ts +0 -87
  360. package/dist/types/base/base-autosuggestions-config.js +0 -54
  361. package/dist/types/base/base-autosuggestions-config.js.map +0 -1
  362. package/dist/types/base/base-autosuggestions-config.mjs +0 -8
  363. package/dist/types/base/base-autosuggestions-config.mjs.map +0 -1
  364. package/dist/types/base/base-copilot-textarea-props.d.ts +0 -5
  365. package/dist/types/base/base-copilot-textarea-props.js +0 -19
  366. package/dist/types/base/base-copilot-textarea-props.js.map +0 -1
  367. package/dist/types/base/base-copilot-textarea-props.mjs +0 -1
  368. package/dist/types/base/base-copilot-textarea-props.mjs.map +0 -1
  369. package/dist/types/base/custom-editor.d.ts +0 -29
  370. package/dist/types/base/custom-editor.js +0 -19
  371. package/dist/types/base/custom-editor.js.map +0 -1
  372. package/dist/types/base/custom-editor.mjs +0 -1
  373. package/dist/types/base/custom-editor.mjs.map +0 -1
  374. package/dist/types/base/editor-autocomplete-state.d.ts +0 -10
  375. package/dist/types/base/editor-autocomplete-state.js +0 -40
  376. package/dist/types/base/editor-autocomplete-state.js.map +0 -1
  377. package/dist/types/base/editor-autocomplete-state.mjs +0 -9
  378. package/dist/types/base/editor-autocomplete-state.mjs.map +0 -1
  379. package/dist/types/base/index.d.ts +0 -54
  380. package/dist/types/base/index.js +0 -56
  381. package/dist/types/base/index.js.map +0 -1
  382. package/dist/types/base/index.mjs +0 -9
  383. package/dist/types/base/index.mjs.map +0 -1
  384. package/dist/types/html-copilot-textarea-element.d.ts +0 -7
  385. package/dist/types/html-copilot-textarea-element.js +0 -19
  386. package/dist/types/html-copilot-textarea-element.js.map +0 -1
  387. package/dist/types/html-copilot-textarea-element.mjs +0 -2
  388. package/dist/types/html-copilot-textarea-element.mjs.map +0 -1
  389. package/dist/types/index.d.ts +0 -13
  390. package/dist/types/index.js +0 -289
  391. package/dist/types/index.js.map +0 -1
  392. package/dist/types/index.mjs +0 -19
  393. package/dist/types/index.mjs.map +0 -1
  394. package/jest.config.js +0 -5
  395. package/rollup.config.mjs +0 -64
  396. package/tsup.config.ts +0 -15
@@ -1,111 +0,0 @@
1
- // src/lib/get-text-around-cursor.ts
2
- import {
3
- Editor,
4
- Path,
5
- Range,
6
- Text,
7
- Element,
8
- Point
9
- } from "slate";
10
- function getTextAroundCollapsedCursor(editor) {
11
- const { selection } = editor;
12
- if (!selection || !Range.isCollapsed(selection)) {
13
- return null;
14
- }
15
- const cursorPoint = selection.anchor;
16
- const beforeRange = {
17
- anchor: Editor.start(editor, []),
18
- focus: cursorPoint
19
- };
20
- const afterRange = {
21
- anchor: cursorPoint,
22
- focus: Editor.end(editor, [])
23
- };
24
- const before = extractTextWithNewlines(editor, beforeRange);
25
- const after = extractTextWithNewlines(editor, afterRange);
26
- return {
27
- cursorPoint,
28
- textBeforeCursor: before,
29
- textAfterCursor: after
30
- };
31
- }
32
- function getTextAroundSelection(editor) {
33
- const { selection } = editor;
34
- if (!selection) {
35
- return null;
36
- }
37
- const wellOrderedSelection = wellOrderedRange(selection);
38
- const beforeRange = {
39
- anchor: Editor.start(editor, []),
40
- focus: wellOrderedSelection.anchor
41
- };
42
- const afterRange = {
43
- anchor: wellOrderedSelection.focus,
44
- focus: Editor.end(editor, [])
45
- };
46
- const before = extractTextWithNewlines(editor, beforeRange);
47
- const after = extractTextWithNewlines(editor, afterRange);
48
- const selectedText = extractTextWithNewlines(editor, wellOrderedSelection);
49
- return {
50
- selection: wellOrderedSelection,
51
- textBeforeCursor: before,
52
- selectedText,
53
- textAfterCursor: after
54
- };
55
- }
56
- function getFullEditorTextWithNewlines(editor) {
57
- const fullDocumentRange = {
58
- anchor: Editor.start(editor, []),
59
- focus: Editor.end(editor, [])
60
- };
61
- return extractTextWithNewlines(editor, fullDocumentRange);
62
- }
63
- function extractTextWithNewlines(editor, range) {
64
- const voids = false;
65
- const [start, end] = Range.edges(range);
66
- let text = "";
67
- let lastBlock = null;
68
- for (const [node, path] of Editor.nodes(editor, {
69
- at: range,
70
- match: Text.isText,
71
- voids
72
- })) {
73
- let t = node.text;
74
- const [block] = Editor.above(editor, {
75
- at: path,
76
- match: (n) => Element.isElement(n) && n.type === "paragraph"
77
- }) || [null];
78
- if (lastBlock !== block && block) {
79
- if (lastBlock) {
80
- text += "\n";
81
- }
82
- lastBlock = block;
83
- }
84
- if (Path.equals(path, end.path)) {
85
- t = t.slice(0, end.offset);
86
- }
87
- if (Path.equals(path, start.path)) {
88
- t = t.slice(start.offset);
89
- }
90
- text += t;
91
- }
92
- return text;
93
- }
94
- function wellOrderedRange(range) {
95
- const { anchor, focus } = range;
96
- if (Point.isBefore(anchor, focus)) {
97
- return range;
98
- }
99
- return {
100
- anchor: focus,
101
- focus: anchor
102
- };
103
- }
104
-
105
- export {
106
- getTextAroundCollapsedCursor,
107
- getTextAroundSelection,
108
- getFullEditorTextWithNewlines,
109
- extractTextWithNewlines
110
- };
111
- //# sourceMappingURL=chunk-A6YGJFQI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/get-text-around-cursor.ts"],"sourcesContent":["import {\n Editor,\n Node,\n Path,\n Range,\n Text,\n Element,\n BasePoint,\n BaseRange,\n Point,\n} from \"slate\";\nimport { EditorAutocompleteState } from \"../types/base/editor-autocomplete-state\";\n\nexport interface EditorTextState {\n selection: BaseRange;\n\n textBeforeCursor: string;\n selectedText: string;\n textAfterCursor: string;\n}\n\nexport function getTextAroundCollapsedCursor(\n editor: Editor,\n): EditorAutocompleteState | null {\n const { selection } = editor;\n if (!selection || !Range.isCollapsed(selection)) {\n return null;\n }\n\n const cursorPoint = selection.anchor;\n\n // Create two ranges: one before the anchor and one after\n const beforeRange: Range = {\n anchor: Editor.start(editor, []),\n focus: cursorPoint,\n };\n const afterRange: Range = {\n anchor: cursorPoint,\n focus: Editor.end(editor, []),\n };\n\n // Extract text for these ranges\n const before = extractTextWithNewlines(editor, beforeRange);\n const after = extractTextWithNewlines(editor, afterRange);\n\n return {\n cursorPoint: cursorPoint,\n textBeforeCursor: before,\n textAfterCursor: after,\n };\n}\n\nexport function getTextAroundSelection(editor: Editor): EditorTextState | null {\n const { selection } = editor;\n if (!selection) {\n return null;\n }\n\n const wellOrderedSelection = wellOrderedRange(selection);\n\n // Create two ranges: one before the anchor and one after\n const beforeRange: Range = {\n anchor: Editor.start(editor, []),\n focus: wellOrderedSelection.anchor,\n };\n const afterRange: Range = {\n anchor: wellOrderedSelection.focus,\n focus: Editor.end(editor, []),\n };\n\n // Extract text for these ranges\n const before = extractTextWithNewlines(editor, beforeRange);\n const after = extractTextWithNewlines(editor, afterRange);\n const selectedText = extractTextWithNewlines(editor, wellOrderedSelection);\n\n return {\n selection: wellOrderedSelection,\n textBeforeCursor: before,\n selectedText,\n textAfterCursor: after,\n };\n}\n\nexport function getFullEditorTextWithNewlines(editor: Editor): string {\n const fullDocumentRange: Range = {\n anchor: Editor.start(editor, []),\n focus: Editor.end(editor, []),\n };\n return extractTextWithNewlines(editor, fullDocumentRange);\n}\n\n// Helper function to extract text with newlines\nexport function extractTextWithNewlines(editor: Editor, range: Range): string {\n const voids = false;\n const [start, end] = Range.edges(range);\n let text = \"\";\n let lastBlock: Node | null = null;\n\n for (const [node, path] of Editor.nodes(editor, {\n at: range,\n match: Text.isText,\n voids,\n })) {\n let t = node.text;\n\n // Determine the parent block of the current text node\n const [block] = Editor.above(editor, {\n at: path,\n match: (n) => Element.isElement(n) && n.type === \"paragraph\",\n }) || [null];\n\n // If we encounter a new block, prepend a newline\n if (lastBlock !== block && block) {\n // check that lastBlock is not null to avoid adding a newline at the beginning\n if (lastBlock) {\n text += \"\\n\";\n }\n lastBlock = block;\n }\n\n if (Path.equals(path, end.path)) {\n t = t.slice(0, end.offset);\n }\n\n if (Path.equals(path, start.path)) {\n t = t.slice(start.offset);\n }\n\n text += t;\n }\n\n return text;\n}\n\nfunction wellOrderedRange(range: BaseRange): BaseRange {\n const { anchor, focus } = range;\n // if anchor is before focus, return range as is\n if (Point.isBefore(anchor, focus)) {\n return range;\n }\n\n // if focus is before anchor, return range with anchor and focus swapped\n return {\n anchor: focus,\n focus: anchor,\n };\n}\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,OACK;AAWA,SAAS,6BACd,QACgC;AAChC,QAAM,EAAE,UAAU,IAAI;AACtB,MAAI,CAAC,aAAa,CAAC,MAAM,YAAY,SAAS,GAAG;AAC/C,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,UAAU;AAG9B,QAAM,cAAqB;AAAA,IACzB,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,IAC/B,OAAO;AAAA,EACT;AACA,QAAM,aAAoB;AAAA,IACxB,QAAQ;AAAA,IACR,OAAO,OAAO,IAAI,QAAQ,CAAC,CAAC;AAAA,EAC9B;AAGA,QAAM,SAAS,wBAAwB,QAAQ,WAAW;AAC1D,QAAM,QAAQ,wBAAwB,QAAQ,UAAU;AAExD,SAAO;AAAA,IACL;AAAA,IACA,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EACnB;AACF;AAEO,SAAS,uBAAuB,QAAwC;AAC7E,QAAM,EAAE,UAAU,IAAI;AACtB,MAAI,CAAC,WAAW;AACd,WAAO;AAAA,EACT;AAEA,QAAM,uBAAuB,iBAAiB,SAAS;AAGvD,QAAM,cAAqB;AAAA,IACzB,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,IAC/B,OAAO,qBAAqB;AAAA,EAC9B;AACA,QAAM,aAAoB;AAAA,IACxB,QAAQ,qBAAqB;AAAA,IAC7B,OAAO,OAAO,IAAI,QAAQ,CAAC,CAAC;AAAA,EAC9B;AAGA,QAAM,SAAS,wBAAwB,QAAQ,WAAW;AAC1D,QAAM,QAAQ,wBAAwB,QAAQ,UAAU;AACxD,QAAM,eAAe,wBAAwB,QAAQ,oBAAoB;AAEzE,SAAO;AAAA,IACL,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB;AAAA,IACA,iBAAiB;AAAA,EACnB;AACF;AAEO,SAAS,8BAA8B,QAAwB;AACpE,QAAM,oBAA2B;AAAA,IAC/B,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,IAC/B,OAAO,OAAO,IAAI,QAAQ,CAAC,CAAC;AAAA,EAC9B;AACA,SAAO,wBAAwB,QAAQ,iBAAiB;AAC1D;AAGO,SAAS,wBAAwB,QAAgB,OAAsB;AAC5E,QAAM,QAAQ;AACd,QAAM,CAAC,OAAO,GAAG,IAAI,MAAM,MAAM,KAAK;AACtC,MAAI,OAAO;AACX,MAAI,YAAyB;AAE7B,aAAW,CAAC,MAAM,IAAI,KAAK,OAAO,MAAM,QAAQ;AAAA,IAC9C,IAAI;AAAA,IACJ,OAAO,KAAK;AAAA,IACZ;AAAA,EACF,CAAC,GAAG;AACF,QAAI,IAAI,KAAK;AAGb,UAAM,CAAC,KAAK,IAAI,OAAO,MAAM,QAAQ;AAAA,MACnC,IAAI;AAAA,MACJ,OAAO,CAAC,MAAM,QAAQ,UAAU,CAAC,KAAK,EAAE,SAAS;AAAA,IACnD,CAAC,KAAK,CAAC,IAAI;AAGX,QAAI,cAAc,SAAS,OAAO;AAEhC,UAAI,WAAW;AACb,gBAAQ;AAAA,MACV;AACA,kBAAY;AAAA,IACd;AAEA,QAAI,KAAK,OAAO,MAAM,IAAI,IAAI,GAAG;AAC/B,UAAI,EAAE,MAAM,GAAG,IAAI,MAAM;AAAA,IAC3B;AAEA,QAAI,KAAK,OAAO,MAAM,MAAM,IAAI,GAAG;AACjC,UAAI,EAAE,MAAM,MAAM,MAAM;AAAA,IAC1B;AAEA,YAAQ;AAAA,EACV;AAEA,SAAO;AACT;AAEA,SAAS,iBAAiB,OAA6B;AACrD,QAAM,EAAE,QAAQ,MAAM,IAAI;AAE1B,MAAI,MAAM,SAAS,QAAQ,KAAK,GAAG;AACjC,WAAO;AAAA,EACT;AAGA,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AACF;","names":[]}
@@ -1,90 +0,0 @@
1
- import {
2
- Command,
3
- CommandEmpty,
4
- CommandGroup,
5
- CommandInput,
6
- CommandItem,
7
- CommandList,
8
- CommandSeparator
9
- } from "./chunk-ARLBRSB7.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(
77
- "div",
78
- {
79
- className: "flex items-center justify-center",
80
- style: { width, height },
81
- children
82
- }
83
- );
84
- }
85
-
86
- export {
87
- SourceSearchBox,
88
- Logo
89
- };
90
- //# sourceMappingURL=chunk-AHNPJMBR.mjs.map
@@ -1 +0,0 @@
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 {\n Calculator,\n Calendar,\n CreditCard,\n Settings,\n Smile,\n User,\n} 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\n className=\"flex items-center justify-center\"\n style={{ width: width, height: height }}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;AAAA,SAAS,gBAAgB;AAmDnB,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;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO,EAAE,OAAc,OAAe;AAAA,MAErC;AAAA;AAAA,EACH;AAEJ;","names":[]}
@@ -1,140 +0,0 @@
1
- import {
2
- Dialog,
3
- DialogContent
4
- } from "./chunk-CFCMZVQ2.mjs";
5
- import {
6
- cn
7
- } from "./chunk-VYLLLBUP.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(
57
- "max-h-[300px] overflow-y-auto overflow-x-hidden pb-2",
58
- className
59
- )
60
- }, props)
61
- );
62
- });
63
- CommandList.displayName = CommandPrimitive.List.displayName;
64
- var CommandEmpty = React.forwardRef((props, ref) => /* @__PURE__ */ jsx(
65
- CommandPrimitive.Empty,
66
- __spreadValues({
67
- ref,
68
- className: "py-6 text-center text-sm"
69
- }, props)
70
- ));
71
- CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
72
- var CommandGroup = React.forwardRef((_a, ref) => {
73
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
74
- return /* @__PURE__ */ jsx(
75
- CommandPrimitive.Group,
76
- __spreadValues({
77
- ref,
78
- className: cn(
79
- "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",
80
- className
81
- )
82
- }, props)
83
- );
84
- });
85
- CommandGroup.displayName = CommandPrimitive.Group.displayName;
86
- var CommandSeparator = React.forwardRef((_a, ref) => {
87
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
88
- return /* @__PURE__ */ jsx(
89
- CommandPrimitive.Separator,
90
- __spreadValues({
91
- ref,
92
- className: cn("-mx-1 h-px bg-border", className)
93
- }, props)
94
- );
95
- });
96
- CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
97
- var CommandItem = React.forwardRef((_a, ref) => {
98
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
99
- return /* @__PURE__ */ jsx(
100
- CommandPrimitive.Item,
101
- __spreadValues({
102
- ref,
103
- className: cn(
104
- "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",
105
- className
106
- )
107
- }, props)
108
- );
109
- });
110
- CommandItem.displayName = CommandPrimitive.Item.displayName;
111
- var CommandShortcut = (_a) => {
112
- var _b = _a, {
113
- className
114
- } = _b, props = __objRest(_b, [
115
- "className"
116
- ]);
117
- return /* @__PURE__ */ jsx(
118
- "span",
119
- __spreadValues({
120
- className: cn(
121
- "ml-auto text-xs tracking-widest text-muted-foreground",
122
- className
123
- )
124
- }, props)
125
- );
126
- };
127
- CommandShortcut.displayName = "CommandShortcut";
128
-
129
- export {
130
- Command,
131
- CommandDialog,
132
- CommandInput,
133
- CommandList,
134
- CommandEmpty,
135
- CommandGroup,
136
- CommandSeparator,
137
- CommandItem,
138
- CommandShortcut
139
- };
140
- //# sourceMappingURL=chunk-ARLBRSB7.mjs.map
@@ -1 +0,0 @@
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(\n \"max-h-[300px] overflow-y-auto overflow-x-hidden pb-2\",\n className,\n )}\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\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\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 = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className,\n )}\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;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AAED,YAAY,cAAc,iBAAiB,KAAK;AAEhD,IAAM,eAAqB,iBAGzB,CAAC,OAAO,QACR;AAAA,EAAC,iBAAiB;AAAA,EAAjB;AAAA,IACC;AAAA,IACA,WAAU;AAAA,KACN;AACN,CACD;AAED,aAAa,cAAc,iBAAiB,MAAM;AAElD,IAAM,eAAqB,iBAGzB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAtFL,IAsFG,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,YAtGL,IAsGG,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,YAlHL,IAkHG,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,OAGoB;AAHpB,eACvB;AAAA;AAAA,EAhIF,IA+HyB,IAEpB,kBAFoB,IAEpB;AAAA,IADH;AAAA;AAGA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAEJ;AACA,gBAAgB,cAAc;","names":[]}
@@ -1,120 +0,0 @@
1
- import {
2
- HoveringInsertionPromptBox
3
- } from "./chunk-ZWI5KPQ5.mjs";
4
- import {
5
- useHoveringEditorContext
6
- } from "./chunk-UB4Y22EF.mjs";
7
- import {
8
- Menu,
9
- Portal
10
- } from "./chunk-MQBPYOOZ.mjs";
11
- import {
12
- getFullEditorTextWithNewlines,
13
- getTextAroundSelection
14
- } from "./chunk-A6YGJFQI.mjs";
15
-
16
- // src/components/hovering-toolbar/hovering-toolbar.tsx
17
- import { useEffect, useLayoutEffect, useRef, useState } from "react";
18
- import { Transforms } from "slate";
19
- import { useSlate, useSlateSelection } from "slate-react";
20
- import { jsx } from "react/jsx-runtime";
21
- var HoveringToolbar = (props) => {
22
- const ref = useRef(null);
23
- const editor = useSlate();
24
- const selection = useSlateSelection();
25
- const { isDisplayed, setIsDisplayed } = useHoveringEditorContext();
26
- const [isClient, setIsClient] = useState(false);
27
- useEffect(() => {
28
- setIsClient(true);
29
- }, []);
30
- const isShown = isClient && isDisplayed && selection;
31
- useLayoutEffect(() => {
32
- const el = ref.current;
33
- const { selection: selection2 } = editor;
34
- if (!el || !isShown) {
35
- return;
36
- }
37
- if (!selection2) {
38
- el.removeAttribute("style");
39
- return;
40
- }
41
- const domSelection = window.getSelection();
42
- if (!domSelection || domSelection.rangeCount === 0) {
43
- return;
44
- }
45
- const domRange = domSelection.getRangeAt(0);
46
- const rect = domRange.getBoundingClientRect();
47
- if (rect.top === 0 && rect.left === 0 && rect.width === 0 && rect.height === 0) {
48
- return;
49
- }
50
- const verticalOffsetFromCorner = 0;
51
- const horizontalOffsetFromCorner = 0;
52
- let top = rect.bottom + window.scrollY + verticalOffsetFromCorner;
53
- if (rect.bottom + el.offsetHeight > window.innerHeight - verticalOffsetFromCorner) {
54
- top = rect.top + window.scrollY - el.offsetHeight - verticalOffsetFromCorner;
55
- }
56
- let left = rect.left + window.scrollX - el.offsetWidth / 2 + rect.width / 2 + horizontalOffsetFromCorner;
57
- if (left < horizontalOffsetFromCorner) {
58
- left = horizontalOffsetFromCorner;
59
- } else if (left + el.offsetWidth > window.innerWidth - horizontalOffsetFromCorner) {
60
- left = window.innerWidth - el.offsetWidth - horizontalOffsetFromCorner;
61
- }
62
- el.style.opacity = "1";
63
- el.style.position = "absolute";
64
- el.style.top = `${top}px`;
65
- el.style.left = `${left}px`;
66
- }, [isShown]);
67
- useEffect(() => {
68
- const handleClickOutside = (event) => {
69
- if (ref.current && !ref.current.contains(event.target)) {
70
- setIsDisplayed(false);
71
- }
72
- };
73
- document.addEventListener("mousedown", handleClickOutside);
74
- return () => {
75
- document.removeEventListener("mousedown", handleClickOutside);
76
- };
77
- }, [ref, setIsDisplayed]);
78
- if (!isShown) {
79
- return null;
80
- }
81
- return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(
82
- Menu,
83
- {
84
- ref,
85
- className: "copilot-kit-textarea-css-scope " + (props.hoverMenuClassname || "p-2 absolute z-10 top-[-10000px] left-[-10000px] mt-[-6px] opacity-0 transition-opacity duration-700"),
86
- "data-testid": "hovering-toolbar",
87
- children: /* @__PURE__ */ jsx(
88
- HoveringInsertionPromptBox,
89
- {
90
- editorState: editorState(editor, selection),
91
- apiConfig: props.apiConfig,
92
- performInsertion: (insertedText) => {
93
- Transforms.delete(editor, { at: selection });
94
- Transforms.insertText(editor, insertedText, {
95
- at: selection
96
- });
97
- setIsDisplayed(false);
98
- },
99
- contextCategories: props.contextCategories
100
- }
101
- )
102
- }
103
- ) });
104
- };
105
- function editorState(editor, selection) {
106
- const textAroundCursor = getTextAroundSelection(editor);
107
- if (textAroundCursor) {
108
- return textAroundCursor;
109
- }
110
- return {
111
- textBeforeCursor: getFullEditorTextWithNewlines(editor),
112
- textAfterCursor: "",
113
- selectedText: ""
114
- };
115
- }
116
-
117
- export {
118
- HoveringToolbar
119
- };
120
- //# sourceMappingURL=chunk-AZ7RF6ED.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/hovering-toolbar/hovering-toolbar.tsx"],"sourcesContent":["import { useEffect, useLayoutEffect, useRef, useState } from \"react\";\nimport { Editor, Location, Transforms } from \"slate\";\nimport { useSlate, useSlateSelection } from \"slate-react\";\nimport {\n getFullEditorTextWithNewlines,\n getTextAroundSelection,\n} from \"../../lib/get-text-around-cursor\";\nimport {\n EditingEditorState,\n InsertionEditorApiConfig,\n} from \"../../types/base/autosuggestions-bare-function\";\nimport { useHoveringEditorContext } from \"./hovering-editor-provider\";\nimport { Menu, Portal } from \"./hovering-toolbar-components\";\nimport { HoveringInsertionPromptBox } from \"./text-insertion-prompt-box\";\n\nexport interface HoveringToolbarProps {\n apiConfig: InsertionEditorApiConfig;\n contextCategories: string[];\n hoverMenuClassname: string | undefined;\n}\n\nexport const HoveringToolbar = (props: HoveringToolbarProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const editor = useSlate();\n const selection = useSlateSelection();\n const { isDisplayed, setIsDisplayed } = useHoveringEditorContext();\n\n // only render on client\n const [isClient, setIsClient] = useState(false);\n useEffect(() => {\n setIsClient(true);\n }, []);\n\n const isShown = isClient && isDisplayed && selection;\n\n useLayoutEffect(() => {\n const el = ref.current;\n const { selection } = editor;\n\n if (!el || !isShown) {\n return;\n }\n\n if (!selection) {\n el.removeAttribute(\"style\");\n return;\n }\n\n const domSelection = window.getSelection();\n if (!domSelection || domSelection.rangeCount === 0) {\n return;\n }\n\n const domRange = domSelection.getRangeAt(0);\n const rect = domRange.getBoundingClientRect();\n\n // We use window = (0,0,0,0) as a signal that the selection is not in the original copilot-textarea,\n // but inside the hovering window.\n //\n // in such case, we simply do nothing.\n if (\n rect.top === 0 &&\n rect.left === 0 &&\n rect.width === 0 &&\n rect.height === 0\n ) {\n return;\n }\n\n const verticalOffsetFromCorner = 0;\n const horizontalOffsetFromCorner = 0;\n\n // position the toolbar below the selection\n let top = rect.bottom + window.scrollY + verticalOffsetFromCorner;\n\n // no space left at bottom, move up\n if (\n rect.bottom + el.offsetHeight >\n window.innerHeight - verticalOffsetFromCorner\n ) {\n top =\n rect.top + window.scrollY - el.offsetHeight - verticalOffsetFromCorner;\n }\n\n // position the toolbar in the center of the selection\n let left =\n rect.left +\n window.scrollX -\n el.offsetWidth / 2 +\n rect.width / 2 +\n horizontalOffsetFromCorner;\n\n // no space left at left, move right\n if (left < horizontalOffsetFromCorner) {\n left = horizontalOffsetFromCorner;\n }\n // no space left at right, move left\n else if (\n left + el.offsetWidth >\n window.innerWidth - horizontalOffsetFromCorner\n ) {\n left = window.innerWidth - el.offsetWidth - horizontalOffsetFromCorner;\n }\n\n el.style.opacity = \"1\";\n el.style.position = \"absolute\";\n\n el.style.top = `${top}px`;\n el.style.left = `${left}px`;\n }, [isShown]);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n setIsDisplayed(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [ref, setIsDisplayed]);\n\n if (!isShown) {\n return null;\n }\n\n return (\n <Portal>\n <Menu\n ref={ref}\n className={\n \"copilot-kit-textarea-css-scope \" +\n (props.hoverMenuClassname ||\n \"p-2 absolute z-10 top-[-10000px] left-[-10000px] mt-[-6px] opacity-0 transition-opacity duration-700\")\n }\n data-testid=\"hovering-toolbar\"\n >\n <HoveringInsertionPromptBox\n editorState={editorState(editor, selection)}\n apiConfig={props.apiConfig}\n performInsertion={(insertedText) => {\n // replace the selection with the inserted text\n Transforms.delete(editor, { at: selection });\n Transforms.insertText(editor, insertedText, {\n at: selection,\n });\n setIsDisplayed(false);\n }}\n contextCategories={props.contextCategories}\n />\n </Menu>\n </Portal>\n );\n};\n\nfunction editorState(editor: Editor, selection: Location): EditingEditorState {\n const textAroundCursor = getTextAroundSelection(editor);\n if (textAroundCursor) {\n return textAroundCursor;\n }\n\n return {\n textBeforeCursor: getFullEditorTextWithNewlines(editor),\n textAfterCursor: \"\",\n selectedText: \"\",\n };\n}\n"],"mappings":"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","names":["selection"]}
@@ -1,136 +0,0 @@
1
- import {
2
- cn
3
- } from "./chunk-VYLLLBUP.mjs";
4
- import {
5
- __objRest,
6
- __spreadProps,
7
- __spreadValues
8
- } from "./chunk-MRXNTQOX.mjs";
9
-
10
- // src/components/ui/dialog.tsx
11
- import * as React from "react";
12
- import * as DialogPrimitive from "@radix-ui/react-dialog";
13
- import { X } from "lucide-react";
14
- import { jsx, jsxs } from "react/jsx-runtime";
15
- var Dialog = DialogPrimitive.Root;
16
- var DialogTrigger = DialogPrimitive.Trigger;
17
- var DialogPortal = (_a) => {
18
- var _b = _a, {
19
- className,
20
- children
21
- } = _b, props = __objRest(_b, [
22
- "className",
23
- "children"
24
- ]);
25
- return /* @__PURE__ */ jsx(DialogPrimitive.Portal, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx("div", { className: cn(className), children }) }));
26
- };
27
- DialogPortal.displayName = DialogPrimitive.Portal.displayName;
28
- var DialogOverlay = React.forwardRef((_a, ref) => {
29
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
30
- return /* @__PURE__ */ jsx(
31
- DialogPrimitive.Overlay,
32
- __spreadValues({
33
- ref,
34
- className: cn(
35
- "fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
36
- className
37
- )
38
- }, props)
39
- );
40
- });
41
- DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
42
- var DialogContent = React.forwardRef((_a, ref) => {
43
- var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
44
- return /* @__PURE__ */ jsxs(DialogPortal, { children: [
45
- /* @__PURE__ */ jsx(DialogOverlay, {}),
46
- /* @__PURE__ */ jsxs(
47
- DialogPrimitive.Content,
48
- __spreadProps(__spreadValues({
49
- ref,
50
- className: cn(
51
- "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg md:w-full",
52
- className
53
- )
54
- }, props), {
55
- children: [
56
- children,
57
- /* @__PURE__ */ jsxs(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground", children: [
58
- /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
59
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
60
- ] })
61
- ]
62
- })
63
- )
64
- ] });
65
- });
66
- DialogContent.displayName = DialogPrimitive.Content.displayName;
67
- var DialogHeader = (_a) => {
68
- var _b = _a, {
69
- className
70
- } = _b, props = __objRest(_b, [
71
- "className"
72
- ]);
73
- return /* @__PURE__ */ jsx(
74
- "div",
75
- __spreadValues({
76
- className: cn(
77
- "flex flex-col space-y-1.5 text-center sm:text-left",
78
- className
79
- )
80
- }, props)
81
- );
82
- };
83
- DialogHeader.displayName = "DialogHeader";
84
- var DialogFooter = (_a) => {
85
- var _b = _a, {
86
- className
87
- } = _b, props = __objRest(_b, [
88
- "className"
89
- ]);
90
- return /* @__PURE__ */ jsx(
91
- "div",
92
- __spreadValues({
93
- className: cn(
94
- "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
95
- className
96
- )
97
- }, props)
98
- );
99
- };
100
- DialogFooter.displayName = "DialogFooter";
101
- var DialogTitle = React.forwardRef((_a, ref) => {
102
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
103
- return /* @__PURE__ */ jsx(
104
- DialogPrimitive.Title,
105
- __spreadValues({
106
- ref,
107
- className: cn(
108
- "text-lg font-semibold leading-none tracking-tight",
109
- className
110
- )
111
- }, props)
112
- );
113
- });
114
- DialogTitle.displayName = DialogPrimitive.Title.displayName;
115
- var DialogDescription = React.forwardRef((_a, ref) => {
116
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
117
- return /* @__PURE__ */ jsx(
118
- DialogPrimitive.Description,
119
- __spreadValues({
120
- ref,
121
- className: cn("text-sm text-muted-foreground", className)
122
- }, props)
123
- );
124
- });
125
- DialogDescription.displayName = DialogPrimitive.Description.displayName;
126
-
127
- export {
128
- Dialog,
129
- DialogTrigger,
130
- DialogContent,
131
- DialogHeader,
132
- DialogFooter,
133
- DialogTitle,
134
- DialogDescription
135
- };
136
- //# sourceMappingURL=chunk-CFCMZVQ2.mjs.map