@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,177 +0,0 @@
1
- 'use client';
2
-
3
- import React from 'react';
4
-
5
- import type { ClassNames, TEditor } from '@udecode/plate-common';
6
- import type { DropTargetMonitor } from 'react-dnd';
7
-
8
- import { cn, withRef } from '@udecode/cn';
9
- import {
10
- type PlateElementProps,
11
- useEditorRef,
12
- } from '@udecode/plate-common/react';
13
- import {
14
- type DragItemNode,
15
- useDraggable,
16
- useDraggableState,
17
- } from '@udecode/plate-dnd';
18
- import { BlockSelectionPlugin } from '@udecode/plate-selection/react';
19
-
20
- import { Icons } from './icons';
21
-
22
- import {
23
- Tooltip,
24
- TooltipContent,
25
- TooltipPortal,
26
- TooltipTrigger,
27
- } from './tooltip';
28
-
29
- export interface DraggableProps
30
- extends PlateElementProps,
31
- ClassNames<{
32
- /** Block. */
33
- block: string;
34
-
35
- /** Block and gutter. */
36
- blockAndGutter: string;
37
-
38
- /** Block toolbar in the gutter. */
39
- blockToolbar: string;
40
-
41
- /**
42
- * Block toolbar wrapper in the gutter left. It has the height of a line
43
- * of the block.
44
- */
45
- blockToolbarWrapper: string;
46
-
47
- blockWrapper: string;
48
-
49
- /** Button to dnd the block, in the block toolbar. */
50
- dragHandle: string;
51
-
52
- /** Icon of the drag button, in the drag icon. */
53
- dragIcon: string;
54
-
55
- /** Show a dropline above or below the block when dragging a block. */
56
- dropLine: string;
57
-
58
- /** Gutter at the left side of the editor. It has the height of the block */
59
- gutterLeft: string;
60
- }> {
61
- /**
62
- * Intercepts the drop handling. If `false` is returned, the default drop
63
- * behavior is called after. If `true` is returned, the default behavior is
64
- * not called.
65
- */
66
- onDropHandler?: (
67
- editor: TEditor,
68
- props: {
69
- dragItem: DragItemNode;
70
- id: string;
71
- monitor: DropTargetMonitor<DragItemNode, unknown>;
72
- nodeRef: any;
73
- }
74
- ) => boolean;
75
- }
76
-
77
- const DragHandle = () => {
78
- const editor = useEditorRef();
79
-
80
- return (
81
- <Tooltip>
82
- <TooltipTrigger type="button">
83
- <Icons.dragHandle
84
- className="size-4 text-muted-foreground"
85
- onClick={(event) => {
86
- event.stopPropagation();
87
- event.preventDefault();
88
-
89
- // if (element.id) {
90
- // editor.getApi(BlockSelectionPlugin).blockSelection.addSelectedRow(element.id as string);
91
- // api.blockContextMenu.show(editor.id, event as any);
92
- // }
93
- }}
94
- onMouseDown={() => {
95
- editor
96
- .getApi(BlockSelectionPlugin)
97
- .blockSelection.resetSelectedIds();
98
- }}
99
- />
100
- </TooltipTrigger>
101
- <TooltipPortal>
102
- <TooltipContent>Drag to move</TooltipContent>
103
- </TooltipPortal>
104
- </Tooltip>
105
- );
106
- };
107
-
108
- export const Draggable = withRef<'div', DraggableProps>(
109
- ({ className, classNames = {}, onDropHandler, ...props }, ref) => {
110
- const { children, element } = props;
111
-
112
- const state = useDraggableState({ element, onDropHandler });
113
- const { dropLine, isDragging, isHovered } = state;
114
- const {
115
- droplineProps,
116
- groupProps,
117
- gutterLeftProps,
118
- handleRef,
119
- previewRef,
120
- } = useDraggable(state);
121
-
122
- return (
123
- <div
124
- className={cn(
125
- 'relative',
126
- isDragging && 'opacity-50',
127
- 'group',
128
- className
129
- )}
130
- ref={ref}
131
- {...groupProps}
132
- >
133
- <div
134
- className={cn(
135
- 'pointer-events-none absolute -top-px z-50 flex h-full -translate-x-full cursor-text opacity-0 group-hover:opacity-100',
136
- classNames.gutterLeft
137
- )}
138
- {...gutterLeftProps}
139
- >
140
- <div className={cn('flex h-[1.5em]', classNames.blockToolbarWrapper)}>
141
- <div
142
- className={cn(
143
- 'pointer-events-auto mr-1 flex items-center',
144
- classNames.blockToolbar
145
- )}
146
- >
147
- <div
148
- className="size-4"
149
- data-key={element.id as string}
150
- ref={handleRef}
151
- >
152
- {isHovered && <DragHandle />}
153
- </div>
154
- </div>
155
- </div>
156
- </div>
157
-
158
- <div className={classNames.blockWrapper} ref={previewRef}>
159
- {children}
160
-
161
- {!!dropLine && (
162
- <div
163
- className={cn(
164
- 'absolute inset-x-0 h-0.5 opacity-100',
165
- 'bg-ring',
166
- dropLine === 'top' && '-top-px',
167
- dropLine === 'bottom' && '-bottom-px',
168
- classNames.dropLine
169
- )}
170
- {...droplineProps}
171
- />
172
- )}
173
- </div>
174
- </div>
175
- );
176
- }
177
- );
@@ -1,180 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import { useCallback, useState } from 'react';
5
-
6
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
7
- import {
8
- cn,
9
- createPrimitiveElement,
10
- withCn,
11
- withProps,
12
- withRef,
13
- withVariants,
14
- } from '@udecode/cn';
15
- import { cva } from 'class-variance-authority';
16
-
17
- import { Icons } from './icons';
18
-
19
- export const DropdownMenu = DropdownMenuPrimitive.Root;
20
-
21
- export const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
22
-
23
- export const DropdownMenuGroup = DropdownMenuPrimitive.Group;
24
-
25
- export const DropdownMenuPortal = DropdownMenuPrimitive.Portal;
26
-
27
- export const DropdownMenuSub = DropdownMenuPrimitive.Sub;
28
-
29
- export const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
30
-
31
- export const DropdownMenuSubTrigger = withRef<
32
- typeof DropdownMenuPrimitive.SubTrigger,
33
- {
34
- inset?: boolean;
35
- }
36
- >(({ children, className, inset, ...props }, ref) => (
37
- <DropdownMenuPrimitive.SubTrigger
38
- className={cn(
39
- 'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent',
40
- 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
41
- inset && 'pl-8',
42
- className
43
- )}
44
- ref={ref}
45
- {...props}
46
- >
47
- {children}
48
- <Icons.chevronRight className="ml-auto size-4" />
49
- </DropdownMenuPrimitive.SubTrigger>
50
- ));
51
-
52
- export const DropdownMenuSubContent = withCn(
53
- DropdownMenuPrimitive.SubContent,
54
- 'z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2'
55
- );
56
-
57
- const DropdownMenuContentVariants = withProps(DropdownMenuPrimitive.Content, {
58
- className: cn(
59
- 'z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2'
60
- ),
61
- sideOffset: 4,
62
- });
63
-
64
- export const DropdownMenuContent = withRef<
65
- typeof DropdownMenuPrimitive.Content
66
- >(({ ...props }, ref) => (
67
- <DropdownMenuPrimitive.Portal>
68
- <DropdownMenuContentVariants ref={ref} {...props} />
69
- </DropdownMenuPrimitive.Portal>
70
- ));
71
-
72
- const menuItemVariants = cva(
73
- cn(
74
- 'relative flex h-9 cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors',
75
- 'focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50'
76
- ),
77
- {
78
- variants: {
79
- inset: {
80
- true: 'pl-8',
81
- },
82
- },
83
- }
84
- );
85
-
86
- export const DropdownMenuItem = withVariants(
87
- DropdownMenuPrimitive.Item,
88
- menuItemVariants,
89
- ['inset']
90
- );
91
-
92
- export const DropdownMenuCheckboxItem = withRef<
93
- typeof DropdownMenuPrimitive.CheckboxItem
94
- >(({ children, className, ...props }, ref) => (
95
- <DropdownMenuPrimitive.CheckboxItem
96
- className={cn(
97
- 'relative flex select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
98
- 'cursor-pointer',
99
- className
100
- )}
101
- ref={ref}
102
- {...props}
103
- >
104
- <span className="absolute left-2 flex size-3.5 items-center justify-center">
105
- <DropdownMenuPrimitive.ItemIndicator>
106
- <Icons.check className="size-4" />
107
- </DropdownMenuPrimitive.ItemIndicator>
108
- </span>
109
- {children}
110
- </DropdownMenuPrimitive.CheckboxItem>
111
- ));
112
-
113
- export const DropdownMenuRadioItem = withRef<
114
- typeof DropdownMenuPrimitive.RadioItem,
115
- {
116
- hideIcon?: boolean;
117
- }
118
- >(({ children, className, hideIcon, ...props }, ref) => (
119
- <DropdownMenuPrimitive.RadioItem
120
- className={cn(
121
- 'relative flex select-none items-center rounded-sm pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
122
- 'h-9 cursor-pointer px-2 data-[state=checked]:bg-accent data-[state=checked]:text-accent-foreground',
123
- className
124
- )}
125
- ref={ref}
126
- {...props}
127
- >
128
- {!hideIcon && (
129
- <span className="absolute right-2 flex size-3.5 items-center justify-center">
130
- <DropdownMenuPrimitive.ItemIndicator>
131
- <Icons.check className="size-4" />
132
- </DropdownMenuPrimitive.ItemIndicator>
133
- </span>
134
- )}
135
- {children}
136
- </DropdownMenuPrimitive.RadioItem>
137
- ));
138
-
139
- const dropdownMenuLabelVariants = cva(
140
- cn('select-none px-2 py-1.5 text-sm font-semibold'),
141
- {
142
- variants: {
143
- inset: {
144
- true: 'pl-8',
145
- },
146
- },
147
- }
148
- );
149
-
150
- export const DropdownMenuLabel = withVariants(
151
- DropdownMenuPrimitive.Label,
152
- dropdownMenuLabelVariants,
153
- ['inset']
154
- );
155
-
156
- export const DropdownMenuSeparator = withCn(
157
- DropdownMenuPrimitive.Separator,
158
- '-mx-1 my-1 h-px bg-muted'
159
- );
160
-
161
- export const DropdownMenuShortcut = withCn(
162
- createPrimitiveElement('span'),
163
- 'ml-auto text-xs tracking-widest opacity-60'
164
- );
165
-
166
- export const useOpenState = () => {
167
- const [open, setOpen] = useState(false);
168
-
169
- const onOpenChange = useCallback(
170
- (_value = !open) => {
171
- setOpen(_value);
172
- },
173
- [open]
174
- );
175
-
176
- return {
177
- onOpenChange,
178
- open,
179
- };
180
- };
@@ -1,85 +0,0 @@
1
- import React, { useMemo, useState } from 'react';
2
-
3
- import { withRef } from '@udecode/cn';
4
- import { PlateElement } from '@udecode/plate-common/react';
5
- import { EmojiInlineIndexSearch, insertEmoji } from '@udecode/plate-emoji';
6
-
7
- import {
8
- InlineCombobox,
9
- InlineComboboxContent,
10
- InlineComboboxEmpty,
11
- InlineComboboxInput,
12
- InlineComboboxItem,
13
- } from './inline-combobox';
14
-
15
- export const EmojiInputElement = withRef<typeof PlateElement>(
16
- ({ className, ...props }, ref) => {
17
- const { children, editor, element } = props;
18
- const [value, setValue] = useState('');
19
- const debouncedValue = useDebounce(value, 100);
20
- const isPending = value !== debouncedValue;
21
-
22
- const filteredEmojis = useMemo(() => {
23
- if (debouncedValue.trim().length === 0) return [];
24
-
25
- return EmojiInlineIndexSearch.getInstance()
26
- .search(debouncedValue.replace(/:$/, ''))
27
- .get();
28
- }, [debouncedValue]);
29
-
30
- return (
31
- <PlateElement
32
- as="span"
33
- data-slate-value={element.value}
34
- ref={ref}
35
- {...props}
36
- >
37
- <InlineCombobox
38
- element={element}
39
- filter={false}
40
- hideWhenNoValue
41
- setValue={setValue}
42
- trigger=":"
43
- value={value}
44
- >
45
- <InlineComboboxInput />
46
-
47
- <InlineComboboxContent>
48
- {!isPending && (
49
- <InlineComboboxEmpty>No matching emoji found</InlineComboboxEmpty>
50
- )}
51
-
52
- {filteredEmojis.map((emoji) => (
53
- <InlineComboboxItem
54
- key={emoji.id}
55
- onClick={() => insertEmoji(editor, emoji)}
56
- value={emoji.name}
57
- >
58
- {emoji.skins[0].native} {emoji.name}
59
- </InlineComboboxItem>
60
- ))}
61
- </InlineComboboxContent>
62
- </InlineCombobox>
63
-
64
- {children}
65
- </PlateElement>
66
- );
67
- }
68
- );
69
-
70
- const useDebounce = (value: any, delay = 500) => {
71
- const [debouncedValue, setDebouncedValue] = React.useState(value);
72
-
73
- React.useEffect(() => {
74
- const handler: NodeJS.Timeout = setTimeout(() => {
75
- setDebouncedValue(value);
76
- }, delay);
77
-
78
- // Cancel the timeout if value changes (also on delay change or unmount)
79
- return () => {
80
- clearTimeout(handler);
81
- };
82
- }, [value, delay]);
83
-
84
- return debouncedValue;
85
- };
@@ -1,28 +0,0 @@
1
- import React from 'react';
2
-
3
- import { withRef } from '@udecode/cn';
4
- import { PlateElement } from '@udecode/plate-common/react';
5
- import { useExcalidrawElement } from '@udecode/plate-excalidraw/react';
6
-
7
- export const ExcalidrawElement = withRef<typeof PlateElement>(
8
- ({ nodeProps, ...props }, ref) => {
9
- const { children, element } = props;
10
-
11
- const { Excalidraw, excalidrawProps } = useExcalidrawElement({
12
- element,
13
- });
14
-
15
- return (
16
- <PlateElement ref={ref} {...props}>
17
- <div contentEditable={false}>
18
- <div className="h-[600px]">
19
- {Excalidraw && (
20
- <Excalidraw {...nodeProps} {...(excalidrawProps as any)} />
21
- )}
22
- </div>
23
- </div>
24
- {children}
25
- </PlateElement>
26
- );
27
- }
28
- );
@@ -1,76 +0,0 @@
1
- import React from 'react';
2
-
3
- import {
4
- BoldPlugin,
5
- CodePlugin,
6
- ItalicPlugin,
7
- StrikethroughPlugin,
8
- UnderlinePlugin,
9
- } from '@udecode/plate-basic-marks/react';
10
- import { useEditorReadOnly } from '@udecode/plate-common/react';
11
-
12
- import { Icons } from './icons';
13
-
14
- import { InsertDropdownMenu } from './insert-dropdown-menu';
15
- import { MarkToolbarButton } from './mark-toolbar-button';
16
- import { ModeDropdownMenu } from './mode-dropdown-menu';
17
- import { ToolbarGroup } from './toolbar';
18
- import { TurnIntoDropdownMenu } from './turn-into-dropdown-menu';
19
-
20
- export function FixedToolbarButtons() {
21
- const readOnly = useEditorReadOnly();
22
-
23
- return (
24
- <div className="w-full overflow-hidden">
25
- <div
26
- className="flex flex-wrap"
27
- style={{
28
- transform: 'translateX(calc(-1px))',
29
- }}
30
- >
31
- {!readOnly && (
32
- <>
33
- <ToolbarGroup noSeparator>
34
- <InsertDropdownMenu />
35
- <TurnIntoDropdownMenu />
36
- </ToolbarGroup>
37
-
38
- <ToolbarGroup>
39
- <MarkToolbarButton nodeType={BoldPlugin.key} tooltip="Bold (⌘+B)">
40
- <Icons.bold />
41
- </MarkToolbarButton>
42
- <MarkToolbarButton
43
- nodeType={ItalicPlugin.key}
44
- tooltip="Italic (⌘+I)"
45
- >
46
- <Icons.italic />
47
- </MarkToolbarButton>
48
- <MarkToolbarButton
49
- nodeType={UnderlinePlugin.key}
50
- tooltip="Underline (⌘+U)"
51
- >
52
- <Icons.underline />
53
- </MarkToolbarButton>
54
-
55
- <MarkToolbarButton
56
- nodeType={StrikethroughPlugin.key}
57
- tooltip="Strikethrough (⌘+⇧+M)"
58
- >
59
- <Icons.strikethrough />
60
- </MarkToolbarButton>
61
- <MarkToolbarButton nodeType={CodePlugin.key} tooltip="Code (⌘+E)">
62
- <Icons.code />
63
- </MarkToolbarButton>
64
- </ToolbarGroup>
65
- </>
66
- )}
67
-
68
- <div className="grow" />
69
-
70
- <ToolbarGroup noSeparator>
71
- <ModeDropdownMenu />
72
- </ToolbarGroup>
73
- </div>
74
- </div>
75
- );
76
- }
@@ -1,8 +0,0 @@
1
- import { withCn } from '@udecode/cn';
2
-
3
- import { Toolbar } from './toolbar';
4
-
5
- export const FixedToolbar = withCn(
6
- Toolbar,
7
- 'supports-backdrop-blur:bg-background/60 sticky left-0 top-0 z-50 w-full justify-between overflow-x-auto rounded-t-lg border-b border-b-border bg-background/95 backdrop-blur'
8
- );
@@ -1,51 +0,0 @@
1
- import React from 'react';
2
-
3
- import {
4
- BoldPlugin,
5
- CodePlugin,
6
- ItalicPlugin,
7
- StrikethroughPlugin,
8
- UnderlinePlugin,
9
- } from '@udecode/plate-basic-marks/react';
10
- import { useEditorReadOnly } from '@udecode/plate-common/react';
11
-
12
- import { Icons } from './icons';
13
-
14
- import { MarkToolbarButton } from './mark-toolbar-button';
15
- import { TurnIntoDropdownMenu } from './turn-into-dropdown-menu';
16
-
17
- export function FloatingToolbarButtons() {
18
- const readOnly = useEditorReadOnly();
19
-
20
- return (
21
- <>
22
- {!readOnly && (
23
- <>
24
- <TurnIntoDropdownMenu />
25
-
26
- <MarkToolbarButton nodeType={BoldPlugin.key} tooltip="Bold (⌘+B)">
27
- <Icons.bold />
28
- </MarkToolbarButton>
29
- <MarkToolbarButton nodeType={ItalicPlugin.key} tooltip="Italic (⌘+I)">
30
- <Icons.italic />
31
- </MarkToolbarButton>
32
- <MarkToolbarButton
33
- nodeType={UnderlinePlugin.key}
34
- tooltip="Underline (⌘+U)"
35
- >
36
- <Icons.underline />
37
- </MarkToolbarButton>
38
- <MarkToolbarButton
39
- nodeType={StrikethroughPlugin.key}
40
- tooltip="Strikethrough (⌘+⇧+M)"
41
- >
42
- <Icons.strikethrough />
43
- </MarkToolbarButton>
44
- <MarkToolbarButton nodeType={CodePlugin.key} tooltip="Code (⌘+E)">
45
- <Icons.code />
46
- </MarkToolbarButton>
47
- </>
48
- )}
49
- </>
50
- );
51
- }
@@ -1,77 +0,0 @@
1
- 'use client';
2
-
3
- import React from 'react';
4
-
5
- import { cn, withRef } from '@udecode/cn';
6
- import {
7
- PortalBody,
8
- useComposedRef,
9
- useEditorId,
10
- useEventEditorSelectors,
11
- } from '@udecode/plate-common/react';
12
- import {
13
- type FloatingToolbarState,
14
- flip,
15
- offset,
16
- useFloatingToolbar,
17
- useFloatingToolbarState,
18
- } from '@udecode/plate-floating';
19
-
20
- import { Toolbar } from './toolbar';
21
-
22
- export const FloatingToolbar = withRef<
23
- typeof Toolbar,
24
- {
25
- state?: FloatingToolbarState;
26
- }
27
- >(({ children, state, ...props }, componentRef) => {
28
- const editorId = useEditorId();
29
- const focusedEditorId = useEventEditorSelectors.focus();
30
-
31
- const floatingToolbarState = useFloatingToolbarState({
32
- editorId,
33
- focusedEditorId,
34
- ...state,
35
- floatingOptions: {
36
- middleware: [
37
- offset(12),
38
- flip({
39
- fallbackPlacements: [
40
- 'top-start',
41
- 'top-end',
42
- 'bottom-start',
43
- 'bottom-end',
44
- ],
45
- padding: 12,
46
- }),
47
- ],
48
- placement: 'top',
49
- ...state?.floatingOptions,
50
- },
51
- });
52
-
53
- const {
54
- hidden,
55
- props: rootProps,
56
- ref: floatingRef,
57
- } = useFloatingToolbar(floatingToolbarState);
58
-
59
- const ref = useComposedRef<HTMLDivElement>(componentRef, floatingRef);
60
-
61
- if (hidden) return null;
62
-
63
- return (
64
- <PortalBody>
65
- <Toolbar
66
- className={cn(
67
- 'absolute z-50 whitespace-nowrap border bg-popover px-1 opacity-100 shadow-md print:hidden'
68
- )}
69
- ref={ref}
70
- {...rootProps}
71
- {...props}
72
- >
73
- {children}
74
- </Toolbar>
75
- </PortalBody>
76
- );
77
- });