@docyrus/ui-pro-ai-assistant 0.0.2 → 0.0.3

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/package.json +2 -3
  2. package/src/components/assistant-animations.tsx +0 -29
  3. package/src/components/assistant-dialogs.tsx +0 -235
  4. package/src/components/code-view.tsx +0 -278
  5. package/src/components/create-agent-task.tsx +0 -104
  6. package/src/components/create-new-work-version.tsx +0 -30
  7. package/src/components/extract-web.tsx +0 -160
  8. package/src/components/forward-to-agent.tsx +0 -90
  9. package/src/components/generate-chart.tsx +0 -101
  10. package/src/components/generative-action-button.tsx +0 -122
  11. package/src/components/generative-tool.tsx +0 -685
  12. package/src/components/generative-ui-object.tsx +0 -210
  13. package/src/components/input-area.tsx +0 -1209
  14. package/src/components/json-schema-layout.tsx +0 -326
  15. package/src/components/list-item-card.tsx +0 -92
  16. package/src/components/mermaid-diagram.tsx +0 -192
  17. package/src/components/preview-image.tsx +0 -47
  18. package/src/components/request-approval.tsx +0 -48
  19. package/src/components/request-user-input.tsx +0 -270
  20. package/src/components/search-web.tsx +0 -319
  21. package/src/components/sheet-command.tsx +0 -88
  22. package/src/components/shell-canvas.tsx +0 -122
  23. package/src/components/show-advanced-data-table.tsx +0 -352
  24. package/src/components/show-generated-content-options.tsx +0 -93
  25. package/src/components/show-people-cards.tsx +0 -180
  26. package/src/components/subagent-tool.tsx +0 -180
  27. package/src/components/text-editor-tool.tsx +0 -328
  28. package/src/components/work-canvas.tsx +0 -88
  29. package/src/components/work-card.tsx +0 -42
  30. package/src/declarations.d.ts +0 -1
  31. package/src/docy-assistant.tsx +0 -1962
  32. package/src/hooks/index.ts +0 -7
  33. package/src/hooks/use-assistant-api.ts +0 -507
  34. package/src/hooks/use-deployment-data.ts +0 -162
  35. package/src/hooks/use-project-state.ts +0 -347
  36. package/src/hooks/use-session-state.ts +0 -207
  37. package/src/hooks/use-speech-recognition.ts +0 -137
  38. package/src/hooks/use-ui-state.ts +0 -185
  39. package/src/hooks/use-works-state.ts +0 -146
  40. package/src/i18n/context.tsx +0 -253
  41. package/src/i18n/index.ts +0 -19
  42. package/src/i18n/locales/de.json +0 -198
  43. package/src/i18n/locales/el.json +0 -198
  44. package/src/i18n/locales/en.json +0 -226
  45. package/src/i18n/locales/es.json +0 -198
  46. package/src/i18n/locales/fr.json +0 -198
  47. package/src/i18n/locales/it.json +0 -198
  48. package/src/i18n/locales/pt.json +0 -198
  49. package/src/i18n/locales/sl.json +0 -198
  50. package/src/i18n/locales/tr.json +0 -211
  51. package/src/i18n/types.ts +0 -23
  52. package/src/i18n/use-translation.ts +0 -17
  53. package/src/index.ts +0 -18
  54. package/src/internal/plate-editor/editor/auth-context.ts +0 -11
  55. package/src/internal/plate-editor/editor/editor-base-kit.tsx +0 -39
  56. package/src/internal/plate-editor/editor/editor-kit.tsx +0 -89
  57. package/src/internal/plate-editor/editor/plate-editor.tsx +0 -75
  58. package/src/internal/plate-editor/editor/plate-types.ts +0 -126
  59. package/src/internal/plate-editor/editor/plugins/ai-kit.tsx +0 -172
  60. package/src/internal/plate-editor/editor/plugins/autoformat-kit.tsx +0 -211
  61. package/src/internal/plate-editor/editor/plugins/basic-blocks-base-kit.tsx +0 -26
  62. package/src/internal/plate-editor/editor/plugins/basic-blocks-kit.tsx +0 -51
  63. package/src/internal/plate-editor/editor/plugins/basic-marks-base-kit.tsx +0 -24
  64. package/src/internal/plate-editor/editor/plugins/basic-marks-kit.tsx +0 -38
  65. package/src/internal/plate-editor/editor/plugins/basic-nodes-kit.tsx +0 -6
  66. package/src/internal/plate-editor/editor/plugins/block-menu-kit.tsx +0 -14
  67. package/src/internal/plate-editor/editor/plugins/block-placeholder-kit.tsx +0 -17
  68. package/src/internal/plate-editor/editor/plugins/block-selection-kit.tsx +0 -31
  69. package/src/internal/plate-editor/editor/plugins/callout-base-kit.tsx +0 -5
  70. package/src/internal/plate-editor/editor/plugins/callout-kit.tsx +0 -7
  71. package/src/internal/plate-editor/editor/plugins/code-block-base-kit.tsx +0 -23
  72. package/src/internal/plate-editor/editor/plugins/code-block-kit.tsx +0 -26
  73. package/src/internal/plate-editor/editor/plugins/column-base-kit.tsx +0 -8
  74. package/src/internal/plate-editor/editor/plugins/column-kit.tsx +0 -7
  75. package/src/internal/plate-editor/editor/plugins/comment-base-kit.tsx +0 -5
  76. package/src/internal/plate-editor/editor/plugins/comment-kit.tsx +0 -174
  77. package/src/internal/plate-editor/editor/plugins/copilot-kit.tsx +0 -68
  78. package/src/internal/plate-editor/editor/plugins/cursor-overlay-kit.tsx +0 -13
  79. package/src/internal/plate-editor/editor/plugins/date-base-kit.tsx +0 -5
  80. package/src/internal/plate-editor/editor/plugins/date-kit.tsx +0 -7
  81. package/src/internal/plate-editor/editor/plugins/discussion-kit.tsx +0 -36
  82. package/src/internal/plate-editor/editor/plugins/dnd-kit.tsx +0 -27
  83. package/src/internal/plate-editor/editor/plugins/docx-export-kit.tsx +0 -43
  84. package/src/internal/plate-editor/editor/plugins/docx-kit.tsx +0 -6
  85. package/src/internal/plate-editor/editor/plugins/emoji-kit.tsx +0 -15
  86. package/src/internal/plate-editor/editor/plugins/exit-break-kit.tsx +0 -12
  87. package/src/internal/plate-editor/editor/plugins/floating-toolbar-kit.tsx +0 -19
  88. package/src/internal/plate-editor/editor/plugins/font-base-kit.tsx +0 -36
  89. package/src/internal/plate-editor/editor/plugins/font-kit.tsx +0 -47
  90. package/src/internal/plate-editor/editor/plugins/indent-base-kit.tsx +0 -19
  91. package/src/internal/plate-editor/editor/plugins/indent-kit.tsx +0 -22
  92. package/src/internal/plate-editor/editor/plugins/link-base-kit.tsx +0 -5
  93. package/src/internal/plate-editor/editor/plugins/link-kit.tsx +0 -35
  94. package/src/internal/plate-editor/editor/plugins/list-base-kit.tsx +0 -24
  95. package/src/internal/plate-editor/editor/plugins/list-kit.tsx +0 -27
  96. package/src/internal/plate-editor/editor/plugins/markdown-kit.tsx +0 -18
  97. package/src/internal/plate-editor/editor/plugins/math-base-kit.tsx +0 -8
  98. package/src/internal/plate-editor/editor/plugins/math-kit.tsx +0 -10
  99. package/src/internal/plate-editor/editor/plugins/media-base-kit.tsx +0 -37
  100. package/src/internal/plate-editor/editor/plugins/media-kit.tsx +0 -53
  101. package/src/internal/plate-editor/editor/plugins/mention-base-kit.tsx +0 -5
  102. package/src/internal/plate-editor/editor/plugins/mention-kit.tsx +0 -36
  103. package/src/internal/plate-editor/editor/plugins/slash-kit.tsx +0 -17
  104. package/src/internal/plate-editor/editor/plugins/suggestion-base-kit.tsx +0 -5
  105. package/src/internal/plate-editor/editor/plugins/suggestion-kit.tsx +0 -95
  106. package/src/internal/plate-editor/editor/plugins/table-base-kit.tsx +0 -20
  107. package/src/internal/plate-editor/editor/plugins/table-kit.tsx +0 -22
  108. package/src/internal/plate-editor/editor/plugins/toc-base-kit.tsx +0 -5
  109. package/src/internal/plate-editor/editor/plugins/toc-kit.tsx +0 -14
  110. package/src/internal/plate-editor/editor/plugins/toggle-base-kit.tsx +0 -5
  111. package/src/internal/plate-editor/editor/plugins/toggle-kit.tsx +0 -9
  112. package/src/internal/plate-editor/editor/transforms.ts +0 -165
  113. package/src/internal/plate-editor/editor/use-chat.ts +0 -152
  114. package/src/internal/plate-editor/hooks/index.ts +0 -3
  115. package/src/internal/plate-editor/hooks/use-copy-to-clipboard.ts +0 -31
  116. package/src/internal/plate-editor/hooks/use-is-touch-device.ts +0 -26
  117. package/src/internal/plate-editor/hooks/use-lock-scroll.ts +0 -21
  118. package/src/internal/plate-editor/hooks/use-media-query.ts +0 -44
  119. package/src/internal/plate-editor/hooks/use-mounted.ts +0 -18
  120. package/src/internal/plate-editor/hooks/use-on-click-outside.ts +0 -114
  121. package/src/internal/plate-editor/hooks/use-upload-file.ts +0 -81
  122. package/src/internal/plate-editor/i18n/context.tsx +0 -58
  123. package/src/internal/plate-editor/i18n/index.ts +0 -3
  124. package/src/internal/plate-editor/i18n/locales/de.json +0 -57
  125. package/src/internal/plate-editor/i18n/locales/el.json +0 -57
  126. package/src/internal/plate-editor/i18n/locales/en.json +0 -57
  127. package/src/internal/plate-editor/i18n/locales/es.json +0 -57
  128. package/src/internal/plate-editor/i18n/locales/fr.json +0 -57
  129. package/src/internal/plate-editor/i18n/locales/it.json +0 -57
  130. package/src/internal/plate-editor/i18n/locales/pt.json +0 -57
  131. package/src/internal/plate-editor/i18n/locales/sl.json +0 -57
  132. package/src/internal/plate-editor/i18n/locales/tr.json +0 -57
  133. package/src/internal/plate-editor/i18n/types.ts +0 -59
  134. package/src/internal/plate-editor/i18n/use-translation.ts +0 -22
  135. package/src/internal/plate-editor/index.ts +0 -39
  136. package/src/internal/plate-editor/lib/ai-output-converter.ts +0 -153
  137. package/src/internal/plate-editor/lib/download-file.ts +0 -17
  138. package/src/internal/plate-editor/plate-ui/ai-chat-editor.tsx +0 -24
  139. package/src/internal/plate-editor/plate-ui/ai-menu.tsx +0 -828
  140. package/src/internal/plate-editor/plate-ui/ai-node.tsx +0 -41
  141. package/src/internal/plate-editor/plate-ui/ai-toolbar-button.tsx +0 -25
  142. package/src/internal/plate-editor/plate-ui/alert-dialog.tsx +0 -145
  143. package/src/internal/plate-editor/plate-ui/align-toolbar-button.tsx +0 -88
  144. package/src/internal/plate-editor/plate-ui/avatar.tsx +0 -3
  145. package/src/internal/plate-editor/plate-ui/block-context-menu.tsx +0 -104
  146. package/src/internal/plate-editor/plate-ui/block-discussion.tsx +0 -364
  147. package/src/internal/plate-editor/plate-ui/block-draggable.tsx +0 -557
  148. package/src/internal/plate-editor/plate-ui/block-list-static.tsx +0 -77
  149. package/src/internal/plate-editor/plate-ui/block-list.tsx +0 -85
  150. package/src/internal/plate-editor/plate-ui/block-menu.tsx +0 -555
  151. package/src/internal/plate-editor/plate-ui/block-selection.tsx +0 -47
  152. package/src/internal/plate-editor/plate-ui/block-suggestion.tsx +0 -469
  153. package/src/internal/plate-editor/plate-ui/blockquote-node-static.tsx +0 -10
  154. package/src/internal/plate-editor/plate-ui/blockquote-node.tsx +0 -11
  155. package/src/internal/plate-editor/plate-ui/button.tsx +0 -201
  156. package/src/internal/plate-editor/plate-ui/calendar.tsx +0 -3
  157. package/src/internal/plate-editor/plate-ui/callout-node-static.tsx +0 -76
  158. package/src/internal/plate-editor/plate-ui/callout-node.tsx +0 -54
  159. package/src/internal/plate-editor/plate-ui/caption.tsx +0 -47
  160. package/src/internal/plate-editor/plate-ui/checkbox.tsx +0 -3
  161. package/src/internal/plate-editor/plate-ui/code-block-node-static.tsx +0 -172
  162. package/src/internal/plate-editor/plate-ui/code-block-node.tsx +0 -226
  163. package/src/internal/plate-editor/plate-ui/code-node-static.tsx +0 -11
  164. package/src/internal/plate-editor/plate-ui/code-node.tsx +0 -12
  165. package/src/internal/plate-editor/plate-ui/column-node-static.tsx +0 -65
  166. package/src/internal/plate-editor/plate-ui/column-node.tsx +0 -24
  167. package/src/internal/plate-editor/plate-ui/command.tsx +0 -202
  168. package/src/internal/plate-editor/plate-ui/comment-node-static.tsx +0 -12
  169. package/src/internal/plate-editor/plate-ui/comment-node.tsx +0 -45
  170. package/src/internal/plate-editor/plate-ui/comment-toolbar-button.tsx +0 -24
  171. package/src/internal/plate-editor/plate-ui/comment.tsx +0 -619
  172. package/src/internal/plate-editor/plate-ui/cursor-overlay.tsx +0 -85
  173. package/src/internal/plate-editor/plate-ui/date-node-static.tsx +0 -43
  174. package/src/internal/plate-editor/plate-ui/date-node.tsx +0 -54
  175. package/src/internal/plate-editor/plate-ui/dialog.tsx +0 -445
  176. package/src/internal/plate-editor/plate-ui/dropdown-menu.tsx +0 -264
  177. package/src/internal/plate-editor/plate-ui/editor-static.tsx +0 -40
  178. package/src/internal/plate-editor/plate-ui/editor.tsx +0 -146
  179. package/src/internal/plate-editor/plate-ui/emoji-node.tsx +0 -48
  180. package/src/internal/plate-editor/plate-ui/emoji-toolbar-button.tsx +0 -626
  181. package/src/internal/plate-editor/plate-ui/equation-node-static.tsx +0 -155
  182. package/src/internal/plate-editor/plate-ui/equation-node.tsx +0 -226
  183. package/src/internal/plate-editor/plate-ui/equation-toolbar-button.tsx +0 -26
  184. package/src/internal/plate-editor/plate-ui/export-toolbar-button.tsx +0 -206
  185. package/src/internal/plate-editor/plate-ui/fixed-toolbar-buttons.tsx +0 -157
  186. package/src/internal/plate-editor/plate-ui/fixed-toolbar.tsx +0 -25
  187. package/src/internal/plate-editor/plate-ui/floating-discussion.tsx +0 -1129
  188. package/src/internal/plate-editor/plate-ui/floating-toolbar-buttons.tsx +0 -129
  189. package/src/internal/plate-editor/plate-ui/floating-toolbar.tsx +0 -97
  190. package/src/internal/plate-editor/plate-ui/font-color-toolbar-button.tsx +0 -209
  191. package/src/internal/plate-editor/plate-ui/font-size-toolbar-button.tsx +0 -152
  192. package/src/internal/plate-editor/plate-ui/ghost-text.tsx +0 -20
  193. package/src/internal/plate-editor/plate-ui/heading-node-static.tsx +0 -52
  194. package/src/internal/plate-editor/plate-ui/heading-node.tsx +0 -56
  195. package/src/internal/plate-editor/plate-ui/highlight-node-static.tsx +0 -9
  196. package/src/internal/plate-editor/plate-ui/highlight-node.tsx +0 -11
  197. package/src/internal/plate-editor/plate-ui/history-toolbar-button.tsx +0 -50
  198. package/src/internal/plate-editor/plate-ui/hover-card.tsx +0 -7
  199. package/src/internal/plate-editor/plate-ui/hr-node-static.tsx +0 -18
  200. package/src/internal/plate-editor/plate-ui/hr-node.tsx +0 -28
  201. package/src/internal/plate-editor/plate-ui/import-toolbar-button.tsx +0 -122
  202. package/src/internal/plate-editor/plate-ui/indent-toolbar-button.tsx +0 -32
  203. package/src/internal/plate-editor/plate-ui/inline-combobox.tsx +0 -409
  204. package/src/internal/plate-editor/plate-ui/input.tsx +0 -37
  205. package/src/internal/plate-editor/plate-ui/insert-toolbar-button.tsx +0 -258
  206. package/src/internal/plate-editor/plate-ui/label.tsx +0 -1
  207. package/src/internal/plate-editor/plate-ui/line-height-toolbar-button.tsx +0 -69
  208. package/src/internal/plate-editor/plate-ui/link-node-static.tsx +0 -15
  209. package/src/internal/plate-editor/plate-ui/link-node.tsx +0 -33
  210. package/src/internal/plate-editor/plate-ui/link-toolbar-button.tsx +0 -28
  211. package/src/internal/plate-editor/plate-ui/link-toolbar.tsx +0 -147
  212. package/src/internal/plate-editor/plate-ui/list-toolbar-button.tsx +0 -177
  213. package/src/internal/plate-editor/plate-ui/mark-toolbar-button.tsx +0 -34
  214. package/src/internal/plate-editor/plate-ui/media-audio-node-static.tsx +0 -21
  215. package/src/internal/plate-editor/plate-ui/media-audio-node.tsx +0 -32
  216. package/src/internal/plate-editor/plate-ui/media-embed-node.tsx +0 -103
  217. package/src/internal/plate-editor/plate-ui/media-file-node-static.tsx +0 -30
  218. package/src/internal/plate-editor/plate-ui/media-file-node.tsx +0 -52
  219. package/src/internal/plate-editor/plate-ui/media-image-node-static.tsx +0 -37
  220. package/src/internal/plate-editor/plate-ui/media-image-node.tsx +0 -183
  221. package/src/internal/plate-editor/plate-ui/media-placeholder-node.tsx +0 -441
  222. package/src/internal/plate-editor/plate-ui/media-preview-dialog.tsx +0 -127
  223. package/src/internal/plate-editor/plate-ui/media-toolbar-button.tsx +0 -227
  224. package/src/internal/plate-editor/plate-ui/media-toolbar.tsx +0 -214
  225. package/src/internal/plate-editor/plate-ui/media-upload-toast.tsx +0 -73
  226. package/src/internal/plate-editor/plate-ui/media-video-node-static.tsx +0 -35
  227. package/src/internal/plate-editor/plate-ui/media-video-node.tsx +0 -119
  228. package/src/internal/plate-editor/plate-ui/mention-node-static.tsx +0 -46
  229. package/src/internal/plate-editor/plate-ui/mention-node.tsx +0 -79
  230. package/src/internal/plate-editor/plate-ui/menu.tsx +0 -539
  231. package/src/internal/plate-editor/plate-ui/mode-toolbar-button.tsx +0 -124
  232. package/src/internal/plate-editor/plate-ui/more-toolbar-button.tsx +0 -34
  233. package/src/internal/plate-editor/plate-ui/paragraph-node-static.tsx +0 -15
  234. package/src/internal/plate-editor/plate-ui/paragraph-node.tsx +0 -16
  235. package/src/internal/plate-editor/plate-ui/popover.tsx +0 -75
  236. package/src/internal/plate-editor/plate-ui/progress.tsx +0 -1
  237. package/src/internal/plate-editor/plate-ui/remote-cursor-overlay.tsx +0 -79
  238. package/src/internal/plate-editor/plate-ui/resize-handle.tsx +0 -86
  239. package/src/internal/plate-editor/plate-ui/separator.tsx +0 -41
  240. package/src/internal/plate-editor/plate-ui/slash-node.tsx +0 -433
  241. package/src/internal/plate-editor/plate-ui/spinner.tsx +0 -1
  242. package/src/internal/plate-editor/plate-ui/suggestion-node-static.tsx +0 -35
  243. package/src/internal/plate-editor/plate-ui/suggestion-node.tsx +0 -166
  244. package/src/internal/plate-editor/plate-ui/suggestion-toolbar-button.tsx +0 -24
  245. package/src/internal/plate-editor/plate-ui/table-node-static.tsx +0 -84
  246. package/src/internal/plate-editor/plate-ui/table-node.tsx +0 -283
  247. package/src/internal/plate-editor/plate-ui/table-toolbar-button.tsx +0 -252
  248. package/src/internal/plate-editor/plate-ui/tabs.tsx +0 -3
  249. package/src/internal/plate-editor/plate-ui/textarea.tsx +0 -57
  250. package/src/internal/plate-editor/plate-ui/toc-node-static.tsx +0 -142
  251. package/src/internal/plate-editor/plate-ui/toc-node.tsx +0 -57
  252. package/src/internal/plate-editor/plate-ui/toc-sidebar.tsx +0 -48
  253. package/src/internal/plate-editor/plate-ui/toggle-node-static.tsx +0 -18
  254. package/src/internal/plate-editor/plate-ui/toggle-node.tsx +0 -33
  255. package/src/internal/plate-editor/plate-ui/toggle-toolbar-button.tsx +0 -24
  256. package/src/internal/plate-editor/plate-ui/toggle.tsx +0 -3
  257. package/src/internal/plate-editor/plate-ui/toolbar.tsx +0 -378
  258. package/src/internal/plate-editor/plate-ui/tooltip.tsx +0 -148
  259. package/src/internal/plate-editor/plate-ui/turn-into-toolbar-button.tsx +0 -175
  260. package/src/internal/plate-editor/types/index.ts +0 -22
  261. package/src/internal/plate-editor/vite.ts +0 -284
  262. package/src/internal/sheets/components/univer-sheets.tsx +0 -1104
  263. package/src/internal/sheets/i18n/context.tsx +0 -183
  264. package/src/internal/sheets/i18n/index.ts +0 -19
  265. package/src/internal/sheets/i18n/locales/de.json +0 -21
  266. package/src/internal/sheets/i18n/locales/el.json +0 -21
  267. package/src/internal/sheets/i18n/locales/en.json +0 -21
  268. package/src/internal/sheets/i18n/locales/es.json +0 -21
  269. package/src/internal/sheets/i18n/locales/fr.json +0 -21
  270. package/src/internal/sheets/i18n/locales/it.json +0 -21
  271. package/src/internal/sheets/i18n/locales/pt.json +0 -21
  272. package/src/internal/sheets/i18n/locales/sl.json +0 -21
  273. package/src/internal/sheets/i18n/locales/tr.json +0 -21
  274. package/src/internal/sheets/i18n/types.ts +0 -23
  275. package/src/internal/sheets/i18n/use-translation.ts +0 -17
  276. package/src/internal/sheets/index.ts +0 -14
  277. package/src/internal/sheets/types/css.d.ts +0 -11
  278. package/src/internal/sheets/types/index.ts +0 -260
  279. package/src/internal/sheets/xlsx.ts +0 -1169
  280. package/src/lib/api-client.ts +0 -77
  281. package/src/lib/assistant-api-actions.ts +0 -549
  282. package/src/lib/assistant-config.tsx +0 -75
  283. package/src/lib/class-utils.ts +0 -40
  284. package/src/lib/index.ts +0 -7
  285. package/src/lib/message-utils.ts +0 -131
  286. package/src/tools/tools-schema.json +0 -512
  287. package/src/types/index.ts +0 -235
  288. package/src/views/assistant-view.tsx +0 -1137
  289. package/src/views/canvas-app.tsx +0 -839
  290. package/src/views/canvas-code.tsx +0 -93
  291. package/src/views/canvas-deep-research.tsx +0 -44
  292. package/src/views/canvas-image.tsx +0 -25
  293. package/src/views/canvas-record-view.tsx +0 -285
  294. package/src/views/canvas-spreadsheet.tsx +0 -125
  295. package/src/views/canvas-text.tsx +0 -52
  296. package/src/views/canvas.tsx +0 -274
  297. package/src/views/chat-panel.tsx +0 -149
  298. package/src/views/index.ts +0 -20
  299. package/src/views/memories-panel.tsx +0 -365
  300. package/src/views/message-list.tsx +0 -370
  301. package/src/views/project-detail.tsx +0 -257
  302. package/src/views/projects-panel.tsx +0 -131
  303. package/src/views/sessions-list.tsx +0 -98
  304. package/src/views/sidebar-content.tsx +0 -256
  305. package/src/views/work-detail.tsx +0 -98
  306. package/src/vite.ts +0 -64
  307. package/src/worker.ts +0 -203
