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