@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,57 @@
1
+ {
2
+ "toolbar": {
3
+ "bold": "Krepko",
4
+ "italic": "Ležeče",
5
+ "underline": "Podčrtano",
6
+ "strikethrough": "Prečrtano",
7
+ "code": "Koda",
8
+ "heading1": "Naslov 1",
9
+ "heading2": "Naslov 2",
10
+ "heading3": "Naslov 3",
11
+ "bulletList": "Seznam z oznakami",
12
+ "numberedList": "Oštevilčen seznam",
13
+ "todoList": "Seznam opravil",
14
+ "blockquote": "Citat",
15
+ "codeBlock": "Blok kode",
16
+ "table": "Tabela",
17
+ "image": "Slika",
18
+ "link": "Povezava",
19
+ "align_left": "Poravnaj levo",
20
+ "align_center": "Na sredino",
21
+ "align_right": "Poravnaj desno",
22
+ "undo": "Razveljavi",
23
+ "redo": "Uveljavi"
24
+ },
25
+ "slash": {
26
+ "placeholder": "Vnesite ukaz...",
27
+ "noResults": "Ni rezultatov",
28
+ "groups": {
29
+ "basic": "Osnovni bloki",
30
+ "media": "Mediji",
31
+ "advanced": "Napredno"
32
+ }
33
+ },
34
+ "ai": {
35
+ "placeholder": "Prosite AI, da uredi ali ustvari...",
36
+ "generating": "Ustvarjanje...",
37
+ "improve": "Izboljšaj pisanje",
38
+ "simplify": "Poenostavi",
39
+ "expand": "Podaljšaj",
40
+ "summarize": "Povzemi",
41
+ "translate": "Prevedi",
42
+ "fixGrammar": "Popravi slovnico"
43
+ },
44
+ "media": {
45
+ "upload": "Naloži",
46
+ "embedLink": "Vdelaj povezavo",
47
+ "maxSize": "Največja velikost datoteke: 5MB",
48
+ "uploadImage": "Naloži sliko",
49
+ "uploadVideo": "Naloži video",
50
+ "uploadAudio": "Naloži zvok",
51
+ "uploadFile": "Naloži datoteko"
52
+ },
53
+ "placeholder": {
54
+ "paragraph": "Vnesite '/' za ukaze...",
55
+ "heading": "Naslov"
56
+ }
57
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "toolbar": {
3
+ "bold": "Kalın",
4
+ "italic": "İtalik",
5
+ "underline": "Altı Çizili",
6
+ "strikethrough": "Üstü Çizili",
7
+ "code": "Kod",
8
+ "heading1": "Başlık 1",
9
+ "heading2": "Başlık 2",
10
+ "heading3": "Başlık 3",
11
+ "bulletList": "Madde İşareti Listesi",
12
+ "numberedList": "Numaralı Liste",
13
+ "todoList": "Yapılacaklar Listesi",
14
+ "blockquote": "Alıntı",
15
+ "codeBlock": "Kod Bloğu",
16
+ "table": "Tablo",
17
+ "image": "Resim",
18
+ "link": "Bağlantı",
19
+ "align_left": "Sola Hizala",
20
+ "align_center": "Ortala",
21
+ "align_right": "Sağa Hizala",
22
+ "undo": "Geri Al",
23
+ "redo": "Yinele"
24
+ },
25
+ "slash": {
26
+ "placeholder": "Komut yazın...",
27
+ "noResults": "Sonuç yok",
28
+ "groups": {
29
+ "basic": "Temel Bloklar",
30
+ "media": "Medya",
31
+ "advanced": "Gelişmiş"
32
+ }
33
+ },
34
+ "ai": {
35
+ "placeholder": "AI'dan düzenlemesini veya oluşturmasını isteyin...",
36
+ "generating": "Oluşturuluyor...",
37
+ "improve": "Yazımı iyileştir",
38
+ "simplify": "Sadeleştir",
39
+ "expand": "Uzat",
40
+ "summarize": "Özetle",
41
+ "translate": "Çevir",
42
+ "fixGrammar": "Dil bilgisini düzelt"
43
+ },
44
+ "media": {
45
+ "upload": "Yükle",
46
+ "embedLink": "Bağlantı göm",
47
+ "maxSize": "Dosya başına maksimum boyut 5MB",
48
+ "uploadImage": "Resim yükle",
49
+ "uploadVideo": "Video yükle",
50
+ "uploadAudio": "Ses yükle",
51
+ "uploadFile": "Dosya yükle"
52
+ },
53
+ "placeholder": {
54
+ "paragraph": "Komutlar için '/' yazın...",
55
+ "heading": "Başlık"
56
+ }
57
+ }
@@ -0,0 +1,59 @@
1
+ export type Locale = 'de' | 'el' | 'en' | 'es' | 'fr' | 'it' | 'pt' | 'sl' | 'tr';
2
+
3
+ export interface PlateEditorTranslations {
4
+ toolbar: {
5
+ bold: string;
6
+ italic: string;
7
+ underline: string;
8
+ strikethrough: string;
9
+ code: string;
10
+ heading1: string;
11
+ heading2: string;
12
+ heading3: string;
13
+ bulletList: string;
14
+ numberedList: string;
15
+ todoList: string;
16
+ blockquote: string;
17
+ codeBlock: string;
18
+ table: string;
19
+ image: string;
20
+ link: string;
21
+ align_left: string;
22
+ align_center: string;
23
+ align_right: string;
24
+ undo: string;
25
+ redo: string;
26
+ };
27
+ slash: {
28
+ placeholder: string;
29
+ noResults: string;
30
+ groups: {
31
+ basic: string;
32
+ media: string;
33
+ advanced: string;
34
+ };
35
+ };
36
+ ai: {
37
+ placeholder: string;
38
+ generating: string;
39
+ improve: string;
40
+ simplify: string;
41
+ expand: string;
42
+ summarize: string;
43
+ translate: string;
44
+ fixGrammar: string;
45
+ };
46
+ media: {
47
+ upload: string;
48
+ embedLink: string;
49
+ maxSize: string;
50
+ uploadImage: string;
51
+ uploadVideo: string;
52
+ uploadAudio: string;
53
+ uploadFile: string;
54
+ };
55
+ placeholder: {
56
+ paragraph: string;
57
+ heading: string;
58
+ };
59
+ }
@@ -0,0 +1,22 @@
1
+ import { usePlateEditorI18n } from './context';
2
+
3
+ export function usePlateEditorTranslation() {
4
+ const { translations, locale } = usePlateEditorI18n();
5
+
6
+ const t = (key: string): string => {
7
+ const keys = key.split('.');
8
+ let value: unknown = translations;
9
+
10
+ for (const k of keys) {
11
+ if (value && typeof value === 'object' && k in value) {
12
+ value = (value as Record<string, unknown>)[k];
13
+ } else {
14
+ return key; // Fallback to key
15
+ }
16
+ }
17
+
18
+ return typeof value === 'string' ? value : key;
19
+ };
20
+
21
+ return { t, locale };
22
+ }
@@ -0,0 +1,39 @@
1
+ // Core editor
2
+ export { PlateEditor } from './editor/plate-editor';
3
+ export type { PlateEditorProps, PlateEditorHandle } from './editor/plate-editor';
4
+ export { EditorKit, useEditor } from './editor/editor-kit';
5
+ export type { MyEditor } from './editor/editor-kit';
6
+
7
+ // Transforms
8
+ export { insertBlock, setBlockType, getBlockType } from './editor/transforms';
9
+
10
+ // Re-export platejs core types for consumers
11
+ export type { Value } from 'platejs';
12
+
13
+ // Types
14
+ export type {
15
+ MyBlockElement,
16
+ MyBlockquoteElement,
17
+ MyCodeBlockElement,
18
+ MyCodeLineElement,
19
+ MyH1Element,
20
+ MyH2Element,
21
+ MyH3Element,
22
+ MyHrElement,
23
+ MyImageElement,
24
+ MyLinkElement,
25
+ MyMentionElement,
26
+ MyNestableBlock,
27
+ MyParagraphElement,
28
+ MyTableCellElement,
29
+ MyTableElement,
30
+ MyTableRowElement,
31
+ MyTextBlockElement,
32
+ MyToggleElement,
33
+ MyValue,
34
+ RichText
35
+ } from './editor/plate-types';
36
+
37
+ // UI Components
38
+ export { Editor, EditorContainer } from './plate-ui/editor';
39
+ export type { EditorProps } from './plate-ui/editor';
@@ -0,0 +1,153 @@
1
+ /**
2
+ * AI Output to Plate.js Value Converter
3
+ *
4
+ * Converts AI structured output (conforming to plate-editor-openai-schema.json)
5
+ * to Plate.js document format (Value array).
6
+ *
7
+ * Since the AI schema is designed to directly match Plate.js element structure,
8
+ * the conversion is primarily validation and pass-through with cleanup of null values.
9
+ */
10
+
11
+ /** AI structured output root shape */
12
+ export interface AIDocumentOutput {
13
+ title: string;
14
+ description: string;
15
+ assumptions?: string[] | null;
16
+ warnings?: string[] | null;
17
+ document: PlateBlockElement[];
18
+ }
19
+
20
+ /** Supported block element types */
21
+ type PlateBlockType
22
+ = | 'p'
23
+ | 'h1'
24
+ | 'h2'
25
+ | 'h3'
26
+ | 'blockquote'
27
+ | 'code_block'
28
+ | 'table'
29
+ | 'callout'
30
+ | 'toggle'
31
+ | 'column_group'
32
+ | 'img'
33
+ | 'video'
34
+ | 'audio'
35
+ | 'media_embed'
36
+ | 'equation'
37
+ | 'hr'
38
+ | 'toc';
39
+
40
+ /** Generic block element from AI output */
41
+ interface PlateBlockElement {
42
+ type: PlateBlockType;
43
+ children: unknown[];
44
+ [key: string]: unknown;
45
+ }
46
+
47
+ /**
48
+ * Convert AI structured output to Plate.js Value (document array).
49
+ *
50
+ * The AI output document array already matches Plate.js format, so this
51
+ * function validates the structure and cleans up null/undefined values
52
+ * that the AI might produce from optional schema fields.
53
+ *
54
+ * @param output - AI structured output conforming to the schema
55
+ * @returns Plate.js Value array ready to be used as editor content
56
+ */
57
+ export function aiOutputToPlate(output: AIDocumentOutput): unknown[] {
58
+ if (!output?.document || !Array.isArray(output.document)) {
59
+ // Fallback: create a minimal document from title/description
60
+ return [
61
+ {
62
+ type: 'h1',
63
+ children: [{ text: output?.title || 'Untitled' }]
64
+ },
65
+ {
66
+ type: 'p',
67
+ children: [{ text: output?.description || '' }]
68
+ }
69
+ ];
70
+ }
71
+
72
+ // Clean null values from each element recursively
73
+ return output.document.map(element => cleanElement(element));
74
+ }
75
+
76
+ /**
77
+ * Recursively clean null/undefined optional properties from an element.
78
+ * OpenAI structured output may include explicit null for optional fields.
79
+ */
80
+ function cleanElement(element: unknown): unknown {
81
+ if (element === null || element === undefined) return element;
82
+ if (typeof element !== 'object') return element;
83
+
84
+ if (Array.isArray(element)) {
85
+ return element.map(item => cleanElement(item));
86
+ }
87
+
88
+ const obj = element as Record<string, unknown>;
89
+ const cleaned: Record<string, unknown> = {};
90
+
91
+ for (const [key, value] of Object.entries(obj)) {
92
+ // Skip null optional properties to keep Plate.js objects clean
93
+ if (value === null || value === undefined) continue;
94
+
95
+ if (key === 'children' && Array.isArray(value)) {
96
+ cleaned[key] = value.map(child => cleanElement(child));
97
+ } else if (typeof value === 'object' && !Array.isArray(value)) {
98
+ cleaned[key] = cleanElement(value);
99
+ } else if (Array.isArray(value)) {
100
+ cleaned[key] = value.map(item => cleanElement(item));
101
+ } else {
102
+ cleaned[key] = value;
103
+ }
104
+ }
105
+
106
+ return cleaned;
107
+ }
108
+
109
+ /**
110
+ * Validate that an unknown value conforms to the AIDocumentOutput structure.
111
+ *
112
+ * @param output - Unknown value to validate
113
+ * @returns Type predicate indicating valid AIDocumentOutput
114
+ */
115
+ export function isValidPlateOutput(output: unknown): output is AIDocumentOutput {
116
+ if (!output || typeof output !== 'object') return false;
117
+
118
+ const doc = output as Record<string, unknown>;
119
+
120
+ if (typeof doc.title !== 'string') return false;
121
+ if (typeof doc.description !== 'string') return false;
122
+ if (!Array.isArray(doc.document)) return false;
123
+
124
+ // Validate each top-level element has type and children
125
+ return doc.document.every((element: unknown) => {
126
+ if (!element || typeof element !== 'object') return false;
127
+
128
+ const el = element as Record<string, unknown>;
129
+
130
+ return typeof el.type === 'string' && Array.isArray(el.children);
131
+ });
132
+ }
133
+
134
+ /**
135
+ * Extract metadata from AI output (title, description, assumptions, warnings).
136
+ * Useful for displaying document info in the UI without parsing the full document.
137
+ *
138
+ * @param output - AI structured output
139
+ * @returns Metadata object
140
+ */
141
+ export function extractMetadata(output: AIDocumentOutput): {
142
+ title: string;
143
+ description: string;
144
+ assumptions: string[];
145
+ warnings: string[];
146
+ } {
147
+ return {
148
+ title: output.title || 'Untitled',
149
+ description: output.description || '',
150
+ assumptions: output.assumptions ?? [],
151
+ warnings: output.warnings ?? []
152
+ };
153
+ }
@@ -0,0 +1,17 @@
1
+ export const downloadFile = async (url: string, filename: string) => {
2
+ const response = await fetch(url);
3
+
4
+ const blob = await response.blob();
5
+ const blobUrl = window.URL.createObjectURL(blob);
6
+
7
+ const link = document.createElement('a');
8
+
9
+ link.href = blobUrl;
10
+ link.download = filename;
11
+ document.body.append(link);
12
+ link.click();
13
+ link.remove();
14
+
15
+ // Clean up the blob URL
16
+ window.URL.revokeObjectURL(blobUrl);
17
+ };
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+
3
+ import { memo } from 'react';
4
+
5
+ import * as React from 'react';
6
+
7
+ import { useAIChatEditor } from '@platejs/ai/react';
8
+ import { usePlateEditor } from 'platejs/react';
9
+
10
+ import { EditorStatic } from './editor-static';
11
+
12
+ import { EditorKit } from '../editor/editor-kit';
13
+
14
+ export const AIChatEditor = memo(({
15
+ content
16
+ }: {
17
+ content: string;
18
+ }) => {
19
+ const aiEditor = usePlateEditor({
20
+ plugins: EditorKit
21
+ });
22
+
23
+ const value = useAIChatEditor(aiEditor, content);
24
+
25
+ return <EditorStatic editor={aiEditor} value={value} variant="aiChat" />;
26
+ });