@gientech/modual 2.0.4 → 2.0.5

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 (419) hide show
  1. package/.editorconfig +38 -0
  2. package/.prettierignore +16 -0
  3. package/.prettierrc +17 -0
  4. package/README.md +643 -643
  5. package/USAGE.md +247 -0
  6. package/bash.exe.stackdump +40 -0
  7. package/components.json +21 -0
  8. package/dist/README.md +643 -0
  9. package/{assets/GientechStreamReader-CzB5AuYo.js → dist/assets/GientechStreamReader-DUCq-O5X.js} +1 -1
  10. package/{assets → dist/assets}/database.svg +11 -11
  11. package/{assets → dist/assets}/database_add.svg +53 -53
  12. package/{assets → dist/assets}/database_connect.svg +66 -66
  13. package/{assets → dist/assets}/database_upload.svg +29 -29
  14. package/{assets → dist/assets}/databse.svg +6 -6
  15. package/{assets → dist/assets}/defaultWeLogo.svg +14 -14
  16. package/{assets → dist/assets}/graph.svg +4 -4
  17. package/{assets/index-CN2AYX8Q.js → dist/assets/index-B2yNvzjy.js} +1 -1
  18. package/{assets/index-D9lYd8TZ.js → dist/assets/index-BKe5FgcC.js} +1 -1
  19. package/{assets/index-CBTA5S-5.js → dist/assets/index-D72cKELw.js} +1 -1
  20. package/{assets/index-s0cmC4Ks.js → dist/assets/index-DdVFXD_y.js} +1 -1
  21. package/{assets/index-B1ZDDbC1.js → dist/assets/index-DrkSoKz6.js} +1 -1
  22. package/{assets/index-B2rFliXg.js → dist/assets/index-KCfkkJKb.js} +1 -1
  23. package/{assets/index-DnBY0UXI.js → dist/assets/index-QI9biQrR.js} +2 -2
  24. package/{assets/index-DYhXjvk4.js → dist/assets/index-ZopkeZtI.js} +1 -1
  25. package/{assets/index-LDFwTu47.js → dist/assets/index-g-SUxfJH.js} +1 -1
  26. package/{assets/index-NFQIKNFn.js → dist/assets/index-j0kQJd0a.js} +1 -1
  27. package/{assets → dist/assets}/knowledge.svg +4 -4
  28. package/{assets/MySQL.svg → dist/assets/mysql.svg} +14 -14
  29. package/{assets/plus-G7zGXf6S.js → dist/assets/plus-V9zUoSq6.js} +1 -1
  30. package/{assets → dist/assets}/sensitive.svg +5 -5
  31. package/{assets/style-Bn7b5XHU.js → dist/assets/style-CGmZ5osp.js} +2 -2
  32. package/{assets/x-vfKYzKkK.js → dist/assets/x-CnaaLGJF.js} +1 -1
  33. package/dist/assistantConfig.js +1 -0
  34. package/dist/chat.js +824 -0
  35. package/dist/database.js +20 -0
  36. package/dist/databaseId.js +1 -0
  37. package/{databaseTable.js → dist/databaseTable.js} +1 -1
  38. package/dist/index.js +1 -0
  39. package/{modelManage.js → dist/modelManage.js} +1 -1
  40. package/dist/package.json +68 -0
  41. package/{sensitive.js → dist/sensitive.js} +1 -1
  42. package/dist/streamFilesReader.js +1 -0
  43. package/{worker → dist/worker}/pdf.worker.min.js +21 -21
  44. package/doc_assets/2.png +0 -0
  45. package/doc_assets/demo.md +27 -0
  46. package/doc_assets/demos/dist-app/assets/index.Dh-ZAS9Z.css +2 -0
  47. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js +23699 -0
  48. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js.map +1 -0
  49. package/doc_assets/demos/dist-app/index.html +14 -0
  50. package/doc_assets/demos/dist-app/vite.svg +1 -0
  51. package/doc_assets/images/1.png +0 -0
  52. package/doc_assets/images/3.png +0 -0
  53. package/doc_assets/images/component-screenshot.png +1 -0
  54. package/doc_assets/install.md +5 -0
  55. package/doc_assets//346/226/271/346/241/210//344/274/230/345/214/226/346/226/271/346/241/210-/345/244/232/344/274/232/350/257/235SSE/350/277/236/346/216/245/347/256/241/347/220/206.md +504 -0
  56. package/eslint.config.js +92 -0
  57. package/index.html +13 -0
  58. package/package.json +106 -44
  59. package/package.json.demo-backup +109 -0
  60. package/postcss.config.cjs +19 -0
  61. package/public/icons/answerAwartar.png +0 -0
  62. package/public/icons/docx-file.png +0 -0
  63. package/public/icons/folder.png +0 -0
  64. package/public/icons/html.png +0 -0
  65. package/public/icons/image.png +0 -0
  66. package/public/icons/jpg-file.png +0 -0
  67. package/public/icons/json.png +0 -0
  68. package/public/icons/md.png +0 -0
  69. package/public/icons/pdf.png +0 -0
  70. package/public/icons/pptx.png +0 -0
  71. package/public/icons/questionAwartar.png +0 -0
  72. package/public/icons/sheets.png +0 -0
  73. package/public/icons/txt.png +0 -0
  74. package/public/icons/xlsx.png +0 -0
  75. package/public/vite.svg +1 -0
  76. package/public/worker/pdf.worker.min.js +22 -0
  77. package/scripts/README.md +133 -0
  78. package/scripts/build-demo.js +88 -0
  79. package/scripts/decrypt-api-key.js +95 -0
  80. package/scripts/demo-selector.js +216 -0
  81. package/scripts/dev-demo.js +76 -0
  82. package/scripts/preview-demo.js +130 -0
  83. package/scripts/run-demo.bat +34 -0
  84. package/src/assets/img/close.png +0 -0
  85. package/src/assets/img/database.png +0 -0
  86. package/src/assets/img/downArrow.png +0 -0
  87. package/src/assets/img/downLoad.png +0 -0
  88. package/src/assets/img/excel.png +0 -0
  89. package/src/assets/img/graphIcon.png +0 -0
  90. package/src/assets/img/img.png +0 -0
  91. package/src/assets/img/pdf.png +0 -0
  92. package/src/assets/img/ppt.png +0 -0
  93. package/src/assets/img/singleQa.png +0 -0
  94. package/src/assets/img/txt.png +0 -0
  95. package/src/assets/img/webSearch.png +0 -0
  96. package/src/assets/img/word.png +0 -0
  97. package/src/assets/login/homeBg.png +0 -0
  98. package/src/assets/login/left.jpg +0 -0
  99. package/src/assets/login/logoImg.png +0 -0
  100. package/src/examples/ConversationAssistantPage/index.tsx +41 -0
  101. package/src/examples/Demo/index.tsx +12 -0
  102. package/src/examples/LoginPage/index.tsx +18 -0
  103. package/src/examples/chat/components/DrawerGraphPreview.tsx +78 -0
  104. package/src/examples/chat/index.tsx +154 -0
  105. package/src/examples/chat/logo03.png +0 -0
  106. package/src/examples/gientechStreamFilesReader/index.tsx +951 -0
  107. package/src/examples/headlessChat/index.tsx +234 -0
  108. package/src/examples/ragDatabaseDataPage/index.tsx +40 -0
  109. package/src/examples/ragDatabaseIdPage/index.tsx +47 -0
  110. package/src/examples/ragDatabasePage/index.tsx +36 -0
  111. package/src/examples/ragModelManagePage/index.tsx +38 -0
  112. package/src/examples/ragSearchPage/index.tsx +0 -0
  113. package/src/examples/ragSensitiveWordsPage/index.tsx +32 -0
  114. package/src/examples/streamFiles/index.tsx +417 -0
  115. package/src/lib_enter.ts +43 -0
  116. package/src/main.tsx +5 -0
  117. package/src/main.tsx.backup +5 -0
  118. package/src/modules/CHAT_UNIFICATION_PLAN.md +324 -0
  119. package/src/modules/assistantConfig/assets/databse.svg +6 -0
  120. package/src/modules/assistantConfig/assets/empty.png +0 -0
  121. package/src/modules/assistantConfig/assets/graph.svg +4 -0
  122. package/src/modules/assistantConfig/assets/knowledge.svg +4 -0
  123. package/src/modules/assistantConfig/assets/sensitive.svg +5 -0
  124. package/src/modules/assistantConfig/components/Database.tsx +171 -0
  125. package/src/modules/assistantConfig/components/Graph.tsx +177 -0
  126. package/src/modules/assistantConfig/components/Knowledge.tsx +276 -0
  127. package/src/modules/assistantConfig/components/NotFoundContent.tsx +21 -0
  128. package/src/modules/assistantConfig/components/Paragraph.tsx +51 -0
  129. package/src/modules/assistantConfig/components/ParamsItem.tsx +39 -0
  130. package/src/modules/assistantConfig/components/ResourceBinderItem.tsx +133 -0
  131. package/src/modules/assistantConfig/components/SearchableSelector.tsx +500 -0
  132. package/src/modules/assistantConfig/components/Sensitive.tsx +221 -0
  133. package/src/modules/assistantConfig/components/SliderInput.tsx +65 -0
  134. package/src/modules/assistantConfig/constants.tsx +75 -0
  135. package/src/modules/assistantConfig/index.tsx +710 -0
  136. package/src/modules/assistantConfig/server.ts +262 -0
  137. package/src/modules/chat/Conversations/Item.tsx +167 -0
  138. package/src/modules/chat/Conversations/List.tsx +210 -0
  139. package/src/modules/chat/Conversations/groupByTime.ts +39 -0
  140. package/src/modules/chat/Conversations/index.tsx +252 -0
  141. package/src/modules/chat/ReferenceBar.tsx +622 -0
  142. package/src/modules/chat/constants.tsx +52 -0
  143. package/src/modules/chat/data.txt +82 -0
  144. package/src/modules/chat/index.tsx +2054 -0
  145. package/src/modules/chat/referenceCom/DeleteModal.tsx +75 -0
  146. package/src/modules/chat/referenceCom/DrawerContent.tsx +136 -0
  147. package/src/modules/chat/referenceCom/DrawerDatabase.tsx +102 -0
  148. package/src/modules/chat/referenceCom/DrawerGraphPreview.tsx +86 -0
  149. package/src/modules/chat/referenceCom/DrawerPreview.tsx +73 -0
  150. package/src/modules/chat/referenceCom/DrawerTitle.tsx +26 -0
  151. package/src/modules/chat/referenceCom/RenameModal.tsx +86 -0
  152. package/src/modules/chat/referenceCom/TagCom.tsx +30 -0
  153. package/src/modules/chat/style.less +3 -0
  154. package/src/modules/chat/types.ts +17 -0
  155. package/src/modules/chat/utils/index.ts +348 -0
  156. package/src/modules/database/CreateModal.tsx +403 -0
  157. package/src/modules/database/assets/Doris.png +0 -0
  158. package/src/modules/database/assets/PostgreSQL.png +0 -0
  159. package/src/modules/database/assets/SQLServer.png +0 -0
  160. package/src/modules/database/assets/database.svg +11 -0
  161. package/src/modules/database/assets/database_add.svg +53 -0
  162. package/src/modules/database/assets/database_connect.svg +66 -0
  163. package/src/modules/database/assets/database_upload.svg +29 -0
  164. package/src/modules/database/assets/empty.png +0 -0
  165. package/src/modules/database/assets/mysql.svg +14 -0
  166. package/src/modules/database/index.tsx +477 -0
  167. package/src/modules/database/server.ts +196 -0
  168. package/src/modules/databaseId/CustomCom.tsx +156 -0
  169. package/src/modules/databaseId/EditConfig.tsx +280 -0
  170. package/src/modules/databaseId/UploadDrawer.tsx +535 -0
  171. package/src/modules/databaseId/assets/aiOptimize.svg +10 -0
  172. package/src/modules/databaseId/assets/empty.png +0 -0
  173. package/src/modules/databaseId/assets/template.svg +6 -0
  174. package/src/modules/databaseId/assets/upload.svg +9 -0
  175. package/src/modules/databaseId/assets/useTemp.svg +6 -0
  176. package/src/modules/databaseId/index.tsx +769 -0
  177. package/src/modules/databaseId/server.ts +286 -0
  178. package/src/modules/databaseId/style.css +5 -0
  179. package/src/modules/databaseTable/EditRowDrawer.tsx +124 -0
  180. package/src/modules/databaseTable/index.tsx +359 -0
  181. package/src/modules/databaseTable/server.ts +180 -0
  182. package/src/modules/headlessChat/ReferenceBar.tsx +783 -0
  183. package/src/modules/headlessChat/constants.tsx +54 -0
  184. package/src/modules/headlessChat/index.tsx +1706 -0
  185. package/src/modules/headlessChat/referenceCom/DeleteModal.tsx +75 -0
  186. package/src/modules/headlessChat/referenceCom/DrawerContent.tsx +136 -0
  187. package/src/modules/headlessChat/referenceCom/DrawerDatabase.tsx +102 -0
  188. package/src/modules/headlessChat/referenceCom/DrawerGraphPreview.tsx +86 -0
  189. package/src/modules/headlessChat/referenceCom/DrawerPreview.tsx +73 -0
  190. package/src/modules/headlessChat/referenceCom/DrawerTitle.tsx +26 -0
  191. package/src/modules/headlessChat/referenceCom/RenameModal.tsx +86 -0
  192. package/src/modules/headlessChat/referenceCom/TagCom.tsx +30 -0
  193. package/src/modules/headlessChat/style.less +3 -0
  194. package/src/modules/headlessChat/types.ts +23 -0
  195. package/src/modules/headlessChat/utils/index.ts +348 -0
  196. package/src/modules/login/components/Login/LoginBox/index.tsx +102 -0
  197. package/src/modules/login/components/Login/RegisterBox/index.tsx +180 -0
  198. package/src/modules/login/components/Login/index.tsx +100 -0
  199. package/src/modules/login/index.tsx +106 -0
  200. package/src/modules/login/style.css +3 -0
  201. package/src/modules/login/useServices.ts +53 -0
  202. package/src/modules/login/utils.ts +42 -0
  203. package/src/modules/modelManage/ConfigDrawer.tsx +249 -0
  204. package/src/modules/modelManage/ReplaceModal.tsx +124 -0
  205. package/src/modules/modelManage/assets/empty.png +0 -0
  206. package/src/modules/modelManage/const.ts +51 -0
  207. package/src/modules/modelManage/index.tsx +606 -0
  208. package/src/modules/modelManage/server.ts +223 -0
  209. package/src/modules/nodegraph/index.tsx +1 -0
  210. package/src/modules/search/assets/Icon-history.svg +8 -0
  211. package/src/modules/search/assets/answerAwartar.png +0 -0
  212. package/src/modules/search/assets/doc.png +0 -0
  213. package/src/modules/search/assets/genera.gif +0 -0
  214. package/src/modules/search/assets/icon-robot.svg +9 -0
  215. package/src/modules/search/assets/icon-search-bar.svg +14 -0
  216. package/src/modules/search/assets/icon-sub-title.svg +3 -0
  217. package/src/modules/search/assets/icon-title.svg +9 -0
  218. package/src/modules/search/assets/icon-zoomOut.svg +9 -0
  219. package/src/modules/search/assets/iconAi.svg +9 -0
  220. package/src/modules/search/assets/pdf.png +0 -0
  221. package/src/modules/search/assets/ppt.png +0 -0
  222. package/src/modules/search/assets/search.svg +3 -0
  223. package/src/modules/search/assets/selected.svg +4 -0
  224. package/src/modules/search/assets/txt.png +0 -0
  225. package/src/modules/search/assets/xls.png +0 -0
  226. package/src/modules/search/components/AssisSelect.tsx +137 -0
  227. package/src/modules/search/components/Editor/ChatViewEditor.tsx +261 -0
  228. package/src/modules/search/components/Editor/aichat.css +1 -0
  229. package/src/modules/search/components/Editor/constant.ts +13 -0
  230. package/src/modules/search/components/Editor/index.tsx +113 -0
  231. package/src/modules/search/components/Editor/plugins/autofomatRules.ts +332 -0
  232. package/src/modules/search/components/Editor/plugins/convertImgPlugins.tsx +20 -0
  233. package/src/modules/search/components/Editor/plugins/createIndexes.tsx +38 -0
  234. package/src/modules/search/components/Editor/plugins/displayer.ts +298 -0
  235. package/src/modules/search/components/Editor/plugins/imageClick.tsx +32 -0
  236. package/src/modules/search/components/Editor/plugins/myplugin.tsx +98 -0
  237. package/src/modules/search/components/Editor/ui/avatar.tsx +19 -0
  238. package/src/modules/search/components/Editor/ui/blockquote-element.tsx +21 -0
  239. package/src/modules/search/components/Editor/ui/button.tsx +58 -0
  240. package/src/modules/search/components/Editor/ui/calendar.tsx +68 -0
  241. package/src/modules/search/components/Editor/ui/caption.tsx +46 -0
  242. package/src/modules/search/components/Editor/ui/checkbox.tsx +27 -0
  243. package/src/modules/search/components/Editor/ui/code-block-combobox.tsx +188 -0
  244. package/src/modules/search/components/Editor/ui/code-block-element.css +434 -0
  245. package/src/modules/search/components/Editor/ui/code-block-element.tsx +39 -0
  246. package/src/modules/search/components/Editor/ui/code-leaf.tsx +24 -0
  247. package/src/modules/search/components/Editor/ui/code-line-element.tsx +10 -0
  248. package/src/modules/search/components/Editor/ui/code-syntax-leaf.tsx +21 -0
  249. package/src/modules/search/components/Editor/ui/column-element.tsx +30 -0
  250. package/src/modules/search/components/Editor/ui/column-group-element.tsx +94 -0
  251. package/src/modules/search/components/Editor/ui/command.tsx +75 -0
  252. package/src/modules/search/components/Editor/ui/comment-avatar.tsx +22 -0
  253. package/src/modules/search/components/Editor/ui/comment-create-form.tsx +37 -0
  254. package/src/modules/search/components/Editor/ui/comment-item.tsx +74 -0
  255. package/src/modules/search/components/Editor/ui/comment-leaf.tsx +49 -0
  256. package/src/modules/search/components/Editor/ui/comment-more-dropdown.tsx +42 -0
  257. package/src/modules/search/components/Editor/ui/comment-reply-items.tsx +22 -0
  258. package/src/modules/search/components/Editor/ui/comment-resolve-button.tsx +32 -0
  259. package/src/modules/search/components/Editor/ui/comment-value.tsx +34 -0
  260. package/src/modules/search/components/Editor/ui/comments-popover.tsx +63 -0
  261. package/src/modules/search/components/Editor/ui/date-element.tsx +83 -0
  262. package/src/modules/search/components/Editor/ui/dialog.tsx +63 -0
  263. package/src/modules/search/components/Editor/ui/draggable.tsx +177 -0
  264. package/src/modules/search/components/Editor/ui/dropdown-menu.tsx +180 -0
  265. package/src/modules/search/components/Editor/ui/emoji-input-element.tsx +85 -0
  266. package/src/modules/search/components/Editor/ui/excalidraw-element.tsx +28 -0
  267. package/src/modules/search/components/Editor/ui/fixed-toolbar-buttons.tsx +76 -0
  268. package/src/modules/search/components/Editor/ui/fixed-toolbar.tsx +8 -0
  269. package/src/modules/search/components/Editor/ui/floating-toolbar-buttons.tsx +51 -0
  270. package/src/modules/search/components/Editor/ui/floating-toolbar.tsx +77 -0
  271. package/src/modules/search/components/Editor/ui/heading-element.tsx +48 -0
  272. package/src/modules/search/components/Editor/ui/highlight-leaf.tsx +17 -0
  273. package/src/modules/search/components/Editor/ui/hr-element.tsx +30 -0
  274. package/src/modules/search/components/Editor/ui/icons.tsx +267 -0
  275. package/src/modules/search/components/Editor/ui/image-element.tsx +74 -0
  276. package/src/modules/search/components/Editor/ui/inline-combobox.tsx +368 -0
  277. package/src/modules/search/components/Editor/ui/input.tsx +25 -0
  278. package/src/modules/search/components/Editor/ui/insert-dropdown-menu.tsx +218 -0
  279. package/src/modules/search/components/Editor/ui/kbd-leaf.tsx +20 -0
  280. package/src/modules/search/components/Editor/ui/link-element.tsx +29 -0
  281. package/src/modules/search/components/Editor/ui/link-floating-toolbar.tsx +161 -0
  282. package/src/modules/search/components/Editor/ui/list-element.tsx +30 -0
  283. package/src/modules/search/components/Editor/ui/mark-toolbar-button.tsx +24 -0
  284. package/src/modules/search/components/Editor/ui/media-embed-element.tsx +133 -0
  285. package/src/modules/search/components/Editor/ui/media-popover.tsx +97 -0
  286. package/src/modules/search/components/Editor/ui/mention-element.tsx +43 -0
  287. package/src/modules/search/components/Editor/ui/mention-input-element.tsx +141 -0
  288. package/src/modules/search/components/Editor/ui/mode-dropdown-menu.tsx +93 -0
  289. package/src/modules/search/components/Editor/ui/more-dropdown-menu.tsx +67 -0
  290. package/src/modules/search/components/Editor/ui/paragraph-element.tsx +4 -0
  291. package/src/modules/search/components/Editor/ui/placeholder.tsx +52 -0
  292. package/src/modules/search/components/Editor/ui/popover.tsx +32 -0
  293. package/src/modules/search/components/Editor/ui/resizable.tsx +66 -0
  294. package/src/modules/search/components/Editor/ui/separator.tsx +25 -0
  295. package/src/modules/search/components/Editor/ui/style.less +12 -0
  296. package/src/modules/search/components/Editor/ui/table-cell-element.tsx +143 -0
  297. package/src/modules/search/components/Editor/ui/table-element.tsx +243 -0
  298. package/src/modules/search/components/Editor/ui/table-row-element.tsx +22 -0
  299. package/src/modules/search/components/Editor/ui/tableValue.tsx +135 -0
  300. package/src/modules/search/components/Editor/ui/todo-list-element.tsx +43 -0
  301. package/src/modules/search/components/Editor/ui/toggle-element.tsx +31 -0
  302. package/src/modules/search/components/Editor/ui/toolbar.tsx +157 -0
  303. package/src/modules/search/components/Editor/ui/tooltip.tsx +65 -0
  304. package/src/modules/search/components/Editor/ui/turn-into-dropdown-menu.tsx +160 -0
  305. package/src/modules/search/components/Editor/ui/with-draggables.tsx +175 -0
  306. package/src/modules/search/components/FileList.tsx +287 -0
  307. package/src/modules/search/components/ImageGroupView/index.tsx +85 -0
  308. package/src/modules/search/components/ResultContent.tsx +232 -0
  309. package/src/modules/search/components/SearchInput.tsx +232 -0
  310. package/src/modules/search/components/SearchLanding.tsx +74 -0
  311. package/src/modules/search/components/SearchView.tsx +563 -0
  312. package/src/modules/search/components/SimpleEditor.tsx +158 -0
  313. package/src/modules/search/components/SimpleFileList.tsx +215 -0
  314. package/src/modules/search/index.tsx +10 -0
  315. package/src/modules/search/reademe.md +1 -0
  316. package/src/modules/search/servers/apis.tsx +19 -0
  317. package/src/modules/search/servers/index.ts +184 -0
  318. package/src/modules/search/style.less +503 -0
  319. package/src/modules/search/type.ts +22 -0
  320. package/src/modules/search/utils.ts +34 -0
  321. package/src/modules/sensitive/index.tsx +313 -0
  322. package/src/modules/sensitive/server.ts +122 -0
  323. package/src/modules/streamFilesReader/GientechStreamReader.tsx +1625 -0
  324. package/src/modules/streamFilesReader/components/Header/Toolbar.tsx +0 -0
  325. package/src/modules/streamFilesReader/components/Header/index.tsx +297 -0
  326. package/src/modules/streamFilesReader/index.tsx +3 -0
  327. package/src/style.css +6 -0
  328. package/src/type.d.ts +0 -0
  329. package/src/utils/commonFn.tsx +111 -0
  330. package/src/utils/decryptApiKey.ts +40 -0
  331. package/src/utils/gientechCommon/components/AppError.tsx +32 -0
  332. package/src/utils/gientechCommon/components/AppLoading.tsx +75 -0
  333. package/src/utils/gientechCommon/components/DeleteModal.tsx +75 -0
  334. package/src/utils/gientechCommon/components/DisplayError.tsx +33 -0
  335. package/src/utils/gientechCommon/components/DisplayLoading.tsx +38 -0
  336. package/src/utils/gientechCommon/components/FeedBackModal.tsx +319 -0
  337. package/src/utils/gientechCommon/components/FileCardCommon.tsx +82 -0
  338. package/src/utils/gientechCommon/components/FileManager/index.tsx +400 -0
  339. package/src/utils/gientechCommon/components/FileManager/style.css +5 -0
  340. package/src/utils/gientechCommon/components/Messages/GientechNewChatWelcome.tsx +581 -0
  341. package/src/utils/gientechCommon/components/Messages/ReferenceCard.tsx +359 -0
  342. package/src/utils/gientechCommon/components/Messages/RetriveItem.tsx +245 -0
  343. package/src/utils/gientechCommon/components/Messages/WebRetriveItem.tsx +209 -0
  344. package/src/utils/gientechCommon/components/Messages/defaultBot.png +0 -0
  345. package/src/utils/gientechCommon/components/Messages/defaultStyleSet.tsx +148 -0
  346. package/src/utils/gientechCommon/components/Messages/defaultWeLogo.svg +14 -0
  347. package/src/utils/gientechCommon/components/RenameModal.tsx +86 -0
  348. package/src/utils/gientechCommon/components/style.less +11 -0
  349. package/src/utils/gientechCommon/configs/commonConfig.ts +2 -0
  350. package/src/utils/gientechCommon/configs/senderConfig.ts +0 -0
  351. package/src/utils/gientechCommon/configs/stylesConfig.ts +142 -0
  352. package/src/utils/gientechCommon/hooks/AichatUseController.tsx +417 -0
  353. package/src/utils/gientechCommon/hooks/useFileDisplayTools.tsx +204 -0
  354. package/src/utils/gientechCommon/hooks/useFileManager.ts +193 -0
  355. package/src/utils/gientechCommon/slate/converters/deserializers.ts +763 -0
  356. package/src/utils/gientechCommon/slate/converters/mockData.ts +232 -0
  357. package/src/utils/gientechCommon/slate/converters/slateConverters.ts +258 -0
  358. package/src/utils/gientechCommon/slate/richElements/index.tsx +499 -0
  359. package/src/utils/gientechCommon/utils/fileUtils.ts +86 -0
  360. package/src/utils/gientechCommon/utils/request.ts +37 -0
  361. package/src/utils/gientechCommon/utils/serverFn.ts +172 -0
  362. package/src/utils/index.tsx +142 -0
  363. package/src/utils/testconfigs/demologin/index.tsx +32 -0
  364. package/src/utils/testconfigs/index.ts +59 -0
  365. package/src/vite-env.d.ts +42 -0
  366. package/stats.html +4949 -0
  367. package/tailwind.config.js +170 -0
  368. package/tsconfig.app.json +30 -0
  369. package/tsconfig.app.tsbuildinfo +11 -0
  370. package/tsconfig.json +13 -0
  371. package/tsconfig.node.json +22 -0
  372. package/tsconfig.node.tsbuildinfo +1 -0
  373. package/vite.config.app.ts +93 -0
  374. package/vite.config.ts +232 -0
  375. package/workflows/release.yml +60 -0
  376. package//346/215/242/350/241/214/346/240/274/345/274/217/344/277/235/346/214/201/344/274/230/345/214/226/346/226/271/346/241/210.md +359 -0
  377. package/assistantConfig.js +0 -1
  378. package/chat.js +0 -786
  379. package/database.js +0 -20
  380. package/databaseId.js +0 -1
  381. package/index.js +0 -1
  382. package/streamFilesReader.js +0 -1
  383. /package/{assets → dist/assets}/Doris.png +0 -0
  384. /package/{assets → dist/assets}/PostgreSQL.png +0 -0
  385. /package/{assets → dist/assets}/SQLServer.png +0 -0
  386. /package/{assets → dist/assets}/empty.png +0 -0
  387. /package/{assets → dist/assets}/homeBg.png +0 -0
  388. /package/{assets → dist/assets}/index-CpW6Dhpp.js +0 -0
  389. /package/{assets → dist/assets}/left.jpg +0 -0
  390. /package/{assets → dist/assets}/logoImg.png +0 -0
  391. /package/{assets → dist/assets}/style.css +0 -0
  392. /package/{assets → dist/assets}/style2.css +0 -0
  393. /package/{assets → dist/assets}/style3.css +0 -0
  394. /package/{assets → dist/assets}/style4.css +0 -0
  395. /package/{assets → dist/assets}/worker-BbpylX7l.js +0 -0
  396. /package/{assistantConfig.d.ts → dist/assistantConfig.d.ts} +0 -0
  397. /package/{chat.d.ts → dist/chat.d.ts} +0 -0
  398. /package/{database.d.ts → dist/database.d.ts} +0 -0
  399. /package/{databaseId.d.ts → dist/databaseId.d.ts} +0 -0
  400. /package/{databaseTable.d.ts → dist/databaseTable.d.ts} +0 -0
  401. /package/{icons → dist/icons}/answerAwartar.png +0 -0
  402. /package/{icons → dist/icons}/docx-file.png +0 -0
  403. /package/{icons → dist/icons}/folder.png +0 -0
  404. /package/{icons → dist/icons}/html.png +0 -0
  405. /package/{icons → dist/icons}/image.png +0 -0
  406. /package/{icons → dist/icons}/jpg-file.png +0 -0
  407. /package/{icons → dist/icons}/json.png +0 -0
  408. /package/{icons → dist/icons}/md.png +0 -0
  409. /package/{icons → dist/icons}/pdf.png +0 -0
  410. /package/{icons → dist/icons}/pptx.png +0 -0
  411. /package/{icons → dist/icons}/questionAwartar.png +0 -0
  412. /package/{icons → dist/icons}/sheets.png +0 -0
  413. /package/{icons → dist/icons}/txt.png +0 -0
  414. /package/{icons → dist/icons}/xlsx.png +0 -0
  415. /package/{index.d.ts → dist/index.d.ts} +0 -0
  416. /package/{modelManage.d.ts → dist/modelManage.d.ts} +0 -0
  417. /package/{sensitive.d.ts → dist/sensitive.d.ts} +0 -0
  418. /package/{streamFilesReader.d.ts → dist/streamFilesReader.d.ts} +0 -0
  419. /package/{vite.svg → dist/vite.svg} +0 -0