@@ -1,539 +0,0 @@
1
- 'use client';
2
-
3
- import {
4
- createContext, use, useEffect, useRef, useState, type ComponentProps, type ReactNode
5
- } from 'react';
6
-
7
- import * as Ariakit from '@ariakit/react';
8
- import { useComposedRef } from 'platejs/react';
9
- import { cva, type VariantProps } from 'class-variance-authority';
10
- import { CornerDownLeftIcon } from 'lucide-react';
11
-
12
- import { cn } from '@docyrus/ui-pro-shared/lib/utils';
13
-
14
- import { useOnClickOutside } from '../hooks/use-on-click-outside';
15
-
16
- export type Action = {
17
- filterItems?: boolean;
18
- focusEditor?: boolean;
19
- group?: string;
20
- icon?: ReactNode;
21
- items?: Action[];
22
- keywords?: string[];
23
- label?: string;
24
- shortcut?: string;
25
- value?: string;
26
- };
27
-
28
- export type ActionGroup = {
29
- group?: string;
30
- value?: string;
31
- };
32
-
33
- const SearchableContext = createContext(false);
34
-
35
- const MenuContext = createContext<{
36
- isRootMenu: boolean;
37
- open: boolean;
38
- }>({
39
- isRootMenu: false,
40
- open: false
41
- });
42
-
43
- export type MenuProps = Ariakit.MenuProviderProps & {
44
- trigger?: ReactNode;
45
- value?: string;
46
- onOpenChange?: Ariakit.MenuProviderProps['setOpen'];
47
- onRootMenuClose?: () => void;
48
- onValueChange?: Ariakit.ComboboxProviderProps['setValue'];
49
- onValuesChange?: Ariakit.MenuProviderProps['setValues'];
50
- };
51
-
52
- export function Menu({
53
- children,
54
- trigger,
55
- value,
56
- onOpenChange,
57
- onRootMenuClose: _onRootMenuClose,
58
- onValueChange = () => {},
59
- onValuesChange,
60
- ...props
61
- }: MenuProps) {
62
- const isRootMenu = !Ariakit.useMenuContext();
63
- const [open, setOpen] = useState(false);
64
-
65
- const searchable = !!onValuesChange || isRootMenu;
66
-
67
- const content = (
68
- <Ariakit.MenuProvider
69
- open={open}
70
- setOpen={(v) => {
71
- if (props.open === undefined) {
72
- setOpen(v);
73
- }
74
-
75
- onOpenChange?.(v);
76
- }}
77
- setValues={onValuesChange}
78
- showTimeout={100}
79
- {...props}>
80
- {trigger}
81
-
82
- <MenuContext value={{ isRootMenu, open: props.open ?? open }}>
83
- <SearchableContext value={searchable}>
84
- {children}
85
- </SearchableContext>
86
- </MenuContext>
87
- </Ariakit.MenuProvider>
88
- );
89
-
90
- return searchable ? (
91
- <Ariakit.ComboboxProvider
92
- includesBaseElement={false}
93
- resetValueOnHide
94
- setValue={onValueChange}
95
- value={value}>
96
- {content}
97
- </Ariakit.ComboboxProvider>
98
- ) : (
99
- content
100
- );
101
- }
102
-
103
- export function MenuTrigger({
104
- children,
105
- icon,
106
- label,
107
- ...props
108
- }: ComponentProps<typeof Ariakit.MenuButton> & {
109
- icon?: ReactNode;
110
- label?: ReactNode;
111
- }) {
112
- return (
113
- <Ariakit.MenuButton render={(children as any) ?? <MenuItem />} {...props}>
114
- {icon}
115
- {label && <span>{label}</span>}
116
- <Ariakit.MenuButtonArrow className="ml-auto text-muted-foreground/80" />
117
- </Ariakit.MenuButton>
118
- );
119
- }
120
-
121
- const menuVariants = cva(
122
- cn(
123
- 'group/menu',
124
- 'z-50 flex h-full min-w-[180px] max-w-[calc(100vw-24px)] flex-col p-0 text-popover-foreground',
125
- 'data-[state=closed]:hidden'
126
- ),
127
- {
128
- defaultVariants: {
129
- animateZoom: false,
130
- variant: 'default'
131
- },
132
- variants: {
133
- animateZoom: {
134
- false: 'data-[state=open]:animate-popover',
135
- true: 'data-[side=bottom]:origin-top data-[side=left]:origin-right data-[side=right]:origin-left data-[side=top]:origin-bottom data-[state=open]:animate-zoom'
136
- },
137
- variant: {
138
- ai: 'w-full px-12 sm:px-[max(64px,calc(50%-350px))]',
139
- aiSub: 'max-h-[70vh] w-[220px] rounded-xl bg-popover shadow-floating',
140
- default:
141
- 'max-h-[70vh] w-[260px] overflow-y-auto rounded-xl bg-popover shadow-floating'
142
- }
143
- }
144
- }
145
- );
146
-
147
- export type MenuContentProps = Ariakit.MenuProps
148
- & VariantProps<typeof menuVariants> & {
149
- animateZoom?: boolean;
150
- onClickOutside?: (event: globalThis.MouseEvent) => void;
151
- };
152
-
153
- export function MenuContent({
154
- animateZoom,
155
- children,
156
- className,
157
- ref,
158
- variant,
159
- onClickOutside,
160
- ...props
161
- }: MenuContentProps) {
162
- const menuRef = useRef<HTMLDivElement | null>(null);
163
- const { open } = use(MenuContext);
164
- const side = useMenuSide();
165
-
166
- useOnClickOutside(menuRef, onClickOutside);
167
-
168
- return (
169
- <Ariakit.Menu
170
- className={cn(menuVariants({ animateZoom, variant }), className)}
171
- data-side={side}
172
- data-state={open ? 'open' : 'closed'}
173
- fitViewport={true}
174
- flip
175
- gutter={4}
176
- ref={useComposedRef(ref, menuRef)}
177
- unmountOnHide
178
- {...props}>
179
- {children}
180
- </Ariakit.Menu>
181
- );
182
- }
183
-
184
- export function MenuSeparator(
185
- props: ComponentProps<typeof Ariakit.MenuSeparator>
186
- ) {
187
- return <Ariakit.MenuSeparator {...props} className={cn(props.className)} />;
188
- }
189
-
190
- export function MenuGroup({
191
- label,
192
- ...props
193
- }: ComponentProps<typeof Ariakit.MenuGroup> & {
194
- label?: ReactNode;
195
- }) {
196
- return (
197
- <>
198
- <MenuSeparator
199
- className={cn(
200
- 'hidden',
201
- 'peer-has-[[role=menuitem]]/menu-group:block peer-has-[[role=option]]/menu-group:block'
202
- )} />
203
-
204
- <Ariakit.MenuGroup
205
- {...props}
206
- className={cn(
207
- 'hidden',
208
- 'peer/menu-group group/menu-group my-1.5 has-[[role=menuitem]]:block has-[[role=option]]:block',
209
- props.className
210
- )}>
211
- {label && (
212
- <Ariakit.MenuGroupLabel className="select-none px-[14px] pt-1.5 pb-2 font-medium text-muted-foreground text-xs">
213
- {label}
214
- </Ariakit.MenuGroupLabel>
215
- )}
216
- {props.children}
217
- </Ariakit.MenuGroup>
218
- </>
219
- );
220
- }
221
-
222
- export function MenuShortcut({ ...props }: ComponentProps<'span'>) {
223
- return (
224
- <span
225
- {...props}
226
- className={cn('text-muted-foreground/80 text-xs', props.className)} />
227
- );
228
- }
229
-
230
- const menuItemVariants = cva(
231
- 'group/menu-item relative flex min-h-[28px] select-none items-center justify-between gap-2 px-2.5 text-accent-foreground text-sm outline-hidden transition-bg-ease data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:size-4',
232
- {
233
- defaultVariants: {
234
- isEmpty: false,
235
- variant: 'default'
236
- },
237
- variants: {
238
- isEmpty: {
239
- false:
240
- 'cursor-pointer hover:bg-accent aria-expanded:bg-accent aria-selected:bg-accent data-active-item:bg-accent data-active-item:text-accent-foreground',
241
- true: 'text-muted-foreground'
242
- },
243
- variant: {
244
- default: 'mx-1 w-[calc(100%-8px)] rounded-sm'
245
- }
246
- }
247
- }
248
- );
249
-
250
- export type MenuItemProps = Omit<Ariakit.ComboboxItemProps, 'store'> & {
251
- checked?: boolean;
252
- group?: string;
253
- icon?: ReactNode;
254
- label?: string;
255
- name?: string;
256
- parentGroup?: string;
257
- preventClose?: boolean;
258
- shortcut?: ReactNode;
259
- shortcutEnter?: boolean;
260
- value?: string;
261
- } & VariantProps<typeof menuItemVariants>;
262
-
263
- export function MenuItem({
264
- checked,
265
- className,
266
- group,
267
- icon,
268
- isEmpty,
269
- label,
270
- name,
271
- parentGroup,
272
- preventClose,
273
- shortcut,
274
- shortcutEnter,
275
- variant,
276
- ...props
277
- }: Omit<Ariakit.ComboboxItemProps, 'store'> & {
278
- checked?: boolean;
279
- group?: string;
280
- icon?: ReactNode;
281
- label?: string;
282
- name?: string;
283
- parentGroup?: string;
284
- preventClose?: boolean;
285
- shortcut?: ReactNode;
286
- shortcutEnter?: boolean;
287
- value?: string;
288
- } & VariantProps<typeof menuItemVariants>) {
289
- const menu = Ariakit.useMenuContext();
290
-
291
- if (!menu) throw new Error('MenuItem should be used inside a Menu');
292
-
293
- const searchable = use(SearchableContext);
294
-
295
- const hasShortcut = !!shortcut || shortcutEnter;
296
-
297
- const baseProps: MenuItemProps = {
298
- blurOnHoverEnd: false,
299
- focusOnHover: true,
300
- label,
301
- ...props,
302
- className: cn(
303
- menuItemVariants({ isEmpty, variant }),
304
- !!hasShortcut && 'justify-between',
305
- className
306
- ),
307
- group: parentGroup,
308
- name: group
309
- };
310
-
311
- baseProps.children = (
312
- <>
313
- <div className="flex w-full items-center gap-2 whitespace-nowrap">
314
- {icon && (
315
- <span className="menu-item-icon text-subtle-foreground">{icon}</span>
316
- )}
317
- {baseProps.children ?? label}
318
- </div>
319
-
320
- {(hasShortcut || checked) && (
321
- <div className="flex shrink-0 items-center justify-end">
322
- {checked && <Ariakit.MenuItemCheck checked={checked} />}
323
- {hasShortcut && (
324
- <MenuShortcut>
325
- {shortcut ?? (
326
- <CornerDownLeftIcon className="hidden group-data-[active-item='true']/menu-item:inline-block" />
327
- )}
328
- </MenuShortcut>
329
- )}
330
- {checked && searchable && (
331
- <Ariakit.VisuallyHidden>
332
- {checked ? 'checked' : 'not checked'}
333
- </Ariakit.VisuallyHidden>
334
- )}
335
- </div>
336
- )}
337
- </>
338
- );
339
-
340
- if (!searchable) {
341
- if (!!name && props.value !== null) {
342
- const radioProps = {
343
- ...baseProps,
344
- hideOnClick: true,
345
- name,
346
- value: props.value as any
347
- };
348
-
349
- return <Ariakit.MenuItemRadio {...radioProps} />;
350
- }
351
-
352
- return <Ariakit.MenuItem {...baseProps} />;
353
- }
354
-
355
- const hideOnClick: Ariakit.ComboboxItemProps['hideOnClick'] = (event) => {
356
- const expandable = event.currentTarget.hasAttribute('aria-expanded');
357
-
358
- if (expandable) return false;
359
- if (preventClose) return false;
360
-
361
- menu.hideAll();
362
-
363
- return false;
364
- };
365
-
366
- return <Ariakit.ComboboxItem {...baseProps} hideOnClick={hideOnClick} />;
367
- }
368
-
369
- export const comboboxVariants = cva('', {
370
- defaultVariants: {
371
- variant: 'default'
372
- },
373
- variants: {
374
- variant: {
375
- ai: 'min-w-[280px] max-w-[calc(100vw-24px)] rounded-xl bg-popover py-0.5 shadow-toolbar',
376
- default: 'mx-3 pt-3.5 pb-1.5'
377
- }
378
- }
379
- });
380
-
381
- export function ComboboxContent({
382
- className,
383
- variant = 'default',
384
- ...props
385
- }: ComponentProps<'div'> & VariantProps<typeof comboboxVariants>) {
386
- return (
387
- <div className={cn(comboboxVariants({ variant }), className)} {...props} />
388
- );
389
- }
390
-
391
- const comboboxListVariants = cva(
392
- cn(
393
- 'group/combobox-list',
394
- 'h-full max-h-[70vh] grow overflow-y-auto rounded-lg [&:has(>:last-child:not([role=group]))]:pb-1.5',
395
- 'hidden has-[[role=option]]:block'
396
- ),
397
- {
398
- defaultVariants: {
399
- variant: 'default'
400
- },
401
- variants: {
402
- variant: {
403
- ai: 'my-1 h-full max-h-[min(40vh,320px)] w-fit min-w-[280px] max-w-[320px] overflow-y-auto bg-popover p-0 shadow-floating',
404
- default: ''
405
- }
406
- }
407
- }
408
- );
409
-
410
- export function ComboboxList({
411
- className,
412
- variant = 'default',
413
- ...props
414
- }: ComponentProps<typeof Ariakit.ComboboxList>
415
- & VariantProps<typeof comboboxListVariants>) {
416
- return (
417
- <Ariakit.ComboboxList
418
- className={cn(comboboxListVariants({ variant }), className)}
419
- {...props} />
420
- );
421
- }
422
-
423
- export function ComboboxInput({
424
- children,
425
- ...props
426
- }: ComponentProps<typeof Ariakit.Combobox>) {
427
- return <Ariakit.Combobox autoSelect render={children as any} {...props} />;
428
- }
429
-
430
- export function ComboboxEmpty() {
431
- return (
432
- <div className="py-1.5 group-has-[[role=option]]/combobox-list:hidden">
433
- <div
434
- className={cn(menuItemVariants({ isEmpty: true }), '')}
435
- role="menuitem">
436
- No results
437
- </div>
438
- </div>
439
- );
440
- }
441
-
442
- // biome-ignore lint/performance/noBarrelFile: intentional re-export
443
- export * as Ariakit from '@ariakit/react';
444
-
445
- export function filterMenuItems(
446
- { items = [], ...group }: Action,
447
- searchValue: string
448
- ): Action[] {
449
- if (!searchValue) return items;
450
- if (
451
- [group.label, ...(group.keywords || [])]
452
- .join(' ')
453
- .toLowerCase()
454
- .includes(searchValue.toLowerCase())
455
- ) {
456
- return items;
457
- }
458
-
459
- return items.filter(
460
- item => item.filterItems
461
- || [item.label, item.value, ...(item.keywords || [])]
462
- .join(' ')
463
- .toLowerCase()
464
- .includes(searchValue.toLowerCase())
465
- );
466
- }
467
-
468
- export function filterMenuGroups(
469
- menuGroups: Action[],
470
- searchValue: string
471
- ): Action[] {
472
- if (!searchValue) return menuGroups;
473
-
474
- return menuGroups.reduce<Action[]>((acc, group) => {
475
- const filteredItems = filterMenuItems(group, searchValue);
476
-
477
- if (filteredItems.length > 0) {
478
- acc.push({
479
- ...group,
480
- items: filteredItems
481
- });
482
- }
483
-
484
- return acc;
485
- }, []);
486
- }
487
-
488
- export function useComboboxValueState(): readonly [string, (value: string) => void] {
489
- const store = Ariakit.useComboboxContext();
490
- const searchValue = store?.useState('value') ?? '';
491
-
492
- return [searchValue, store!.setValue as (value: string) => void] as const;
493
- }
494
-
495
- export function useMenuSide() {
496
- const store = Ariakit.useMenuStore();
497
- const currentPlacement = store?.useState('currentPlacement').split('-')[0];
498
-
499
- return currentPlacement;
500
- }
501
-
502
- export function useContextMenu(anchorRect: { x: number; y: number }): {
503
- store: any;
504
- getAnchorRect: () => { x: number; y: number };
505
- show: () => void;
506
- } {
507
- const menu = Ariakit.useMenuStore();
508
-
509
- useEffect(() => {
510
- if (anchorRect) {
511
- menu.render();
512
- }
513
- }, [anchorRect, menu]);
514
-
515
- return {
516
- store: menu as any,
517
- getAnchorRect: () => anchorRect,
518
- show: () => {
519
- menu.show();
520
- menu.setAutoFocusOnShow(true);
521
- }
522
- };
523
- }
524
-
525
- export function useMenuStore(): {
526
- store: any;
527
- show: (anchorElement: HTMLElement) => void;
528
- } {
529
- const menu = Ariakit.useMenuStore();
530
-
531
- return {
532
- store: menu as any,
533
- show: (anchorElement: HTMLElement) => {
534
- menu.setAnchorElement(anchorElement);
535
- menu.show();
536
- menu.setAutoFocusOnShow(true);
537
- }
538
- };
539
- }
@@ -1,124 +0,0 @@
1
- 'use client';
2
-
3
- import { useState, type ReactNode } from 'react';
4
-
5
- import { SuggestionPlugin } from '@platejs/suggestion/react';
6
- import {
7
- CheckIcon, EyeIcon, PencilLineIcon, PenIcon
8
- } from 'lucide-react';
9
- import { useEditorRef, usePlateState, usePluginOption } from 'platejs/react';
10
-
11
- import {
12
- DropdownMenu,
13
- DropdownMenuContent,
14
- DropdownMenuItemIndicator,
15
- DropdownMenuPortal,
16
- DropdownMenuRadioGroup,
17
- DropdownMenuRadioItem,
18
- DropdownMenuTrigger,
19
- type DropdownMenuProps
20
- } from './dropdown-menu';
21
-
22
- import { ToolbarButton } from './toolbar';
23
-
24
- export function ModeToolbarButton(props: DropdownMenuProps) {
25
- const editor = useEditorRef();
26
- const [readOnly, setReadOnly] = usePlateState('readOnly');
27
- const [open, setOpen] = useState(false);
28
-
29
- const isSuggesting = usePluginOption(SuggestionPlugin, 'isSuggesting');
30
-
31
- let value = 'editing';
32
-
33
- if (readOnly) value = 'viewing';
34
-
35
- if (isSuggesting) value = 'suggestion';
36
-
37
- const item: Record<string, { icon: ReactNode; label: string }> = {
38
- editing: {
39
- icon: <PenIcon />,
40
- label: 'Editing'
41
- },
42
- suggestion: {
43
- icon: <PencilLineIcon />,
44
- label: 'Suggestion'
45
- },
46
- viewing: {
47
- icon: <EyeIcon />,
48
- label: 'Viewing'
49
- }
50
- };
51
-
52
- return (
53
- <DropdownMenu open={open} onOpenChange={setOpen} modal={false} {...props}>
54
- <DropdownMenuTrigger asChild>
55
- <ToolbarButton pressed={open} tooltip="Editing mode" isDropdown>
56
- {item[value].icon}
57
- <span className="hidden lg:inline">{item[value].label}</span>
58
- </ToolbarButton>
59
- </DropdownMenuTrigger>
60
-
61
- <DropdownMenuPortal>
62
- <DropdownMenuContent className="min-w-[180px]" align="start">
63
- <DropdownMenuRadioGroup
64
- value={value}
65
- onValueChange={(newValue) => {
66
- if (newValue === 'viewing') {
67
- setReadOnly(true);
68
-
69
- return;
70
- }
71
- setReadOnly(false);
72
-
73
- if (newValue === 'suggestion') {
74
- editor.setOption(SuggestionPlugin, 'isSuggesting', true);
75
-
76
- return;
77
- }
78
- editor.setOption(SuggestionPlugin, 'isSuggesting', false);
79
-
80
- if (newValue === 'editing') {
81
- editor.tf.focus();
82
-
83
- return;
84
- }
85
- }}>
86
- <DropdownMenuRadioItem
87
- className="pl-2 *:first:[span]:hidden *:[svg]:text-muted-foreground"
88
- value="editing">
89
- <Indicator />
90
- {item.editing.icon}
91
- {item.editing.label}
92
- </DropdownMenuRadioItem>
93
-
94
- <DropdownMenuRadioItem
95
- className="pl-2 *:first:[span]:hidden *:[svg]:text-muted-foreground"
96
- value="viewing">
97
- <Indicator />
98
- {item.viewing.icon}
99
- {item.viewing.label}
100
- </DropdownMenuRadioItem>
101
-
102
- <DropdownMenuRadioItem
103
- className="pl-2 *:first:[span]:hidden *:[svg]:text-muted-foreground"
104
- value="suggestion">
105
- <Indicator />
106
- {item.suggestion.icon}
107
- {item.suggestion.label}
108
- </DropdownMenuRadioItem>
109
- </DropdownMenuRadioGroup>
110
- </DropdownMenuContent>
111
- </DropdownMenuPortal>
112
- </DropdownMenu>
113
- );
114
- }
115
-
116
- function Indicator() {
117
- return (
118
- <span className="pointer-events-none absolute right-2 flex size-3.5 items-center justify-center">
119
- <DropdownMenuItemIndicator>
120
- <CheckIcon />
121
- </DropdownMenuItemIndicator>
122
- </span>
123
- );
124
- }
@@ -1,34 +0,0 @@
1
- 'use client';
2
-
3
- import { BlockMenuPlugin } from '@platejs/selection/react';
4
- import { MoreHorizontal } from 'lucide-react';
5
- import { useEditorRef } from 'platejs/react';
6
-
7
- import { useOpenState } from './dropdown-menu';
8
- import { ToolbarButton } from './toolbar';
9
-
10
- export function MoreToolbarButton() {
11
- const editor = useEditorRef();
12
- const openState = useOpenState();
13
-
14
- return (
15
- <ToolbarButton
16
- data-plate-prevent-overlay
17
- onClick={(e) => {
18
- const blockAbove = editor.api.block()?.[0];
19
-
20
- if (!blockAbove) return;
21
-
22
- editor
23
- .getApi(BlockMenuPlugin)
24
- .blockMenu.showContextMenu(blockAbove.id as string, {
25
- x: e.clientX,
26
- y: e.clientY
27
- });
28
- }}
29
- pressed={openState.open}
30
- tooltip="More">
31
- <MoreHorizontal />
32
- </ToolbarButton>
33
- );
34
- }
@@ -1,15 +0,0 @@
1
-
2
- import { SlateElement, type SlateElementProps } from 'platejs/static';
3
-
4
- export function ParagraphElementStatic(props: SlateElementProps) {
5
- return (
6
- <SlateElement
7
- {...props}
8
- className="my-px px-0.5 py-[3px]"
9
- style={{
10
- backgroundColor: props.element.backgroundColor as any
11
- }}>
12
- {props.children}
13
- </SlateElement>
14
- );
15
- }