@gientech/modual 1.3.3 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/README.md +129 -129
  2. package/{dist/assets → assets}/database.svg +11 -11
  3. package/{src/modules/database/assets → assets}/database_add.svg +53 -53
  4. package/{dist/assets → assets}/database_connect.svg +66 -66
  5. package/{dist/assets → assets}/database_upload.svg +29 -29
  6. package/{dist/assets → assets}/defaultWeLogo.svg +14 -14
  7. package/{dist/assets/index-mPgEc8KC.js → assets/index-CDNF071H.js} +38 -38
  8. package/{dist/assets/index-XvC_4jDB.js → assets/index-Ce4td48i.js} +20 -20
  9. package/{dist/assets → assets}/mysql.svg +14 -14
  10. package/{dist/chat.js → chat.js} +2 -2
  11. package/database.js +20 -0
  12. package/{dist/databaseId.js → databaseId.js} +1 -1
  13. package/{dist/databaseTable.js → databaseTable.js} +1 -1
  14. package/{dist/modelManage.js → modelManage.js} +1 -1
  15. package/package.json +39 -83
  16. package/{dist/sensitive.js → sensitive.js} +1 -1
  17. package/{dist/streamFilesReader.js → streamFilesReader.js} +10 -10
  18. package/{dist/worker → worker}/pdf.worker.min.js +21 -21
  19. package/.editorconfig +0 -38
  20. package/.prettierignore +0 -16
  21. package/.prettierrc +0 -17
  22. package/USAGE.md +0 -191
  23. package/bash.exe.stackdump +0 -40
  24. package/components.json +0 -21
  25. package/dist/README.md +0 -129
  26. package/dist/assets/database_add.svg +0 -53
  27. package/dist/database.js +0 -20
  28. package/dist/package.json +0 -56
  29. package/doc_assets/2.png +0 -0
  30. package/doc_assets/demo.md +0 -27
  31. package/doc_assets/demos/dist-app/assets/index.Dh-ZAS9Z.css +0 -2
  32. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js +0 -23699
  33. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js.map +0 -1
  34. package/doc_assets/demos/dist-app/index.html +0 -14
  35. package/doc_assets/demos/dist-app/vite.svg +0 -1
  36. package/doc_assets/images/1.png +0 -0
  37. package/doc_assets/images/3.png +0 -0
  38. package/doc_assets/images/component-screenshot.png +0 -1
  39. package/doc_assets/install.md +0 -5
  40. package/eslint.config.js +0 -92
  41. package/index.html +0 -13
  42. package/postcss.config.cjs +0 -19
  43. package/public/vite.svg +0 -1
  44. package/public/worker/pdf.worker.min.js +0 -22
  45. package/scripts/README.md +0 -133
  46. package/scripts/build-demo.js +0 -88
  47. package/scripts/demo-selector.js +0 -216
  48. package/scripts/dev-demo.js +0 -76
  49. package/scripts/preview-demo.js +0 -130
  50. package/scripts/run-demo.bat +0 -34
  51. package/src/assets/img/downArrow.png +0 -0
  52. package/src/assets/img/excel.png +0 -0
  53. package/src/assets/img/img.png +0 -0
  54. package/src/assets/img/pdf.png +0 -0
  55. package/src/assets/img/ppt.png +0 -0
  56. package/src/assets/img/txt.png +0 -0
  57. package/src/assets/img/word.png +0 -0
  58. package/src/assets/login/homeBg.png +0 -0
  59. package/src/assets/login/left.jpg +0 -0
  60. package/src/assets/login/logoImg.png +0 -0
  61. package/src/examples/LoginPage/index.tsx +0 -18
  62. package/src/examples/aaa/index.tsx +0 -3758
  63. package/src/examples/chat/components/DrawerGraphPreview.tsx +0 -78
  64. package/src/examples/chat/index.tsx +0 -190
  65. package/src/examples/gientechStreamFilesReader/index.tsx +0 -1016
  66. package/src/examples/ragDatabaseDataPage/index.tsx +0 -36
  67. package/src/examples/ragDatabaseIdPage/index.tsx +0 -44
  68. package/src/examples/ragDatabasePage/index.tsx +0 -36
  69. package/src/examples/ragModelManagePage/index.tsx +0 -37
  70. package/src/examples/ragSearchPage/index.tsx +0 -0
  71. package/src/examples/ragSensitiveWordsPage/index.tsx +0 -32
  72. package/src/examples/streamFiles/index.tsx +0 -384
  73. package/src/lib_enter.ts +0 -38
  74. package/src/main.tsx +0 -5
  75. package/src/main.tsx.backup +0 -5
  76. package/src/modules/chat/Conversations/Item.tsx +0 -167
  77. package/src/modules/chat/Conversations/List.tsx +0 -143
  78. package/src/modules/chat/Conversations/groupByTime.ts +0 -39
  79. package/src/modules/chat/Conversations/index.tsx +0 -212
  80. package/src/modules/chat/constants.tsx +0 -33
  81. package/src/modules/chat/data.txt +0 -82
  82. package/src/modules/chat/index.tsx +0 -1908
  83. package/src/modules/chat/types.ts +0 -17
  84. package/src/modules/database/CreateModal.tsx +0 -398
  85. package/src/modules/database/assets/Doris.png +0 -0
  86. package/src/modules/database/assets/PostgreSQL.png +0 -0
  87. package/src/modules/database/assets/SQLServer.png +0 -0
  88. package/src/modules/database/assets/database.svg +0 -11
  89. package/src/modules/database/assets/database_connect.svg +0 -66
  90. package/src/modules/database/assets/database_upload.svg +0 -29
  91. package/src/modules/database/assets/empty.png +0 -0
  92. package/src/modules/database/assets/mysql.svg +0 -14
  93. package/src/modules/database/index.tsx +0 -466
  94. package/src/modules/database/server.ts +0 -196
  95. package/src/modules/databaseId/CustomCom.tsx +0 -156
  96. package/src/modules/databaseId/EditConfig.tsx +0 -268
  97. package/src/modules/databaseId/UploadDrawer.tsx +0 -520
  98. package/src/modules/databaseId/assets/aiOptimize.svg +0 -10
  99. package/src/modules/databaseId/assets/empty.png +0 -0
  100. package/src/modules/databaseId/assets/template.svg +0 -6
  101. package/src/modules/databaseId/assets/upload.svg +0 -9
  102. package/src/modules/databaseId/assets/useTemp.svg +0 -6
  103. package/src/modules/databaseId/index.tsx +0 -734
  104. package/src/modules/databaseId/server.ts +0 -286
  105. package/src/modules/databaseId/style.css +0 -5
  106. package/src/modules/databaseTable/EditRowDrawer.tsx +0 -119
  107. package/src/modules/databaseTable/index.tsx +0 -357
  108. package/src/modules/databaseTable/server.ts +0 -180
  109. package/src/modules/headlessChat/constants.tsx +0 -32
  110. package/src/modules/headlessChat/index.tsx +0 -1065
  111. package/src/modules/headlessChat/types.ts +0 -23
  112. package/src/modules/login/components/Login/LoginBox/index.tsx +0 -102
  113. package/src/modules/login/components/Login/RegisterBox/index.tsx +0 -180
  114. package/src/modules/login/components/Login/index.tsx +0 -100
  115. package/src/modules/login/index.tsx +0 -106
  116. package/src/modules/login/style.css +0 -3
  117. package/src/modules/login/useServices.ts +0 -53
  118. package/src/modules/login/utils.ts +0 -42
  119. package/src/modules/modelManage/ConfigDrawer.tsx +0 -249
  120. package/src/modules/modelManage/assets/empty.png +0 -0
  121. package/src/modules/modelManage/const.ts +0 -50
  122. package/src/modules/modelManage/index.tsx +0 -439
  123. package/src/modules/modelManage/server.ts +0 -185
  124. package/src/modules/nodegraph/index.tsx +0 -1
  125. package/src/modules/search/assets/Icon-history.svg +0 -8
  126. package/src/modules/search/assets/answerAwartar.png +0 -0
  127. package/src/modules/search/assets/doc.png +0 -0
  128. package/src/modules/search/assets/genera.gif +0 -0
  129. package/src/modules/search/assets/icon-robot.svg +0 -9
  130. package/src/modules/search/assets/icon-search-bar.svg +0 -14
  131. package/src/modules/search/assets/icon-sub-title.svg +0 -3
  132. package/src/modules/search/assets/icon-title.svg +0 -9
  133. package/src/modules/search/assets/icon-zoomOut.svg +0 -9
  134. package/src/modules/search/assets/iconAi.svg +0 -9
  135. package/src/modules/search/assets/pdf.png +0 -0
  136. package/src/modules/search/assets/ppt.png +0 -0
  137. package/src/modules/search/assets/search.svg +0 -3
  138. package/src/modules/search/assets/selected.svg +0 -4
  139. package/src/modules/search/assets/txt.png +0 -0
  140. package/src/modules/search/assets/xls.png +0 -0
  141. package/src/modules/search/components/AssisSelect.tsx +0 -137
  142. package/src/modules/search/components/Editor/ChatViewEditor.tsx +0 -261
  143. package/src/modules/search/components/Editor/aichat.css +0 -1
  144. package/src/modules/search/components/Editor/constant.ts +0 -13
  145. package/src/modules/search/components/Editor/index.tsx +0 -113
  146. package/src/modules/search/components/Editor/plugins/autofomatRules.ts +0 -332
  147. package/src/modules/search/components/Editor/plugins/convertImgPlugins.tsx +0 -20
  148. package/src/modules/search/components/Editor/plugins/createIndexes.tsx +0 -38
  149. package/src/modules/search/components/Editor/plugins/displayer.ts +0 -298
  150. package/src/modules/search/components/Editor/plugins/imageClick.tsx +0 -32
  151. package/src/modules/search/components/Editor/plugins/myplugin.tsx +0 -98
  152. package/src/modules/search/components/Editor/ui/avatar.tsx +0 -19
  153. package/src/modules/search/components/Editor/ui/blockquote-element.tsx +0 -21
  154. package/src/modules/search/components/Editor/ui/button.tsx +0 -58
  155. package/src/modules/search/components/Editor/ui/calendar.tsx +0 -68
  156. package/src/modules/search/components/Editor/ui/caption.tsx +0 -46
  157. package/src/modules/search/components/Editor/ui/checkbox.tsx +0 -27
  158. package/src/modules/search/components/Editor/ui/code-block-combobox.tsx +0 -188
  159. package/src/modules/search/components/Editor/ui/code-block-element.css +0 -434
  160. package/src/modules/search/components/Editor/ui/code-block-element.tsx +0 -39
  161. package/src/modules/search/components/Editor/ui/code-leaf.tsx +0 -24
  162. package/src/modules/search/components/Editor/ui/code-line-element.tsx +0 -10
  163. package/src/modules/search/components/Editor/ui/code-syntax-leaf.tsx +0 -21
  164. package/src/modules/search/components/Editor/ui/column-element.tsx +0 -30
  165. package/src/modules/search/components/Editor/ui/column-group-element.tsx +0 -94
  166. package/src/modules/search/components/Editor/ui/command.tsx +0 -75
  167. package/src/modules/search/components/Editor/ui/comment-avatar.tsx +0 -22
  168. package/src/modules/search/components/Editor/ui/comment-create-form.tsx +0 -37
  169. package/src/modules/search/components/Editor/ui/comment-item.tsx +0 -74
  170. package/src/modules/search/components/Editor/ui/comment-leaf.tsx +0 -49
  171. package/src/modules/search/components/Editor/ui/comment-more-dropdown.tsx +0 -42
  172. package/src/modules/search/components/Editor/ui/comment-reply-items.tsx +0 -22
  173. package/src/modules/search/components/Editor/ui/comment-resolve-button.tsx +0 -32
  174. package/src/modules/search/components/Editor/ui/comment-value.tsx +0 -34
  175. package/src/modules/search/components/Editor/ui/comments-popover.tsx +0 -63
  176. package/src/modules/search/components/Editor/ui/date-element.tsx +0 -83
  177. package/src/modules/search/components/Editor/ui/dialog.tsx +0 -63
  178. package/src/modules/search/components/Editor/ui/draggable.tsx +0 -177
  179. package/src/modules/search/components/Editor/ui/dropdown-menu.tsx +0 -180
  180. package/src/modules/search/components/Editor/ui/emoji-input-element.tsx +0 -85
  181. package/src/modules/search/components/Editor/ui/excalidraw-element.tsx +0 -28
  182. package/src/modules/search/components/Editor/ui/fixed-toolbar-buttons.tsx +0 -76
  183. package/src/modules/search/components/Editor/ui/fixed-toolbar.tsx +0 -8
  184. package/src/modules/search/components/Editor/ui/floating-toolbar-buttons.tsx +0 -51
  185. package/src/modules/search/components/Editor/ui/floating-toolbar.tsx +0 -77
  186. package/src/modules/search/components/Editor/ui/heading-element.tsx +0 -48
  187. package/src/modules/search/components/Editor/ui/highlight-leaf.tsx +0 -17
  188. package/src/modules/search/components/Editor/ui/hr-element.tsx +0 -30
  189. package/src/modules/search/components/Editor/ui/icons.tsx +0 -267
  190. package/src/modules/search/components/Editor/ui/image-element.tsx +0 -74
  191. package/src/modules/search/components/Editor/ui/inline-combobox.tsx +0 -368
  192. package/src/modules/search/components/Editor/ui/input.tsx +0 -25
  193. package/src/modules/search/components/Editor/ui/insert-dropdown-menu.tsx +0 -218
  194. package/src/modules/search/components/Editor/ui/kbd-leaf.tsx +0 -20
  195. package/src/modules/search/components/Editor/ui/link-element.tsx +0 -29
  196. package/src/modules/search/components/Editor/ui/link-floating-toolbar.tsx +0 -161
  197. package/src/modules/search/components/Editor/ui/list-element.tsx +0 -30
  198. package/src/modules/search/components/Editor/ui/mark-toolbar-button.tsx +0 -24
  199. package/src/modules/search/components/Editor/ui/media-embed-element.tsx +0 -133
  200. package/src/modules/search/components/Editor/ui/media-popover.tsx +0 -97
  201. package/src/modules/search/components/Editor/ui/mention-element.tsx +0 -43
  202. package/src/modules/search/components/Editor/ui/mention-input-element.tsx +0 -141
  203. package/src/modules/search/components/Editor/ui/mode-dropdown-menu.tsx +0 -93
  204. package/src/modules/search/components/Editor/ui/more-dropdown-menu.tsx +0 -67
  205. package/src/modules/search/components/Editor/ui/paragraph-element.tsx +0 -4
  206. package/src/modules/search/components/Editor/ui/placeholder.tsx +0 -52
  207. package/src/modules/search/components/Editor/ui/popover.tsx +0 -32
  208. package/src/modules/search/components/Editor/ui/resizable.tsx +0 -66
  209. package/src/modules/search/components/Editor/ui/separator.tsx +0 -25
  210. package/src/modules/search/components/Editor/ui/style.less +0 -12
  211. package/src/modules/search/components/Editor/ui/table-cell-element.tsx +0 -143
  212. package/src/modules/search/components/Editor/ui/table-element.tsx +0 -243
  213. package/src/modules/search/components/Editor/ui/table-row-element.tsx +0 -22
  214. package/src/modules/search/components/Editor/ui/tableValue.tsx +0 -135
  215. package/src/modules/search/components/Editor/ui/todo-list-element.tsx +0 -43
  216. package/src/modules/search/components/Editor/ui/toggle-element.tsx +0 -31
  217. package/src/modules/search/components/Editor/ui/toolbar.tsx +0 -157
  218. package/src/modules/search/components/Editor/ui/tooltip.tsx +0 -65
  219. package/src/modules/search/components/Editor/ui/turn-into-dropdown-menu.tsx +0 -160
  220. package/src/modules/search/components/Editor/ui/with-draggables.tsx +0 -175
  221. package/src/modules/search/components/FileList.tsx +0 -287
  222. package/src/modules/search/components/ImageGroupView/index.tsx +0 -85
  223. package/src/modules/search/components/ResultContent.tsx +0 -232
  224. package/src/modules/search/components/SearchInput.tsx +0 -232
  225. package/src/modules/search/components/SearchLanding.tsx +0 -74
  226. package/src/modules/search/components/SearchView.tsx +0 -563
  227. package/src/modules/search/components/SimpleEditor.tsx +0 -158
  228. package/src/modules/search/components/SimpleFileList.tsx +0 -215
  229. package/src/modules/search/index.tsx +0 -10
  230. package/src/modules/search/reademe.md +0 -1
  231. package/src/modules/search/servers/apis.tsx +0 -19
  232. package/src/modules/search/servers/index.ts +0 -184
  233. package/src/modules/search/style.less +0 -503
  234. package/src/modules/search/type.ts +0 -22
  235. package/src/modules/search/utils.ts +0 -34
  236. package/src/modules/sensitive/index.tsx +0 -313
  237. package/src/modules/sensitive/server.ts +0 -122
  238. package/src/modules/streamFilesReader/GientechStreamReader.tsx +0 -1555
  239. package/src/modules/streamFilesReader/components/Header/Toolbar.tsx +0 -0
  240. package/src/modules/streamFilesReader/components/Header/index.tsx +0 -297
  241. package/src/modules/streamFilesReader/index.tsx +0 -3
  242. package/src/style.css +0 -6
  243. package/src/type.d.ts +0 -0
  244. package/src/utils/commonFn.tsx +0 -111
  245. package/src/utils/gientechCommon/components/AppError.tsx +0 -32
  246. package/src/utils/gientechCommon/components/AppLoading.tsx +0 -75
  247. package/src/utils/gientechCommon/components/DeleteModal.tsx +0 -75
  248. package/src/utils/gientechCommon/components/DisplayError.tsx +0 -33
  249. package/src/utils/gientechCommon/components/DisplayLoading.tsx +0 -38
  250. package/src/utils/gientechCommon/components/FeedBackModal.tsx +0 -310
  251. package/src/utils/gientechCommon/components/FileCardCommon.tsx +0 -82
  252. package/src/utils/gientechCommon/components/FileManager/index.tsx +0 -390
  253. package/src/utils/gientechCommon/components/FileManager/style.css +0 -5
  254. package/src/utils/gientechCommon/components/Messages/GientechNewChatWelcome.tsx +0 -296
  255. package/src/utils/gientechCommon/components/Messages/ReferenceCard.tsx +0 -339
  256. package/src/utils/gientechCommon/components/Messages/RetriveItem.tsx +0 -245
  257. package/src/utils/gientechCommon/components/Messages/WebRetriveItem.tsx +0 -209
  258. package/src/utils/gientechCommon/components/Messages/defaultBot.png +0 -0
  259. package/src/utils/gientechCommon/components/Messages/defaultStyleSet.tsx +0 -148
  260. package/src/utils/gientechCommon/components/Messages/defaultWeLogo.svg +0 -14
  261. package/src/utils/gientechCommon/components/RenameModal.tsx +0 -86
  262. package/src/utils/gientechCommon/components/style.less +0 -11
  263. package/src/utils/gientechCommon/configs/commonConfig.ts +0 -2
  264. package/src/utils/gientechCommon/configs/senderConfig.ts +0 -0
  265. package/src/utils/gientechCommon/configs/stylesConfig.ts +0 -142
  266. package/src/utils/gientechCommon/hooks/AichatUseController.tsx +0 -345
  267. package/src/utils/gientechCommon/slate/converters/deserializers.ts +0 -763
  268. package/src/utils/gientechCommon/slate/converters/mockData.ts +0 -232
  269. package/src/utils/gientechCommon/slate/converters/slateConverters.ts +0 -258
  270. package/src/utils/gientechCommon/slate/richElements/index.tsx +0 -499
  271. package/src/utils/gientechCommon/utils/request.ts +0 -37
  272. package/src/utils/gientechCommon/utils/serverFn.ts +0 -172
  273. package/src/utils/index.tsx +0 -126
  274. package/src/utils/testconfigs/demologin/index.tsx +0 -32
  275. package/src/utils/testconfigs/index.ts +0 -53
  276. package/src/vite-env.d.ts +0 -11
  277. package/stats.html +0 -4949
  278. package/tailwind.config.js +0 -170
  279. package/tsconfig.app.json +0 -30
  280. package/tsconfig.app.tsbuildinfo +0 -11
  281. package/tsconfig.json +0 -13
  282. package/tsconfig.node.json +0 -22
  283. package/tsconfig.node.tsbuildinfo +0 -1
  284. package/vite.config.ts +0 -177
  285. package/workflows/release.yml +0 -60
  286. /package/{dist/assets → assets}/Doris.png +0 -0
  287. /package/{dist/assets → assets}/PostgreSQL.png +0 -0
  288. /package/{dist/assets → assets}/SQLServer.png +0 -0
  289. /package/{dist/assets → assets}/_commonjsHelpers-gnU0ypJ3.js +0 -0
  290. /package/{dist/assets → assets}/circle-alert-g2Y6zAjt.js +0 -0
  291. /package/{dist/assets → assets}/empty.png +0 -0
  292. /package/{dist/assets → assets}/index-CEK88UzR.js +0 -0
  293. /package/{dist/assets → assets}/index-CpW6Dhpp.js +0 -0
  294. /package/{dist/assets → assets}/plus-omCUN0e3.js +0 -0
  295. /package/{dist/assets → assets}/style.css +0 -0
  296. /package/{dist/assets → assets}/style2.css +0 -0
  297. /package/{dist/assets → assets}/style3.css +0 -0
  298. /package/{dist/assets → assets}/styled-components.browser.esm-DPkS13KC.js +0 -0
  299. /package/{dist/assets → assets}/x-vPcWt3fC.js +0 -0
  300. /package/{dist/chat.d.ts → chat.d.ts} +0 -0
  301. /package/{dist/database.d.ts → database.d.ts} +0 -0
  302. /package/{dist/databaseId.d.ts → databaseId.d.ts} +0 -0
  303. /package/{dist/databaseTable.d.ts → databaseTable.d.ts} +0 -0
  304. /package/{dist/modelManage.d.ts → modelManage.d.ts} +0 -0
  305. /package/{dist/sensitive.d.ts → sensitive.d.ts} +0 -0
  306. /package/{dist/streamFilesReader.d.ts → streamFilesReader.d.ts} +0 -0
  307. /package/{dist/vite.svg → vite.svg} +0 -0
@@ -1,161 +0,0 @@
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
- }
@@ -1,30 +0,0 @@
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
- );
@@ -1,24 +0,0 @@
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
- });
@@ -1,133 +0,0 @@
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
- );
@@ -1,97 +0,0 @@
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
- }
@@ -1,43 +0,0 @@
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
- });
@@ -1,141 +0,0 @@
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
- ];