@docyrus/ui-pro-ai-assistant 0.0.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 (308) hide show
  1. package/dist/index.js +26161 -0
  2. package/dist/index.js.map +1 -0
  3. package/package.json +155 -0
  4. package/src/components/assistant-animations.tsx +29 -0
  5. package/src/components/assistant-dialogs.tsx +235 -0
  6. package/src/components/code-view.tsx +278 -0
  7. package/src/components/create-agent-task.tsx +104 -0
  8. package/src/components/create-new-work-version.tsx +30 -0
  9. package/src/components/extract-web.tsx +160 -0
  10. package/src/components/forward-to-agent.tsx +90 -0
  11. package/src/components/generate-chart.tsx +101 -0
  12. package/src/components/generative-action-button.tsx +122 -0
  13. package/src/components/generative-tool.tsx +685 -0
  14. package/src/components/generative-ui-object.tsx +210 -0
  15. package/src/components/input-area.tsx +1209 -0
  16. package/src/components/json-schema-layout.tsx +326 -0
  17. package/src/components/list-item-card.tsx +92 -0
  18. package/src/components/mermaid-diagram.tsx +192 -0
  19. package/src/components/preview-image.tsx +47 -0
  20. package/src/components/request-approval.tsx +48 -0
  21. package/src/components/request-user-input.tsx +270 -0
  22. package/src/components/search-web.tsx +319 -0
  23. package/src/components/sheet-command.tsx +88 -0
  24. package/src/components/shell-canvas.tsx +122 -0
  25. package/src/components/show-advanced-data-table.tsx +352 -0
  26. package/src/components/show-generated-content-options.tsx +93 -0
  27. package/src/components/show-people-cards.tsx +180 -0
  28. package/src/components/subagent-tool.tsx +180 -0
  29. package/src/components/text-editor-tool.tsx +328 -0
  30. package/src/components/work-canvas.tsx +88 -0
  31. package/src/components/work-card.tsx +42 -0
  32. package/src/declarations.d.ts +1 -0
  33. package/src/docy-assistant.tsx +1962 -0
  34. package/src/hooks/index.ts +7 -0
  35. package/src/hooks/use-assistant-api.ts +507 -0
  36. package/src/hooks/use-deployment-data.ts +162 -0
  37. package/src/hooks/use-project-state.ts +347 -0
  38. package/src/hooks/use-session-state.ts +207 -0
  39. package/src/hooks/use-speech-recognition.ts +137 -0
  40. package/src/hooks/use-ui-state.ts +185 -0
  41. package/src/hooks/use-works-state.ts +146 -0
  42. package/src/i18n/context.tsx +253 -0
  43. package/src/i18n/index.ts +19 -0
  44. package/src/i18n/locales/de.json +198 -0
  45. package/src/i18n/locales/el.json +198 -0
  46. package/src/i18n/locales/en.json +226 -0
  47. package/src/i18n/locales/es.json +198 -0
  48. package/src/i18n/locales/fr.json +198 -0
  49. package/src/i18n/locales/it.json +198 -0
  50. package/src/i18n/locales/pt.json +198 -0
  51. package/src/i18n/locales/sl.json +198 -0
  52. package/src/i18n/locales/tr.json +211 -0
  53. package/src/i18n/types.ts +23 -0
  54. package/src/i18n/use-translation.ts +17 -0
  55. package/src/index.ts +18 -0
  56. package/src/internal/plate-editor/editor/auth-context.ts +11 -0
  57. package/src/internal/plate-editor/editor/editor-base-kit.tsx +39 -0
  58. package/src/internal/plate-editor/editor/editor-kit.tsx +89 -0
  59. package/src/internal/plate-editor/editor/plate-editor.tsx +75 -0
  60. package/src/internal/plate-editor/editor/plate-types.ts +126 -0
  61. package/src/internal/plate-editor/editor/plugins/ai-kit.tsx +172 -0
  62. package/src/internal/plate-editor/editor/plugins/autoformat-kit.tsx +211 -0
  63. package/src/internal/plate-editor/editor/plugins/basic-blocks-base-kit.tsx +26 -0
  64. package/src/internal/plate-editor/editor/plugins/basic-blocks-kit.tsx +51 -0
  65. package/src/internal/plate-editor/editor/plugins/basic-marks-base-kit.tsx +24 -0
  66. package/src/internal/plate-editor/editor/plugins/basic-marks-kit.tsx +38 -0
  67. package/src/internal/plate-editor/editor/plugins/basic-nodes-kit.tsx +6 -0
  68. package/src/internal/plate-editor/editor/plugins/block-menu-kit.tsx +14 -0
  69. package/src/internal/plate-editor/editor/plugins/block-placeholder-kit.tsx +17 -0
  70. package/src/internal/plate-editor/editor/plugins/block-selection-kit.tsx +31 -0
  71. package/src/internal/plate-editor/editor/plugins/callout-base-kit.tsx +5 -0
  72. package/src/internal/plate-editor/editor/plugins/callout-kit.tsx +7 -0
  73. package/src/internal/plate-editor/editor/plugins/code-block-base-kit.tsx +23 -0
  74. package/src/internal/plate-editor/editor/plugins/code-block-kit.tsx +26 -0
  75. package/src/internal/plate-editor/editor/plugins/column-base-kit.tsx +8 -0
  76. package/src/internal/plate-editor/editor/plugins/column-kit.tsx +7 -0
  77. package/src/internal/plate-editor/editor/plugins/comment-base-kit.tsx +5 -0
  78. package/src/internal/plate-editor/editor/plugins/comment-kit.tsx +174 -0
  79. package/src/internal/plate-editor/editor/plugins/copilot-kit.tsx +68 -0
  80. package/src/internal/plate-editor/editor/plugins/cursor-overlay-kit.tsx +13 -0
  81. package/src/internal/plate-editor/editor/plugins/date-base-kit.tsx +5 -0
  82. package/src/internal/plate-editor/editor/plugins/date-kit.tsx +7 -0
  83. package/src/internal/plate-editor/editor/plugins/discussion-kit.tsx +36 -0
  84. package/src/internal/plate-editor/editor/plugins/dnd-kit.tsx +27 -0
  85. package/src/internal/plate-editor/editor/plugins/docx-export-kit.tsx +43 -0
  86. package/src/internal/plate-editor/editor/plugins/docx-kit.tsx +6 -0
  87. package/src/internal/plate-editor/editor/plugins/emoji-kit.tsx +15 -0
  88. package/src/internal/plate-editor/editor/plugins/exit-break-kit.tsx +12 -0
  89. package/src/internal/plate-editor/editor/plugins/floating-toolbar-kit.tsx +19 -0
  90. package/src/internal/plate-editor/editor/plugins/font-base-kit.tsx +36 -0
  91. package/src/internal/plate-editor/editor/plugins/font-kit.tsx +47 -0
  92. package/src/internal/plate-editor/editor/plugins/indent-base-kit.tsx +19 -0
  93. package/src/internal/plate-editor/editor/plugins/indent-kit.tsx +22 -0
  94. package/src/internal/plate-editor/editor/plugins/link-base-kit.tsx +5 -0
  95. package/src/internal/plate-editor/editor/plugins/link-kit.tsx +35 -0
  96. package/src/internal/plate-editor/editor/plugins/list-base-kit.tsx +24 -0
  97. package/src/internal/plate-editor/editor/plugins/list-kit.tsx +27 -0
  98. package/src/internal/plate-editor/editor/plugins/markdown-kit.tsx +18 -0
  99. package/src/internal/plate-editor/editor/plugins/math-base-kit.tsx +8 -0
  100. package/src/internal/plate-editor/editor/plugins/math-kit.tsx +10 -0
  101. package/src/internal/plate-editor/editor/plugins/media-base-kit.tsx +37 -0
  102. package/src/internal/plate-editor/editor/plugins/media-kit.tsx +53 -0
  103. package/src/internal/plate-editor/editor/plugins/mention-base-kit.tsx +5 -0
  104. package/src/internal/plate-editor/editor/plugins/mention-kit.tsx +36 -0
  105. package/src/internal/plate-editor/editor/plugins/slash-kit.tsx +17 -0
  106. package/src/internal/plate-editor/editor/plugins/suggestion-base-kit.tsx +5 -0
  107. package/src/internal/plate-editor/editor/plugins/suggestion-kit.tsx +95 -0
  108. package/src/internal/plate-editor/editor/plugins/table-base-kit.tsx +20 -0
  109. package/src/internal/plate-editor/editor/plugins/table-kit.tsx +22 -0
  110. package/src/internal/plate-editor/editor/plugins/toc-base-kit.tsx +5 -0
  111. package/src/internal/plate-editor/editor/plugins/toc-kit.tsx +14 -0
  112. package/src/internal/plate-editor/editor/plugins/toggle-base-kit.tsx +5 -0
  113. package/src/internal/plate-editor/editor/plugins/toggle-kit.tsx +9 -0
  114. package/src/internal/plate-editor/editor/transforms.ts +165 -0
  115. package/src/internal/plate-editor/editor/use-chat.ts +152 -0
  116. package/src/internal/plate-editor/hooks/index.ts +3 -0
  117. package/src/internal/plate-editor/hooks/use-copy-to-clipboard.ts +31 -0
  118. package/src/internal/plate-editor/hooks/use-is-touch-device.ts +26 -0
  119. package/src/internal/plate-editor/hooks/use-lock-scroll.ts +21 -0
  120. package/src/internal/plate-editor/hooks/use-media-query.ts +44 -0
  121. package/src/internal/plate-editor/hooks/use-mounted.ts +18 -0
  122. package/src/internal/plate-editor/hooks/use-on-click-outside.ts +114 -0
  123. package/src/internal/plate-editor/hooks/use-upload-file.ts +81 -0
  124. package/src/internal/plate-editor/i18n/context.tsx +58 -0
  125. package/src/internal/plate-editor/i18n/index.ts +3 -0
  126. package/src/internal/plate-editor/i18n/locales/de.json +57 -0
  127. package/src/internal/plate-editor/i18n/locales/el.json +57 -0
  128. package/src/internal/plate-editor/i18n/locales/en.json +57 -0
  129. package/src/internal/plate-editor/i18n/locales/es.json +57 -0
  130. package/src/internal/plate-editor/i18n/locales/fr.json +57 -0
  131. package/src/internal/plate-editor/i18n/locales/it.json +57 -0
  132. package/src/internal/plate-editor/i18n/locales/pt.json +57 -0
  133. package/src/internal/plate-editor/i18n/locales/sl.json +57 -0
  134. package/src/internal/plate-editor/i18n/locales/tr.json +57 -0
  135. package/src/internal/plate-editor/i18n/types.ts +59 -0
  136. package/src/internal/plate-editor/i18n/use-translation.ts +22 -0
  137. package/src/internal/plate-editor/index.ts +39 -0
  138. package/src/internal/plate-editor/lib/ai-output-converter.ts +153 -0
  139. package/src/internal/plate-editor/lib/download-file.ts +17 -0
  140. package/src/internal/plate-editor/plate-ui/ai-chat-editor.tsx +26 -0
  141. package/src/internal/plate-editor/plate-ui/ai-menu.tsx +828 -0
  142. package/src/internal/plate-editor/plate-ui/ai-node.tsx +41 -0
  143. package/src/internal/plate-editor/plate-ui/ai-toolbar-button.tsx +27 -0
  144. package/src/internal/plate-editor/plate-ui/alert-dialog.tsx +147 -0
  145. package/src/internal/plate-editor/plate-ui/align-toolbar-button.tsx +90 -0
  146. package/src/internal/plate-editor/plate-ui/avatar.tsx +3 -0
  147. package/src/internal/plate-editor/plate-ui/block-context-menu.tsx +106 -0
  148. package/src/internal/plate-editor/plate-ui/block-discussion.tsx +364 -0
  149. package/src/internal/plate-editor/plate-ui/block-draggable.tsx +556 -0
  150. package/src/internal/plate-editor/plate-ui/block-list-static.tsx +78 -0
  151. package/src/internal/plate-editor/plate-ui/block-list.tsx +85 -0
  152. package/src/internal/plate-editor/plate-ui/block-menu.tsx +557 -0
  153. package/src/internal/plate-editor/plate-ui/block-selection.tsx +47 -0
  154. package/src/internal/plate-editor/plate-ui/block-suggestion.tsx +469 -0
  155. package/src/internal/plate-editor/plate-ui/blockquote-node-static.tsx +10 -0
  156. package/src/internal/plate-editor/plate-ui/blockquote-node.tsx +11 -0
  157. package/src/internal/plate-editor/plate-ui/button.tsx +190 -0
  158. package/src/internal/plate-editor/plate-ui/calendar.tsx +3 -0
  159. package/src/internal/plate-editor/plate-ui/callout-node-static.tsx +76 -0
  160. package/src/internal/plate-editor/plate-ui/callout-node.tsx +54 -0
  161. package/src/internal/plate-editor/plate-ui/caption.tsx +48 -0
  162. package/src/internal/plate-editor/plate-ui/checkbox.tsx +3 -0
  163. package/src/internal/plate-editor/plate-ui/code-block-node-static.tsx +172 -0
  164. package/src/internal/plate-editor/plate-ui/code-block-node.tsx +228 -0
  165. package/src/internal/plate-editor/plate-ui/code-node-static.tsx +11 -0
  166. package/src/internal/plate-editor/plate-ui/code-node.tsx +12 -0
  167. package/src/internal/plate-editor/plate-ui/column-node-static.tsx +65 -0
  168. package/src/internal/plate-editor/plate-ui/column-node.tsx +24 -0
  169. package/src/internal/plate-editor/plate-ui/command.tsx +204 -0
  170. package/src/internal/plate-editor/plate-ui/comment-node-static.tsx +12 -0
  171. package/src/internal/plate-editor/plate-ui/comment-node.tsx +45 -0
  172. package/src/internal/plate-editor/plate-ui/comment-toolbar-button.tsx +24 -0
  173. package/src/internal/plate-editor/plate-ui/comment.tsx +619 -0
  174. package/src/internal/plate-editor/plate-ui/cursor-overlay.tsx +85 -0
  175. package/src/internal/plate-editor/plate-ui/date-node-static.tsx +43 -0
  176. package/src/internal/plate-editor/plate-ui/date-node.tsx +56 -0
  177. package/src/internal/plate-editor/plate-ui/dialog.tsx +426 -0
  178. package/src/internal/plate-editor/plate-ui/dropdown-menu.tsx +266 -0
  179. package/src/internal/plate-editor/plate-ui/editor-static.tsx +40 -0
  180. package/src/internal/plate-editor/plate-ui/editor.tsx +148 -0
  181. package/src/internal/plate-editor/plate-ui/emoji-node.tsx +48 -0
  182. package/src/internal/plate-editor/plate-ui/emoji-toolbar-button.tsx +626 -0
  183. package/src/internal/plate-editor/plate-ui/equation-node-static.tsx +155 -0
  184. package/src/internal/plate-editor/plate-ui/equation-node.tsx +226 -0
  185. package/src/internal/plate-editor/plate-ui/equation-toolbar-button.tsx +26 -0
  186. package/src/internal/plate-editor/plate-ui/export-toolbar-button.tsx +208 -0
  187. package/src/internal/plate-editor/plate-ui/fixed-toolbar-buttons.tsx +157 -0
  188. package/src/internal/plate-editor/plate-ui/fixed-toolbar.tsx +27 -0
  189. package/src/internal/plate-editor/plate-ui/floating-discussion.tsx +1129 -0
  190. package/src/internal/plate-editor/plate-ui/floating-toolbar-buttons.tsx +129 -0
  191. package/src/internal/plate-editor/plate-ui/floating-toolbar.tsx +99 -0
  192. package/src/internal/plate-editor/plate-ui/font-color-toolbar-button.tsx +211 -0
  193. package/src/internal/plate-editor/plate-ui/font-size-toolbar-button.tsx +154 -0
  194. package/src/internal/plate-editor/plate-ui/ghost-text.tsx +20 -0
  195. package/src/internal/plate-editor/plate-ui/heading-node-static.tsx +52 -0
  196. package/src/internal/plate-editor/plate-ui/heading-node.tsx +56 -0
  197. package/src/internal/plate-editor/plate-ui/highlight-node-static.tsx +9 -0
  198. package/src/internal/plate-editor/plate-ui/highlight-node.tsx +11 -0
  199. package/src/internal/plate-editor/plate-ui/history-toolbar-button.tsx +52 -0
  200. package/src/internal/plate-editor/plate-ui/hover-card.tsx +7 -0
  201. package/src/internal/plate-editor/plate-ui/hr-node-static.tsx +18 -0
  202. package/src/internal/plate-editor/plate-ui/hr-node.tsx +28 -0
  203. package/src/internal/plate-editor/plate-ui/import-toolbar-button.tsx +124 -0
  204. package/src/internal/plate-editor/plate-ui/indent-toolbar-button.tsx +34 -0
  205. package/src/internal/plate-editor/plate-ui/inline-combobox.tsx +409 -0
  206. package/src/internal/plate-editor/plate-ui/input.tsx +39 -0
  207. package/src/internal/plate-editor/plate-ui/insert-toolbar-button.tsx +260 -0
  208. package/src/internal/plate-editor/plate-ui/label.tsx +1 -0
  209. package/src/internal/plate-editor/plate-ui/line-height-toolbar-button.tsx +71 -0
  210. package/src/internal/plate-editor/plate-ui/link-node-static.tsx +15 -0
  211. package/src/internal/plate-editor/plate-ui/link-node.tsx +33 -0
  212. package/src/internal/plate-editor/plate-ui/link-toolbar-button.tsx +30 -0
  213. package/src/internal/plate-editor/plate-ui/link-toolbar.tsx +149 -0
  214. package/src/internal/plate-editor/plate-ui/list-toolbar-button.tsx +179 -0
  215. package/src/internal/plate-editor/plate-ui/mark-toolbar-button.tsx +36 -0
  216. package/src/internal/plate-editor/plate-ui/media-audio-node-static.tsx +21 -0
  217. package/src/internal/plate-editor/plate-ui/media-audio-node.tsx +32 -0
  218. package/src/internal/plate-editor/plate-ui/media-embed-node.tsx +103 -0
  219. package/src/internal/plate-editor/plate-ui/media-file-node-static.tsx +30 -0
  220. package/src/internal/plate-editor/plate-ui/media-file-node.tsx +52 -0
  221. package/src/internal/plate-editor/plate-ui/media-image-node-static.tsx +37 -0
  222. package/src/internal/plate-editor/plate-ui/media-image-node.tsx +183 -0
  223. package/src/internal/plate-editor/plate-ui/media-placeholder-node.tsx +441 -0
  224. package/src/internal/plate-editor/plate-ui/media-preview-dialog.tsx +127 -0
  225. package/src/internal/plate-editor/plate-ui/media-toolbar-button.tsx +229 -0
  226. package/src/internal/plate-editor/plate-ui/media-toolbar.tsx +216 -0
  227. package/src/internal/plate-editor/plate-ui/media-upload-toast.tsx +73 -0
  228. package/src/internal/plate-editor/plate-ui/media-video-node-static.tsx +35 -0
  229. package/src/internal/plate-editor/plate-ui/media-video-node.tsx +119 -0
  230. package/src/internal/plate-editor/plate-ui/mention-node-static.tsx +46 -0
  231. package/src/internal/plate-editor/plate-ui/mention-node.tsx +79 -0
  232. package/src/internal/plate-editor/plate-ui/menu.tsx +532 -0
  233. package/src/internal/plate-editor/plate-ui/mode-toolbar-button.tsx +126 -0
  234. package/src/internal/plate-editor/plate-ui/more-toolbar-button.tsx +34 -0
  235. package/src/internal/plate-editor/plate-ui/paragraph-node-static.tsx +15 -0
  236. package/src/internal/plate-editor/plate-ui/paragraph-node.tsx +16 -0
  237. package/src/internal/plate-editor/plate-ui/popover.tsx +77 -0
  238. package/src/internal/plate-editor/plate-ui/progress.tsx +1 -0
  239. package/src/internal/plate-editor/plate-ui/remote-cursor-overlay.tsx +81 -0
  240. package/src/internal/plate-editor/plate-ui/resize-handle.tsx +88 -0
  241. package/src/internal/plate-editor/plate-ui/separator.tsx +43 -0
  242. package/src/internal/plate-editor/plate-ui/slash-node.tsx +435 -0
  243. package/src/internal/plate-editor/plate-ui/spinner.tsx +1 -0
  244. package/src/internal/plate-editor/plate-ui/suggestion-node-static.tsx +35 -0
  245. package/src/internal/plate-editor/plate-ui/suggestion-node.tsx +168 -0
  246. package/src/internal/plate-editor/plate-ui/suggestion-toolbar-button.tsx +24 -0
  247. package/src/internal/plate-editor/plate-ui/table-node-static.tsx +85 -0
  248. package/src/internal/plate-editor/plate-ui/table-node.tsx +285 -0
  249. package/src/internal/plate-editor/plate-ui/table-toolbar-button.tsx +254 -0
  250. package/src/internal/plate-editor/plate-ui/tabs.tsx +3 -0
  251. package/src/internal/plate-editor/plate-ui/textarea.tsx +58 -0
  252. package/src/internal/plate-editor/plate-ui/toc-node-static.tsx +142 -0
  253. package/src/internal/plate-editor/plate-ui/toc-node.tsx +57 -0
  254. package/src/internal/plate-editor/plate-ui/toc-sidebar.tsx +50 -0
  255. package/src/internal/plate-editor/plate-ui/toggle-node-static.tsx +18 -0
  256. package/src/internal/plate-editor/plate-ui/toggle-node.tsx +33 -0
  257. package/src/internal/plate-editor/plate-ui/toggle-toolbar-button.tsx +26 -0
  258. package/src/internal/plate-editor/plate-ui/toggle.tsx +3 -0
  259. package/src/internal/plate-editor/plate-ui/toolbar.tsx +380 -0
  260. package/src/internal/plate-editor/plate-ui/tooltip.tsx +149 -0
  261. package/src/internal/plate-editor/plate-ui/turn-into-toolbar-button.tsx +177 -0
  262. package/src/internal/plate-editor/types/index.ts +22 -0
  263. package/src/internal/plate-editor/vite.ts +284 -0
  264. package/src/internal/sheets/components/univer-sheets.tsx +1104 -0
  265. package/src/internal/sheets/i18n/context.tsx +183 -0
  266. package/src/internal/sheets/i18n/index.ts +19 -0
  267. package/src/internal/sheets/i18n/locales/de.json +21 -0
  268. package/src/internal/sheets/i18n/locales/el.json +21 -0
  269. package/src/internal/sheets/i18n/locales/en.json +21 -0
  270. package/src/internal/sheets/i18n/locales/es.json +21 -0
  271. package/src/internal/sheets/i18n/locales/fr.json +21 -0
  272. package/src/internal/sheets/i18n/locales/it.json +21 -0
  273. package/src/internal/sheets/i18n/locales/pt.json +21 -0
  274. package/src/internal/sheets/i18n/locales/sl.json +21 -0
  275. package/src/internal/sheets/i18n/locales/tr.json +21 -0
  276. package/src/internal/sheets/i18n/types.ts +23 -0
  277. package/src/internal/sheets/i18n/use-translation.ts +17 -0
  278. package/src/internal/sheets/index.ts +14 -0
  279. package/src/internal/sheets/types/css.d.ts +11 -0
  280. package/src/internal/sheets/types/index.ts +260 -0
  281. package/src/internal/sheets/xlsx.ts +1169 -0
  282. package/src/lib/api-client.ts +77 -0
  283. package/src/lib/assistant-api-actions.ts +549 -0
  284. package/src/lib/assistant-config.tsx +71 -0
  285. package/src/lib/class-utils.ts +40 -0
  286. package/src/lib/index.ts +7 -0
  287. package/src/lib/message-utils.ts +131 -0
  288. package/src/tools/tools-schema.json +512 -0
  289. package/src/types/index.ts +235 -0
  290. package/src/views/assistant-view.tsx +1137 -0
  291. package/src/views/canvas-app.tsx +839 -0
  292. package/src/views/canvas-code.tsx +93 -0
  293. package/src/views/canvas-deep-research.tsx +44 -0
  294. package/src/views/canvas-image.tsx +25 -0
  295. package/src/views/canvas-record-view.tsx +285 -0
  296. package/src/views/canvas-spreadsheet.tsx +125 -0
  297. package/src/views/canvas-text.tsx +52 -0
  298. package/src/views/canvas.tsx +274 -0
  299. package/src/views/chat-panel.tsx +149 -0
  300. package/src/views/index.ts +20 -0
  301. package/src/views/memories-panel.tsx +365 -0
  302. package/src/views/message-list.tsx +370 -0
  303. package/src/views/project-detail.tsx +257 -0
  304. package/src/views/projects-panel.tsx +131 -0
  305. package/src/views/sessions-list.tsx +98 -0
  306. package/src/views/sidebar-content.tsx +256 -0
  307. package/src/views/work-detail.tsx +98 -0
  308. package/src/vite.ts +284 -0