@@ -0,0 +1,161 @@
1
+ 'use client';
2
+
3
+ import React from 'react';
4
+
5
+ import { cn } from '@udecode/cn';
6
+ import { useFormInputProps } from '@udecode/plate-common/react';
7
+ import {
8
+ type UseVirtualFloatingOptions,
9
+ flip,
10
+ offset,
11
+ } from '@udecode/plate-floating';
12
+ import {
13
+ FloatingLinkUrlInput,
14
+ type LinkFloatingToolbarState,
15
+ LinkOpenButton,
16
+ useFloatingLinkEdit,
17
+ useFloatingLinkEditState,
18
+ useFloatingLinkInsert,
19
+ useFloatingLinkInsertState,
20
+ } from '@udecode/plate-link/react';
21
+
22
+ import { Icons } from './icons';
23
+
24
+ import { buttonVariants } from './button';
25
+ import { inputVariants } from './input';
26
+ import { popoverVariants } from './popover';
27
+ import { Separator } from './separator';
28
+
29
+ const floatingOptions: UseVirtualFloatingOptions = {
30
+ middleware: [
31
+ offset(12),
32
+ flip({
33
+ fallbackPlacements: ['bottom-end', 'top-start', 'top-end'],
34
+ padding: 12,
35
+ }),
36
+ ],
37
+ placement: 'bottom-start',
38
+ };
39
+
40
+ export interface LinkFloatingToolbarProps {
41
+ state?: LinkFloatingToolbarState;
42
+ }
43
+
44
+ export function LinkFloatingToolbar({ state }: LinkFloatingToolbarProps) {
45
+ const insertState = useFloatingLinkInsertState({
46
+ ...state,
47
+ floatingOptions: {
48
+ ...floatingOptions,
49
+ ...state?.floatingOptions,
50
+ },
51
+ });
52
+ const {
53
+ hidden,
54
+ props: insertProps,
55
+ ref: insertRef,
56
+ textInputProps,
57
+ } = useFloatingLinkInsert(insertState);
58
+
59
+ const editState = useFloatingLinkEditState({
60
+ ...state,
61
+ floatingOptions: {
62
+ ...floatingOptions,
63
+ ...state?.floatingOptions,
64
+ },
65
+ });
66
+ const {
67
+ editButtonProps,
68
+ props: editProps,
69
+ ref: editRef,
70
+ unlinkButtonProps,
71
+ } = useFloatingLinkEdit(editState);
72
+ const inputProps = useFormInputProps({
73
+ preventDefaultOnEnterKeydown: true,
74
+ });
75
+
76
+ if (hidden) return null;
77
+
78
+ const input = (
79
+ <div className="flex w-[330px] flex-col" {...inputProps}>
80
+ <div className="flex items-center">
81
+ <div className="flex items-center pl-3 text-muted-foreground">
82
+ <Icons.link className="size-4" />
83
+ </div>
84
+
85
+ <FloatingLinkUrlInput
86
+ className={inputVariants({ h: 'sm', variant: 'ghost' })}
87
+ placeholder="Paste link"
88
+ />
89
+ </div>
90
+ <Separator />
91
+ <div className="flex items-center">
92
+ <div className="flex items-center pl-3 text-muted-foreground">
93
+ <Icons.text className="size-4" />
94
+ </div>
95
+ <input
96
+ className={inputVariants({ h: 'sm', variant: 'ghost' })}
97
+ placeholder="Text to display"
98
+ {...textInputProps}
99
+ />
100
+ </div>
101
+ </div>
102
+ );
103
+
104
+ const editContent = editState.isEditing ? (
105
+ input
106
+ ) : (
107
+ <div className="box-content flex h-9 items-center gap-1">
108
+ <button
109
+ className={buttonVariants({ size: 'sm', variant: 'ghost' })}
110
+ type="button"
111
+ {...editButtonProps}
112
+ >
113
+ Edit link
114
+ </button>
115
+
116
+ <Separator orientation="vertical" />
117
+
118
+ <LinkOpenButton
119
+ className={buttonVariants({
120
+ size: 'sms',
121
+ variant: 'ghost',
122
+ })}
123
+ >
124
+ <Icons.externalLink width={18} />
125
+ </LinkOpenButton>
126
+
127
+ <Separator orientation="vertical" />
128
+
129
+ <button
130
+ className={buttonVariants({
131
+ size: 'sms',
132
+ variant: 'ghost',
133
+ })}
134
+ type="button"
135
+ {...unlinkButtonProps}
136
+ >
137
+ <Icons.unlink width={18} />
138
+ </button>
139
+ </div>
140
+ );
141
+
142
+ return (
143
+ <>
144
+ <div
145
+ className={cn(popoverVariants(), 'w-auto p-1')}
146
+ ref={insertRef}
147
+ {...insertProps}
148
+ >
149
+ {input}
150
+ </div>
151
+
152
+ <div
153
+ className={cn(popoverVariants(), 'w-auto p-1')}
154
+ ref={editRef}
155
+ {...editProps}
156
+ >
157
+ {editContent}
158
+ </div>
159
+ </>
160
+ );
161
+ }
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+
3
+ import { withRef, withVariants } from '@udecode/cn';
4
+ import { PlateElement } from '@udecode/plate-common/react';
5
+ import { cva } from 'class-variance-authority';
6
+
7
+ const listVariants = cva('m-0 ps-6', {
8
+ variants: {
9
+ variant: {
10
+ ol: 'list-decimal',
11
+ ul: 'list-disc [&_ul]:list-[circle] [&_ul_ul]:list-[square]',
12
+ },
13
+ },
14
+ });
15
+
16
+ const ListElementVariants = withVariants(PlateElement, listVariants, [
17
+ 'variant',
18
+ ]);
19
+
20
+ export const ListElement = withRef<typeof ListElementVariants>(
21
+ ({ children, variant = 'ul', ...props }, ref) => {
22
+ const Component = variant!;
23
+
24
+ return (
25
+ <ListElementVariants asChild ref={ref} variant={variant} {...props}>
26
+ <Component>{children}</Component>
27
+ </ListElementVariants>
28
+ );
29
+ }
30
+ );
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+
3
+ import React from 'react';
4
+
5
+ import { withRef } from '@udecode/cn';
6
+ import {
7
+ useMarkToolbarButton,
8
+ useMarkToolbarButtonState,
9
+ } from '@udecode/plate-common/react';
10
+
11
+ import { ToolbarButton } from './toolbar';
12
+
13
+ export const MarkToolbarButton = withRef<
14
+ typeof ToolbarButton,
15
+ {
16
+ clear?: string | string[];
17
+ nodeType: string;
18
+ }
19
+ >(({ clear, nodeType, ...rest }, ref) => {
20
+ const state = useMarkToolbarButtonState({ clear, nodeType });
21
+ const { props } = useMarkToolbarButton(state);
22
+
23
+ return <ToolbarButton ref={ref} {...props} {...rest} />;
24
+ });
@@ -0,0 +1,133 @@
1
+ import React from 'react';
2
+ import LiteYouTubeEmbed from 'react-lite-youtube-embed';
3
+ import { Tweet } from 'react-tweet';
4
+
5
+ import { cn, withRef } from '@udecode/cn';
6
+ import { PlateElement, withHOC } from '@udecode/plate-common/react';
7
+ import { parseTwitterUrl, parseVideoUrl } from '@udecode/plate-media';
8
+ import { MediaEmbedPlugin, useMediaState } from '@udecode/plate-media/react';
9
+ import { ResizableProvider, useResizableStore } from '@udecode/plate-resizable';
10
+
11
+ import { Caption, CaptionTextarea } from './caption';
12
+ import { MediaPopover } from './media-popover';
13
+ import {
14
+ Resizable,
15
+ ResizeHandle,
16
+ mediaResizeHandleVariants,
17
+ } from './resizable';
18
+
19
+ export const MediaEmbedElement = withHOC(
20
+ ResizableProvider,
21
+ withRef<typeof PlateElement>(({ children, className, ...props }, ref) => {
22
+ const {
23
+ align = 'center',
24
+ embed,
25
+ focused,
26
+ isTweet,
27
+ isVideo,
28
+ isYoutube,
29
+ readOnly,
30
+ selected,
31
+ } = useMediaState({
32
+ urlParsers: [parseTwitterUrl, parseVideoUrl],
33
+ });
34
+ const width = useResizableStore().get.width();
35
+ const provider = embed?.provider;
36
+
37
+ return (
38
+ <MediaPopover plugin={MediaEmbedPlugin}>
39
+ <PlateElement
40
+ className={cn('relative py-2.5', className)}
41
+ ref={ref}
42
+ {...props}
43
+ >
44
+ <figure className="group relative m-0 w-full" contentEditable={false}>
45
+ <Resizable
46
+ align={align}
47
+ options={{
48
+ align,
49
+ maxWidth: isTweet ? 550 : '100%',
50
+ minWidth: isTweet ? 300 : 100,
51
+ }}
52
+ >
53
+ <ResizeHandle
54
+ className={mediaResizeHandleVariants({ direction: 'left' })}
55
+ options={{ direction: 'left' }}
56
+ />
57
+
58
+ {isVideo ? (
59
+ isYoutube ? (
60
+ <LiteYouTubeEmbed
61
+ id={embed!.id!}
62
+ title="youtube"
63
+ wrapperClass={cn(
64
+ 'rounded-sm',
65
+ focused && selected && 'ring-2 ring-ring ring-offset-2',
66
+ 'relative block cursor-pointer bg-black bg-cover bg-center [contain:content]',
67
+ '[&.lyt-activated]:before:absolute [&.lyt-activated]:before:top-0 [&.lyt-activated]:before:h-[60px] [&.lyt-activated]:before:w-full [&.lyt-activated]:before:bg-top [&.lyt-activated]:before:bg-repeat-x [&.lyt-activated]:before:pb-[50px] [&.lyt-activated]:before:[transition:all_0.2s_cubic-bezier(0,_0,_0.2,_1)]',
68
+ '[&.lyt-activated]:before:bg-[url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==)]',
69
+ 'after:block after:pb-[var(--aspect-ratio)] after:content-[""]',
70
+ '[&_>_iframe]:absolute [&_>_iframe]:left-0 [&_>_iframe]:top-0 [&_>_iframe]:size-full',
71
+ '[&_>_.lty-playbtn]:z-[1] [&_>_.lty-playbtn]:h-[46px] [&_>_.lty-playbtn]:w-[70px] [&_>_.lty-playbtn]:rounded-[14%] [&_>_.lty-playbtn]:bg-[#212121] [&_>_.lty-playbtn]:opacity-80 [&_>_.lty-playbtn]:[transition:all_0.2s_cubic-bezier(0,_0,_0.2,_1)]',
72
+ '[&:hover_>_.lty-playbtn]:bg-[red] [&:hover_>_.lty-playbtn]:opacity-100',
73
+ '[&_>_.lty-playbtn]:before:border-y-[11px] [&_>_.lty-playbtn]:before:border-l-[19px] [&_>_.lty-playbtn]:before:border-r-0 [&_>_.lty-playbtn]:before:border-[transparent_transparent_transparent_#fff] [&_>_.lty-playbtn]:before:content-[""]',
74
+ '[&_>_.lty-playbtn]:absolute [&_>_.lty-playbtn]:left-1/2 [&_>_.lty-playbtn]:top-1/2 [&_>_.lty-playbtn]:[transform:translate3d(-50%,-50%,0)]',
75
+ '[&_>_.lty-playbtn]:before:absolute [&_>_.lty-playbtn]:before:left-1/2 [&_>_.lty-playbtn]:before:top-1/2 [&_>_.lty-playbtn]:before:[transform:translate3d(-50%,-50%,0)]',
76
+ '[&.lyt-activated]:cursor-[unset]',
77
+ '[&.lyt-activated]:before:pointer-events-none [&.lyt-activated]:before:opacity-0',
78
+ '[&.lyt-activated_>_.lty-playbtn]:pointer-events-none [&.lyt-activated_>_.lty-playbtn]:!opacity-0'
79
+ )}
80
+ />
81
+ ) : (
82
+ <div
83
+ className={cn(
84
+ provider === 'vimeo' && 'pb-[75%]',
85
+ provider === 'youku' && 'pb-[56.25%]',
86
+ provider === 'dailymotion' && 'pb-[56.0417%]',
87
+ provider === 'coub' && 'pb-[51.25%]'
88
+ )}
89
+ >
90
+ <iframe
91
+ allowFullScreen
92
+ className={cn(
93
+ 'absolute left-0 top-0 size-full rounded-sm',
94
+ isVideo && 'border-0',
95
+ focused && selected && 'ring-2 ring-ring ring-offset-2'
96
+ )}
97
+ src={embed!.url}
98
+ title="embed"
99
+ />
100
+ </div>
101
+ )
102
+ ) : null}
103
+
104
+ {isTweet && (
105
+ <div
106
+ className={cn(
107
+ '[&_.react-tweet-theme]:my-0',
108
+ !readOnly &&
109
+ selected &&
110
+ '[&_.react-tweet-theme]:ring-2 [&_.react-tweet-theme]:ring-ring [&_.react-tweet-theme]:ring-offset-2'
111
+ )}
112
+ >
113
+ <Tweet id={embed!.id!} />
114
+ </div>
115
+ )}
116
+
117
+ <ResizeHandle
118
+ className={mediaResizeHandleVariants({ direction: 'right' })}
119
+ options={{ direction: 'right' }}
120
+ />
121
+ </Resizable>
122
+
123
+ <Caption align={align} style={{ width }}>
124
+ <CaptionTextarea placeholder="Write a caption..." />
125
+ </Caption>
126
+ </figure>
127
+
128
+ {children}
129
+ </PlateElement>
130
+ </MediaPopover>
131
+ );
132
+ })
133
+ );
@@ -0,0 +1,97 @@
1
+ import React, { useEffect } from 'react';
2
+
3
+ import {
4
+ type WithRequiredKey,
5
+ isSelectionExpanded,
6
+ } from '@udecode/plate-common';
7
+ import {
8
+ useEditorSelector,
9
+ useElement,
10
+ useRemoveNodeButton,
11
+ } from '@udecode/plate-common/react';
12
+ import {
13
+ FloatingMedia as FloatingMediaPrimitive,
14
+ floatingMediaActions,
15
+ useFloatingMediaSelectors,
16
+ } from '@udecode/plate-media/react';
17
+ import { useReadOnly, useSelected } from 'slate-react';
18
+
19
+ import { Icons } from './icons';
20
+
21
+ import { Button, buttonVariants } from './button';
22
+ import { CaptionButton } from './caption';
23
+ import { inputVariants } from './input';
24
+ import { Popover, PopoverAnchor, PopoverContent } from './popover';
25
+ import { Separator } from './separator';
26
+
27
+ export interface MediaPopoverProps {
28
+ children: React.ReactNode;
29
+ plugin: WithRequiredKey;
30
+ }
31
+
32
+ export function MediaPopover({ children, plugin }: MediaPopoverProps) {
33
+ const readOnly = useReadOnly();
34
+ const selected = useSelected();
35
+
36
+ const selectionCollapsed = useEditorSelector(
37
+ (editor) => !isSelectionExpanded(editor),
38
+ []
39
+ );
40
+ const isOpen = !readOnly && selected && selectionCollapsed;
41
+ const isEditing = useFloatingMediaSelectors().isEditing();
42
+
43
+ useEffect(() => {
44
+ if (!isOpen && isEditing) {
45
+ floatingMediaActions.isEditing(false);
46
+ }
47
+ // eslint-disable-next-line react-hooks/exhaustive-deps
48
+ }, [isOpen]);
49
+
50
+ const element = useElement();
51
+ const { props: buttonProps } = useRemoveNodeButton({ element });
52
+
53
+ if (readOnly) return <>{children}</>;
54
+
55
+ return (
56
+ <Popover modal={false} open={isOpen}>
57
+ <PopoverAnchor>{children}</PopoverAnchor>
58
+
59
+ <PopoverContent
60
+ className="w-auto p-1"
61
+ onOpenAutoFocus={(e) => e.preventDefault()}
62
+ >
63
+ {isEditing ? (
64
+ <div className="flex w-[330px] flex-col">
65
+ <div className="flex items-center">
66
+ <div className="flex items-center pl-3 text-muted-foreground">
67
+ <Icons.link className="size-4" />
68
+ </div>
69
+
70
+ <FloatingMediaPrimitive.UrlInput
71
+ className={inputVariants({ h: 'sm', variant: 'ghost' })}
72
+ options={{ plugin }}
73
+ placeholder="Paste the embed link..."
74
+ />
75
+ </div>
76
+ </div>
77
+ ) : (
78
+ <div className="box-content flex h-9 items-center gap-1">
79
+ <FloatingMediaPrimitive.EditButton
80
+ className={buttonVariants({ size: 'sm', variant: 'ghost' })}
81
+ >
82
+ Edit link
83
+ </FloatingMediaPrimitive.EditButton>
84
+
85
+ <CaptionButton variant="ghost">Caption</CaptionButton>
86
+
87
+ <Separator className="my-1" orientation="vertical" />
88
+
89
+ <Button size="sms" variant="ghost" {...buttonProps}>
90
+ <Icons.delete className="size-4" />
91
+ </Button>
92
+ </div>
93
+ )}
94
+ </PopoverContent>
95
+ </Popover>
96
+ );
97
+ }
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+
3
+ import type { TMentionElement } from '@udecode/plate-mention';
4
+
5
+ import { cn, withRef } from '@udecode/cn';
6
+ import { getHandler } from '@udecode/plate-common';
7
+ import { PlateElement, useElement } from '@udecode/plate-common/react';
8
+ import { useFocused, useSelected } from 'slate-react';
9
+
10
+ export const MentionElement = withRef<
11
+ typeof PlateElement,
12
+ {
13
+ onClick?: (mentionNode: any) => void;
14
+ prefix?: string;
15
+ renderLabel?: (mentionable: TMentionElement) => string;
16
+ }
17
+ >(({ children, className, onClick, prefix, renderLabel, ...props }, ref) => {
18
+ const element = useElement<TMentionElement>();
19
+ const selected = useSelected();
20
+ const focused = useFocused();
21
+
22
+ return (
23
+ <PlateElement
24
+ className={cn(
25
+ 'inline-block cursor-pointer rounded-md bg-muted px-1.5 py-0.5 align-baseline text-sm font-medium',
26
+ selected && focused && 'ring-2 ring-ring',
27
+ element.children[0].bold === true && 'font-bold',
28
+ element.children[0].italic === true && 'italic',
29
+ element.children[0].underline === true && 'underline',
30
+ className
31
+ )}
32
+ contentEditable={false}
33
+ data-slate-value={element.value}
34
+ onClick={getHandler(onClick, element)}
35
+ ref={ref}
36
+ {...props}
37
+ >
38
+ {prefix}
39
+ {renderLabel ? renderLabel(element) : element.value}
40
+ {children}
41
+ </PlateElement>
42
+ );
43
+ });
@@ -0,0 +1,141 @@
1
+ import React, { useState } from 'react';
2
+
3
+ import { cn, withRef } from '@udecode/cn';
4
+ import { PlateElement } from '@udecode/plate-common/react';
5
+ import { getMentionOnSelectItem } from '@udecode/plate-mention';
6
+
7
+ import {
8
+ InlineCombobox,
9
+ InlineComboboxContent,
10
+ InlineComboboxEmpty,
11
+ InlineComboboxInput,
12
+ InlineComboboxItem,
13
+ } from './inline-combobox';
14
+
15
+ const onSelectItem = getMentionOnSelectItem();
16
+
17
+ export const MentionInputElement = withRef<typeof PlateElement>(
18
+ ({ className, ...props }, ref) => {
19
+ const { children, editor, element } = props;
20
+ const [search, setSearch] = useState('');
21
+
22
+ return (
23
+ <PlateElement
24
+ as="span"
25
+ data-slate-value={element.value}
26
+ ref={ref}
27
+ {...props}
28
+ >
29
+ <InlineCombobox
30
+ element={element}
31
+ setValue={setSearch}
32
+ showTrigger={false}
33
+ trigger="@"
34
+ value={search}
35
+ >
36
+ <span
37
+ className={cn(
38
+ 'inline-block rounded-md bg-muted px-1.5 py-0.5 align-baseline text-sm ring-ring focus-within:ring-2',
39
+ className
40
+ )}
41
+ >
42
+ <InlineComboboxInput />
43
+ </span>
44
+
45
+ <InlineComboboxContent className="my-1.5">
46
+ <InlineComboboxEmpty>No results found</InlineComboboxEmpty>
47
+
48
+ {MENTIONABLES.map((item) => (
49
+ <InlineComboboxItem
50
+ key={item.key}
51
+ onClick={() => onSelectItem(editor, item, search)}
52
+ value={item.text}
53
+ >
54
+ {item.text}
55
+ </InlineComboboxItem>
56
+ ))}
57
+ </InlineComboboxContent>
58
+ </InlineCombobox>
59
+
60
+ {children}
61
+ </PlateElement>
62
+ );
63
+ }
64
+ );
65
+
66
+ export const MENTIONABLES = [
67
+ { key: '0', text: 'Aayla Secura' },
68
+ { key: '1', text: 'Adi Gallia' },
69
+ {
70
+ key: '2',
71
+ text: 'Admiral Dodd Rancit',
72
+ },
73
+ {
74
+ key: '3',
75
+ text: 'Admiral Firmus Piett',
76
+ },
77
+ {
78
+ key: '4',
79
+ text: 'Admiral Gial Ackbar',
80
+ },
81
+ { key: '5', text: 'Admiral Ozzel' },
82
+ { key: '6', text: 'Admiral Raddus' },
83
+ {
84
+ key: '7',
85
+ text: 'Admiral Terrinald Screed',
86
+ },
87
+ { key: '8', text: 'Admiral Trench' },
88
+ {
89
+ key: '9',
90
+ text: 'Admiral U.O. Statura',
91
+ },
92
+ { key: '10', text: 'Agen Kolar' },
93
+ { key: '11', text: 'Agent Kallus' },
94
+ {
95
+ key: '12',
96
+ text: 'Aiolin and Morit Astarte',
97
+ },
98
+ { key: '13', text: 'Aks Moe' },
99
+ { key: '14', text: 'Almec' },
100
+ { key: '15', text: 'Alton Kastle' },
101
+ { key: '16', text: 'Amee' },
102
+ { key: '17', text: 'AP-5' },
103
+ { key: '18', text: 'Armitage Hux' },
104
+ { key: '19', text: 'Artoo' },
105
+ { key: '20', text: 'Arvel Crynyd' },
106
+ { key: '21', text: 'Asajj Ventress' },
107
+ { key: '22', text: 'Aurra Sing' },
108
+ { key: '23', text: 'AZI-3' },
109
+ { key: '24', text: 'Bala-Tik' },
110
+ { key: '25', text: 'Barada' },
111
+ { key: '26', text: 'Bargwill Tomder' },
112
+ { key: '27', text: 'Baron Papanoida' },
113
+ { key: '28', text: 'Barriss Offee' },
114
+ { key: '29', text: 'Baze Malbus' },
115
+ { key: '30', text: 'Bazine Netal' },
116
+ { key: '31', text: 'BB-8' },
117
+ { key: '32', text: 'BB-9E' },
118
+ { key: '33', text: 'Ben Quadinaros' },
119
+ { key: '34', text: 'Berch Teller' },
120
+ { key: '35', text: 'Beru Lars' },
121
+ { key: '36', text: 'Bib Fortuna' },
122
+ {
123
+ key: '37',
124
+ text: 'Biggs Darklighter',
125
+ },
126
+ { key: '38', text: 'Black Krrsantan' },
127
+ { key: '39', text: 'Bo-Katan Kryze' },
128
+ { key: '40', text: 'Boba Fett' },
129
+ { key: '41', text: 'Bobbajo' },
130
+ { key: '42', text: 'Bodhi Rook' },
131
+ { key: '43', text: 'Borvo the Hutt' },
132
+ { key: '44', text: 'Boss Nass' },
133
+ { key: '45', text: 'Bossk' },
134
+ {
135
+ key: '46',
136
+ text: 'Breha Antilles-Organa',
137
+ },
138
+ { key: '47', text: 'Bren Derlin' },
139
+ { key: '48', text: 'Brendol Hux' },
140
+ { key: '49', text: 'BT-1' },
141
+ ];