@@ -0,0 +1,266 @@
1
+ 'use client';
2
+
3
+ import { useCallback, useState, type ComponentProps } from 'react';
4
+
5
+ import * as React from 'react';
6
+
7
+ import { cva, type VariantProps } from 'class-variance-authority';
8
+ import { CheckIcon, ChevronRightIcon } from 'lucide-react';
9
+ import { DropdownMenu as DropdownMenuPrimitive } from 'radix-ui';
10
+
11
+ import { cn } from '@docyrus/ui-pro-shared/lib/utils';
12
+
13
+ export const dropdownMenuItemVariants = cva(
14
+ cn(
15
+ 'no-focus-ring relative flex cursor-pointer select-none items-center gap-2 rounded-md align-middle text-sm transition-bg-ease data-disabled:pointer-events-none data-disabled:opacity-50',
16
+ '[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:text-subtle-foreground',
17
+ 'text-accent-foreground hover:bg-accent focus:bg-accent focus:text-accent-foreground'
18
+ ),
19
+ {
20
+ defaultVariants: {
21
+ size: 'default',
22
+ variant: 'default'
23
+ },
24
+ variants: {
25
+ size: {
26
+ default: 'mx-1 h-[28px] w-[calc(100%-8px)] px-2.5',
27
+ none: ''
28
+ },
29
+ variant: {
30
+ default: 'focus:bg-accent focus:text-accent-foreground',
31
+ none: ''
32
+ }
33
+ }
34
+ }
35
+ );
36
+
37
+ const dropdownMenuLabelVariants = cva(
38
+ cn(
39
+ 'mt-1.5 mb-2 cursor-default select-none px-[14px] font-medium text-muted-foreground text-xs'
40
+ ),
41
+ {
42
+ variants: {
43
+ inset: {
44
+ true: 'pl-8'
45
+ }
46
+ }
47
+ }
48
+ );
49
+
50
+ export type DropdownMenuProps = DropdownMenuPrimitive.DropdownMenuProps;
51
+
52
+ export function DropdownMenu(props: DropdownMenuProps) {
53
+ return <DropdownMenuPrimitive.Root {...props} />;
54
+ }
55
+
56
+ export function DropdownMenuTrigger(
57
+ props: DropdownMenuPrimitive.DropdownMenuTriggerProps
58
+ ) {
59
+ return <DropdownMenuPrimitive.Trigger {...props} />;
60
+ }
61
+
62
+ export function DropdownMenuGroup(
63
+ props: DropdownMenuPrimitive.DropdownMenuGroupProps
64
+ ) {
65
+ return <DropdownMenuPrimitive.Group className="py-1.5" {...props} />;
66
+ }
67
+
68
+ export function DropdownMenuPortal(
69
+ props: DropdownMenuPrimitive.DropdownMenuPortalProps
70
+ ) {
71
+ return <DropdownMenuPrimitive.Portal {...props} />;
72
+ }
73
+
74
+ export function DropdownMenuSub(
75
+ props: DropdownMenuPrimitive.DropdownMenuSubProps
76
+ ) {
77
+ return <DropdownMenuPrimitive.Sub {...props} />;
78
+ }
79
+
80
+ export function DropdownMenuRadioGroup(
81
+ props: DropdownMenuPrimitive.DropdownMenuRadioGroupProps
82
+ ) {
83
+ return <DropdownMenuPrimitive.RadioGroup {...props} />;
84
+ }
85
+
86
+ export function DropdownMenuSubTrigger({
87
+ children,
88
+ className,
89
+ inset,
90
+ ...props
91
+ }: ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
92
+ inset?: boolean;
93
+ }) {
94
+ return (
95
+ <DropdownMenuPrimitive.SubTrigger
96
+ className={cn(
97
+ 'mx-1 flex cursor-default select-none items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden focus:bg-accent data-[state=open]:bg-accent',
98
+ 'no-focus-ring',
99
+ 'data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
100
+ inset && 'pl-8',
101
+ className
102
+ )}
103
+ {...props}>
104
+ {children}
105
+ <ChevronRightIcon className="ml-auto" />
106
+ </DropdownMenuPrimitive.SubTrigger>
107
+ );
108
+ }
109
+
110
+ export function DropdownMenuSubContent({
111
+ className,
112
+ ...props
113
+ }: ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {
114
+ return (
115
+ <DropdownMenuPrimitive.SubContent
116
+ className={cn(
117
+ '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 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 z-50 min-w-32 overflow-hidden rounded-lg bg-popover p-1 text-popover-foreground shadow-floating data-[state=closed]:animate-out data-[state=open]:animate-in',
118
+ className
119
+ )}
120
+ {...props} />
121
+ );
122
+ }
123
+
124
+ export function DropdownMenuContent({
125
+ className,
126
+ portal,
127
+ ...props
128
+ }: ComponentProps<typeof DropdownMenuPrimitive.Content> & {
129
+ portal?: boolean;
130
+ }) {
131
+ const content = (
132
+ <DropdownMenuPrimitive.Content
133
+ className={cn(
134
+ 'no-focus-ring z-50 min-w-32 max-w-[100vw] overflow-hidden rounded-lg bg-popover p-0 text-popover-foreground text-sm shadow-floating',
135
+ 'data-[state=closed]:hidden 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
+ className
137
+ )}
138
+ sideOffset={4}
139
+ {...props} />
140
+ );
141
+
142
+ if (portal) {
143
+ return (
144
+ <DropdownMenuPrimitive.Portal>{content}</DropdownMenuPrimitive.Portal>
145
+ );
146
+ }
147
+
148
+ return content;
149
+ }
150
+
151
+ export function DropdownMenuItem({
152
+ className,
153
+ ...props
154
+ }: ComponentProps<typeof DropdownMenuPrimitive.Item>
155
+ & VariantProps<typeof dropdownMenuItemVariants>) {
156
+ return (
157
+ <DropdownMenuPrimitive.Item
158
+ className={cn(dropdownMenuItemVariants(), className)}
159
+ {...props} />
160
+ );
161
+ }
162
+
163
+ export function DropdownMenuCheckboxItem({
164
+ children,
165
+ className,
166
+ ...props
167
+ }: ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {
168
+ return (
169
+ <DropdownMenuPrimitive.CheckboxItem
170
+ className={cn(
171
+ 'no-focus-ring relative flex select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 transition-bg-ease focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:size-4',
172
+ 'mx-1 h-[28px] cursor-pointer px-2.5 data-[state=highlighted]:bg-accent data-[state=highlighted]:text-accent-foreground',
173
+ className
174
+ )}
175
+ {...props}>
176
+ <span className="absolute right-2 flex size-3.5 items-center justify-center">
177
+ <DropdownMenuPrimitive.ItemIndicator>
178
+ <CheckIcon />
179
+ </DropdownMenuPrimitive.ItemIndicator>
180
+ </span>
181
+ {children}
182
+ </DropdownMenuPrimitive.CheckboxItem>
183
+ );
184
+ }
185
+
186
+ export function DropdownMenuRadioItem({
187
+ children,
188
+ className,
189
+ hideIcon,
190
+ ...props
191
+ }: ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {
192
+ hideIcon?: boolean;
193
+ }) {
194
+ return (
195
+ <DropdownMenuPrimitive.RadioItem
196
+ className={cn(
197
+ 'no-focus-ring relative flex select-none items-center rounded-sm pr-2 pl-8 transition-bg-ease focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50',
198
+ 'mx-1 h-[28px] cursor-pointer gap-2 px-2.5 data-[state=highlighted]:bg-accent data-[state=highlighted]:text-accent-foreground [&_svg]:size-4',
199
+ className
200
+ )}
201
+ {...props}>
202
+ {!hideIcon && (
203
+ <span className="absolute right-2 flex size-3.5 items-center justify-center">
204
+ <DropdownMenuPrimitive.ItemIndicator>
205
+ <CheckIcon />
206
+ </DropdownMenuPrimitive.ItemIndicator>
207
+ </span>
208
+ )}
209
+ {children}
210
+ </DropdownMenuPrimitive.RadioItem>
211
+ );
212
+ }
213
+
214
+ export function DropdownMenuLabel({
215
+ className,
216
+ inset,
217
+ ...props
218
+ }: ComponentProps<typeof DropdownMenuPrimitive.Label> & {
219
+ inset?: boolean;
220
+ }) {
221
+ return (
222
+ <DropdownMenuPrimitive.Label
223
+ className={cn(dropdownMenuLabelVariants({ inset }), className)}
224
+ {...props} />
225
+ );
226
+ }
227
+
228
+ export function DropdownMenuSeparator({
229
+ className,
230
+ ...props
231
+ }: ComponentProps<typeof DropdownMenuPrimitive.Separator>) {
232
+ return (
233
+ <DropdownMenuPrimitive.Separator
234
+ className={cn('-mx-1 my-1 h-px bg-muted', className)}
235
+ {...props} />
236
+ );
237
+ }
238
+
239
+ export function DropdownMenuShortcut({
240
+ className,
241
+ ...props
242
+ }: ComponentProps<'span'>) {
243
+ return (
244
+ <span
245
+ className={cn('ml-auto text-xs tracking-widest opacity-60', className)}
246
+ {...props} />
247
+ );
248
+ }
249
+
250
+ export const DropdownMenuItemIndicator = DropdownMenuPrimitive.ItemIndicator;
251
+
252
+ export function useOpenState() {
253
+ const [open, setOpen] = useState(false);
254
+
255
+ const onOpenChange = useCallback(
256
+ (_value = !open) => {
257
+ setOpen(_value);
258
+ },
259
+ [open]
260
+ );
261
+
262
+ return {
263
+ open,
264
+ onOpenChange
265
+ };
266
+ }
@@ -0,0 +1,40 @@
1
+ 'use client';
2
+
3
+ import {
4
+ Plate, PlateContent, type PlateContentProps, usePlateEditor
5
+ } from 'platejs/react';
6
+
7
+ import { cn } from '@docyrus/ui-pro-shared/lib/utils';
8
+
9
+ import { editorVariants } from './editor';
10
+
11
+ export function EditorStatic({
12
+ children,
13
+ className,
14
+ editor: editorProp,
15
+ value,
16
+ variant,
17
+ ...props
18
+ }: {
19
+ editor?: any;
20
+ value?: any;
21
+ variant?: 'aiChat' | 'comment' | 'default';
22
+ } & Omit<PlateContentProps, 'editor' | 'value'>) {
23
+ const localEditor = usePlateEditor({ value });
24
+ const editor = editorProp ?? localEditor;
25
+
26
+ return (
27
+ <Plate editor={editor as any} readOnly>
28
+ <PlateContent
29
+ className={cn(
30
+ editorVariants({ variant }),
31
+ 'pointer-events-none select-text',
32
+ className
33
+ )}
34
+ readOnly
35
+ {...props}>
36
+ {children}
37
+ </PlateContent>
38
+ </Plate>
39
+ );
40
+ }
@@ -0,0 +1,148 @@
1
+ 'use client';
2
+
3
+ import { type HTMLAttributes } from 'react';
4
+
5
+ import * as React from 'react';
6
+
7
+ import { cva, type VariantProps } from 'class-variance-authority';
8
+
9
+ import {
10
+ PlateContainer,
11
+ PlateContent,
12
+ type PlateContentProps,
13
+ useEditorRef
14
+ } from 'platejs/react';
15
+
16
+ import { cn } from '@docyrus/ui-pro-shared/lib/utils';
17
+
18
+ const editorContainerVariants = cva(
19
+ 'relative w-full cursor-text overflow-y-auto font-[ui-sans-serif,_-apple-system,_BlinkMacSystemFont,_"Segoe_UI_Variable_Display",_"Segoe_UI",_Helvetica,_"Apple_Color_Emoji",_Arial,_sans-serif,_"Segoe_UI_Emoji",_"Segoe_UI_Symbol"] caret-primary selection:bg-brand/25 focus-visible:outline-hidden [&_.slate-selection-area]:bg-brand/15',
20
+ {
21
+ defaultVariants: {
22
+ variant: 'default'
23
+ },
24
+ variants: {
25
+ variant: {
26
+ comment: cn(
27
+ 'flex flex-wrap justify-between gap-1 px-1 py-0.5 text-sm',
28
+ 'rounded-md border-[1.5px] border-transparent bg-transparent',
29
+ 'has-[[data-slate-editor]:focus]:border-brand/50 has-[[data-slate-editor]:focus]:ring-2 has-[[data-slate-editor]:focus]:ring-brand/30',
30
+ 'has-aria-disabled:border-input has-aria-disabled:bg-muted'
31
+ ),
32
+ default: 'h-full',
33
+ demo: 'h-[650px]',
34
+ select: cn(
35
+ 'group rounded-md border border-input ring-offset-background focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2',
36
+ 'has-data-readonly:w-fit has-data-readonly:cursor-default has-data-readonly:border-transparent has-data-readonly:focus-within:[box-shadow:none]'
37
+ )
38
+ }
39
+ }
40
+ }
41
+ );
42
+
43
+ export function EditorContainer({
44
+ className,
45
+ variant,
46
+ ...props
47
+ }: HTMLAttributes<HTMLDivElement> & VariantProps<typeof editorContainerVariants>) {
48
+ const editor = useEditorRef();
49
+
50
+ return (
51
+ <PlateContainer
52
+ className={cn(
53
+ 'ignore-click-outside/toolbar',
54
+ editorContainerVariants({ variant }),
55
+ className
56
+ )}
57
+ onClick={(e) => {
58
+ if (variant === 'comment') {
59
+ e.preventDefault();
60
+ editor.tf.focus({ edge: 'endEditor' });
61
+ }
62
+ }}
63
+ onMouseDown={(e) => {
64
+ if (variant === 'comment') {
65
+ e.stopPropagation();
66
+ e.preventDefault();
67
+ }
68
+ }}
69
+ {...props} />
70
+ );
71
+ }
72
+
73
+ export const editorVariants = cva(
74
+ cn(
75
+ 'group/editor pt-4',
76
+ 'relative w-full overflow-x-hidden whitespace-pre-wrap break-words',
77
+ 'rounded-md ring-offset-background placeholder:text-muted-foreground/80 focus-visible:outline-hidden',
78
+ '**:data-slate-placeholder:!top-1/2 **:data-slate-placeholder:-translate-y-1/2 **:data-slate-placeholder:text-muted-foreground/80 **:data-slate-placeholder:opacity-100!',
79
+ '[&_strong]:font-bold'
80
+ ),
81
+ {
82
+ defaultVariants: {
83
+ variant: 'default'
84
+ },
85
+ variants: {
86
+ disabled: {
87
+ true: 'cursor-not-allowed opacity-50'
88
+ },
89
+ focused: {
90
+ true: 'ring-2 ring-ring ring-offset-2'
91
+ },
92
+ variant: {
93
+ ai: 'px-0 text-base md:text-sm',
94
+ aiChat:
95
+ 'max-h-[min(70vh,320px)] max-w-[700px] overflow-y-auto px-3 py-2 text-base md:text-sm',
96
+ comment: cn('rounded-none border-none bg-transparent text-sm'),
97
+ default:
98
+ 'min-h-full px-[70px] pb-72 text-base sm:px-[max(100px,calc(50%-350px))]',
99
+ demo: 'h-full px-[70px] pt-4 pb-72 text-base sm:px-[max(100px,calc(50%-350px))]',
100
+ fullWidth: 'min-h-full px-[70px] pb-72 text-base',
101
+ select: 'px-3 py-2 text-base data-readonly:w-fit',
102
+ update: 'px-0 text-sm',
103
+ versionHistory: 'px-0 pb-[30vh] text-base'
104
+ }
105
+ }
106
+ }
107
+ );
108
+
109
+ export type EditorProps = PlateContentProps
110
+ & VariantProps<typeof editorVariants>;
111
+
112
+ export function Editor({
113
+ className,
114
+ disabled,
115
+ focused,
116
+ variant,
117
+ onClick,
118
+ onMouseDown,
119
+ ...props
120
+ }: PlateContentProps & VariantProps<typeof editorVariants>) {
121
+ return (
122
+ <PlateContent
123
+ className={cn(
124
+ editorVariants({
125
+ disabled,
126
+ focused,
127
+ variant
128
+ }),
129
+ className
130
+ )}
131
+ disableDefaultStyles
132
+ onClick={(e) => {
133
+ if (variant === 'comment') {
134
+ e.stopPropagation();
135
+ }
136
+
137
+ onClick?.(e);
138
+ }}
139
+ onMouseDown={(e) => {
140
+ if (variant === 'comment') {
141
+ e.stopPropagation();
142
+ }
143
+
144
+ onMouseDown?.(e);
145
+ }}
146
+ {...props} />
147
+ );
148
+ }
@@ -0,0 +1,48 @@
1
+ 'use client';
2
+
3
+ import { type TElement } from 'platejs';
4
+
5
+ import {
6
+ PlateElement,
7
+ type PlateElementProps
8
+ } from 'platejs/react';
9
+
10
+ type TEmojiInputElement = TElement & { data?: any[] };
11
+
12
+ import {
13
+ InlineCombobox,
14
+ InlineComboboxContent,
15
+ InlineComboboxEmpty,
16
+ InlineComboboxInput,
17
+ InlineComboboxItem
18
+ } from './inline-combobox';
19
+
20
+ export function EmojiInputElement(
21
+ props: PlateElementProps<TEmojiInputElement>
22
+ ) {
23
+ const { element } = props;
24
+
25
+ return (
26
+ <PlateElement {...props} as="span">
27
+ <InlineCombobox element={element} trigger=":">
28
+ <InlineComboboxInput />
29
+
30
+ <InlineComboboxContent>
31
+ <InlineComboboxEmpty>No emoji found.</InlineComboboxEmpty>
32
+
33
+ {element.data?.map((emoji: any) => (
34
+ <InlineComboboxItem
35
+ key={emoji.id}
36
+ keywords={emoji.keywords}
37
+ label={emoji.name}
38
+ value={emoji.id}>
39
+ <span className="mr-2">{emoji.skins?.[0]?.native}</span>
40
+ {emoji.name}
41
+ </InlineComboboxItem>
42
+ ))}
43
+ </InlineComboboxContent>
44
+ </InlineCombobox>
45
+ {props.children}
46
+ </PlateElement>
47
+ );
48
+ }