@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.
- package/dist/index.js +26161 -0
- package/dist/index.js.map +1 -0
- package/package.json +155 -0
- package/src/components/assistant-animations.tsx +29 -0
- package/src/components/assistant-dialogs.tsx +235 -0
- package/src/components/code-view.tsx +278 -0
- package/src/components/create-agent-task.tsx +104 -0
- package/src/components/create-new-work-version.tsx +30 -0
- package/src/components/extract-web.tsx +160 -0
- package/src/components/forward-to-agent.tsx +90 -0
- package/src/components/generate-chart.tsx +101 -0
- package/src/components/generative-action-button.tsx +122 -0
- package/src/components/generative-tool.tsx +685 -0
- package/src/components/generative-ui-object.tsx +210 -0
- package/src/components/input-area.tsx +1209 -0
- package/src/components/json-schema-layout.tsx +326 -0
- package/src/components/list-item-card.tsx +92 -0
- package/src/components/mermaid-diagram.tsx +192 -0
- package/src/components/preview-image.tsx +47 -0
- package/src/components/request-approval.tsx +48 -0
- package/src/components/request-user-input.tsx +270 -0
- package/src/components/search-web.tsx +319 -0
- package/src/components/sheet-command.tsx +88 -0
- package/src/components/shell-canvas.tsx +122 -0
- package/src/components/show-advanced-data-table.tsx +352 -0
- package/src/components/show-generated-content-options.tsx +93 -0
- package/src/components/show-people-cards.tsx +180 -0
- package/src/components/subagent-tool.tsx +180 -0
- package/src/components/text-editor-tool.tsx +328 -0
- package/src/components/work-canvas.tsx +88 -0
- package/src/components/work-card.tsx +42 -0
- package/src/declarations.d.ts +1 -0
- package/src/docy-assistant.tsx +1962 -0
- package/src/hooks/index.ts +7 -0
- package/src/hooks/use-assistant-api.ts +507 -0
- package/src/hooks/use-deployment-data.ts +162 -0
- package/src/hooks/use-project-state.ts +347 -0
- package/src/hooks/use-session-state.ts +207 -0
- package/src/hooks/use-speech-recognition.ts +137 -0
- package/src/hooks/use-ui-state.ts +185 -0
- package/src/hooks/use-works-state.ts +146 -0
- package/src/i18n/context.tsx +253 -0
- package/src/i18n/index.ts +19 -0
- package/src/i18n/locales/de.json +198 -0
- package/src/i18n/locales/el.json +198 -0
- package/src/i18n/locales/en.json +226 -0
- package/src/i18n/locales/es.json +198 -0
- package/src/i18n/locales/fr.json +198 -0
- package/src/i18n/locales/it.json +198 -0
- package/src/i18n/locales/pt.json +198 -0
- package/src/i18n/locales/sl.json +198 -0
- package/src/i18n/locales/tr.json +211 -0
- package/src/i18n/types.ts +23 -0
- package/src/i18n/use-translation.ts +17 -0
- package/src/index.ts +18 -0
- package/src/internal/plate-editor/editor/auth-context.ts +11 -0
- package/src/internal/plate-editor/editor/editor-base-kit.tsx +39 -0
- package/src/internal/plate-editor/editor/editor-kit.tsx +89 -0
- package/src/internal/plate-editor/editor/plate-editor.tsx +75 -0
- package/src/internal/plate-editor/editor/plate-types.ts +126 -0
- package/src/internal/plate-editor/editor/plugins/ai-kit.tsx +172 -0
- package/src/internal/plate-editor/editor/plugins/autoformat-kit.tsx +211 -0
- package/src/internal/plate-editor/editor/plugins/basic-blocks-base-kit.tsx +26 -0
- package/src/internal/plate-editor/editor/plugins/basic-blocks-kit.tsx +51 -0
- package/src/internal/plate-editor/editor/plugins/basic-marks-base-kit.tsx +24 -0
- package/src/internal/plate-editor/editor/plugins/basic-marks-kit.tsx +38 -0
- package/src/internal/plate-editor/editor/plugins/basic-nodes-kit.tsx +6 -0
- package/src/internal/plate-editor/editor/plugins/block-menu-kit.tsx +14 -0
- package/src/internal/plate-editor/editor/plugins/block-placeholder-kit.tsx +17 -0
- package/src/internal/plate-editor/editor/plugins/block-selection-kit.tsx +31 -0
- package/src/internal/plate-editor/editor/plugins/callout-base-kit.tsx +5 -0
- package/src/internal/plate-editor/editor/plugins/callout-kit.tsx +7 -0
- package/src/internal/plate-editor/editor/plugins/code-block-base-kit.tsx +23 -0
- package/src/internal/plate-editor/editor/plugins/code-block-kit.tsx +26 -0
- package/src/internal/plate-editor/editor/plugins/column-base-kit.tsx +8 -0
- package/src/internal/plate-editor/editor/plugins/column-kit.tsx +7 -0
- package/src/internal/plate-editor/editor/plugins/comment-base-kit.tsx +5 -0
- package/src/internal/plate-editor/editor/plugins/comment-kit.tsx +174 -0
- package/src/internal/plate-editor/editor/plugins/copilot-kit.tsx +68 -0
- package/src/internal/plate-editor/editor/plugins/cursor-overlay-kit.tsx +13 -0
- package/src/internal/plate-editor/editor/plugins/date-base-kit.tsx +5 -0
- package/src/internal/plate-editor/editor/plugins/date-kit.tsx +7 -0
- package/src/internal/plate-editor/editor/plugins/discussion-kit.tsx +36 -0
- package/src/internal/plate-editor/editor/plugins/dnd-kit.tsx +27 -0
- package/src/internal/plate-editor/editor/plugins/docx-export-kit.tsx +43 -0
- package/src/internal/plate-editor/editor/plugins/docx-kit.tsx +6 -0
- package/src/internal/plate-editor/editor/plugins/emoji-kit.tsx +15 -0
- package/src/internal/plate-editor/editor/plugins/exit-break-kit.tsx +12 -0
- package/src/internal/plate-editor/editor/plugins/floating-toolbar-kit.tsx +19 -0
- package/src/internal/plate-editor/editor/plugins/font-base-kit.tsx +36 -0
- package/src/internal/plate-editor/editor/plugins/font-kit.tsx +47 -0
- package/src/internal/plate-editor/editor/plugins/indent-base-kit.tsx +19 -0
- package/src/internal/plate-editor/editor/plugins/indent-kit.tsx +22 -0
- package/src/internal/plate-editor/editor/plugins/link-base-kit.tsx +5 -0
- package/src/internal/plate-editor/editor/plugins/link-kit.tsx +35 -0
- package/src/internal/plate-editor/editor/plugins/list-base-kit.tsx +24 -0
- package/src/internal/plate-editor/editor/plugins/list-kit.tsx +27 -0
- package/src/internal/plate-editor/editor/plugins/markdown-kit.tsx +18 -0
- package/src/internal/plate-editor/editor/plugins/math-base-kit.tsx +8 -0
- package/src/internal/plate-editor/editor/plugins/math-kit.tsx +10 -0
- package/src/internal/plate-editor/editor/plugins/media-base-kit.tsx +37 -0
- package/src/internal/plate-editor/editor/plugins/media-kit.tsx +53 -0
- package/src/internal/plate-editor/editor/plugins/mention-base-kit.tsx +5 -0
- package/src/internal/plate-editor/editor/plugins/mention-kit.tsx +36 -0
- package/src/internal/plate-editor/editor/plugins/slash-kit.tsx +17 -0
- package/src/internal/plate-editor/editor/plugins/suggestion-base-kit.tsx +5 -0
- package/src/internal/plate-editor/editor/plugins/suggestion-kit.tsx +95 -0
- package/src/internal/plate-editor/editor/plugins/table-base-kit.tsx +20 -0
- package/src/internal/plate-editor/editor/plugins/table-kit.tsx +22 -0
- package/src/internal/plate-editor/editor/plugins/toc-base-kit.tsx +5 -0
- package/src/internal/plate-editor/editor/plugins/toc-kit.tsx +14 -0
- package/src/internal/plate-editor/editor/plugins/toggle-base-kit.tsx +5 -0
- package/src/internal/plate-editor/editor/plugins/toggle-kit.tsx +9 -0
- package/src/internal/plate-editor/editor/transforms.ts +165 -0
- package/src/internal/plate-editor/editor/use-chat.ts +152 -0
- package/src/internal/plate-editor/hooks/index.ts +3 -0
- package/src/internal/plate-editor/hooks/use-copy-to-clipboard.ts +31 -0
- package/src/internal/plate-editor/hooks/use-is-touch-device.ts +26 -0
- package/src/internal/plate-editor/hooks/use-lock-scroll.ts +21 -0
- package/src/internal/plate-editor/hooks/use-media-query.ts +44 -0
- package/src/internal/plate-editor/hooks/use-mounted.ts +18 -0
- package/src/internal/plate-editor/hooks/use-on-click-outside.ts +114 -0
- package/src/internal/plate-editor/hooks/use-upload-file.ts +81 -0
- package/src/internal/plate-editor/i18n/context.tsx +58 -0
- package/src/internal/plate-editor/i18n/index.ts +3 -0
- package/src/internal/plate-editor/i18n/locales/de.json +57 -0
- package/src/internal/plate-editor/i18n/locales/el.json +57 -0
- package/src/internal/plate-editor/i18n/locales/en.json +57 -0
- package/src/internal/plate-editor/i18n/locales/es.json +57 -0
- package/src/internal/plate-editor/i18n/locales/fr.json +57 -0
- package/src/internal/plate-editor/i18n/locales/it.json +57 -0
- package/src/internal/plate-editor/i18n/locales/pt.json +57 -0
- package/src/internal/plate-editor/i18n/locales/sl.json +57 -0
- package/src/internal/plate-editor/i18n/locales/tr.json +57 -0
- package/src/internal/plate-editor/i18n/types.ts +59 -0
- package/src/internal/plate-editor/i18n/use-translation.ts +22 -0
- package/src/internal/plate-editor/index.ts +39 -0
- package/src/internal/plate-editor/lib/ai-output-converter.ts +153 -0
- package/src/internal/plate-editor/lib/download-file.ts +17 -0
- package/src/internal/plate-editor/plate-ui/ai-chat-editor.tsx +26 -0
- package/src/internal/plate-editor/plate-ui/ai-menu.tsx +828 -0
- package/src/internal/plate-editor/plate-ui/ai-node.tsx +41 -0
- package/src/internal/plate-editor/plate-ui/ai-toolbar-button.tsx +27 -0
- package/src/internal/plate-editor/plate-ui/alert-dialog.tsx +147 -0
- package/src/internal/plate-editor/plate-ui/align-toolbar-button.tsx +90 -0
- package/src/internal/plate-editor/plate-ui/avatar.tsx +3 -0
- package/src/internal/plate-editor/plate-ui/block-context-menu.tsx +106 -0
- package/src/internal/plate-editor/plate-ui/block-discussion.tsx +364 -0
- package/src/internal/plate-editor/plate-ui/block-draggable.tsx +556 -0
- package/src/internal/plate-editor/plate-ui/block-list-static.tsx +78 -0
- package/src/internal/plate-editor/plate-ui/block-list.tsx +85 -0
- package/src/internal/plate-editor/plate-ui/block-menu.tsx +557 -0
- package/src/internal/plate-editor/plate-ui/block-selection.tsx +47 -0
- package/src/internal/plate-editor/plate-ui/block-suggestion.tsx +469 -0
- package/src/internal/plate-editor/plate-ui/blockquote-node-static.tsx +10 -0
- package/src/internal/plate-editor/plate-ui/blockquote-node.tsx +11 -0
- package/src/internal/plate-editor/plate-ui/button.tsx +190 -0
- package/src/internal/plate-editor/plate-ui/calendar.tsx +3 -0
- package/src/internal/plate-editor/plate-ui/callout-node-static.tsx +76 -0
- package/src/internal/plate-editor/plate-ui/callout-node.tsx +54 -0
- package/src/internal/plate-editor/plate-ui/caption.tsx +48 -0
- package/src/internal/plate-editor/plate-ui/checkbox.tsx +3 -0
- package/src/internal/plate-editor/plate-ui/code-block-node-static.tsx +172 -0
- package/src/internal/plate-editor/plate-ui/code-block-node.tsx +228 -0
- package/src/internal/plate-editor/plate-ui/code-node-static.tsx +11 -0
- package/src/internal/plate-editor/plate-ui/code-node.tsx +12 -0
- package/src/internal/plate-editor/plate-ui/column-node-static.tsx +65 -0
- package/src/internal/plate-editor/plate-ui/column-node.tsx +24 -0
- package/src/internal/plate-editor/plate-ui/command.tsx +204 -0
- package/src/internal/plate-editor/plate-ui/comment-node-static.tsx +12 -0
- package/src/internal/plate-editor/plate-ui/comment-node.tsx +45 -0
- package/src/internal/plate-editor/plate-ui/comment-toolbar-button.tsx +24 -0
- package/src/internal/plate-editor/plate-ui/comment.tsx +619 -0
- package/src/internal/plate-editor/plate-ui/cursor-overlay.tsx +85 -0
- package/src/internal/plate-editor/plate-ui/date-node-static.tsx +43 -0
- package/src/internal/plate-editor/plate-ui/date-node.tsx +56 -0
- package/src/internal/plate-editor/plate-ui/dialog.tsx +426 -0
- package/src/internal/plate-editor/plate-ui/dropdown-menu.tsx +266 -0
- package/src/internal/plate-editor/plate-ui/editor-static.tsx +40 -0
- package/src/internal/plate-editor/plate-ui/editor.tsx +148 -0
- package/src/internal/plate-editor/plate-ui/emoji-node.tsx +48 -0
- package/src/internal/plate-editor/plate-ui/emoji-toolbar-button.tsx +626 -0
- package/src/internal/plate-editor/plate-ui/equation-node-static.tsx +155 -0
- package/src/internal/plate-editor/plate-ui/equation-node.tsx +226 -0
- package/src/internal/plate-editor/plate-ui/equation-toolbar-button.tsx +26 -0
- package/src/internal/plate-editor/plate-ui/export-toolbar-button.tsx +208 -0
- package/src/internal/plate-editor/plate-ui/fixed-toolbar-buttons.tsx +157 -0
- package/src/internal/plate-editor/plate-ui/fixed-toolbar.tsx +27 -0
- package/src/internal/plate-editor/plate-ui/floating-discussion.tsx +1129 -0
- package/src/internal/plate-editor/plate-ui/floating-toolbar-buttons.tsx +129 -0
- package/src/internal/plate-editor/plate-ui/floating-toolbar.tsx +99 -0
- package/src/internal/plate-editor/plate-ui/font-color-toolbar-button.tsx +211 -0
- package/src/internal/plate-editor/plate-ui/font-size-toolbar-button.tsx +154 -0
- package/src/internal/plate-editor/plate-ui/ghost-text.tsx +20 -0
- package/src/internal/plate-editor/plate-ui/heading-node-static.tsx +52 -0
- package/src/internal/plate-editor/plate-ui/heading-node.tsx +56 -0
- package/src/internal/plate-editor/plate-ui/highlight-node-static.tsx +9 -0
- package/src/internal/plate-editor/plate-ui/highlight-node.tsx +11 -0
- package/src/internal/plate-editor/plate-ui/history-toolbar-button.tsx +52 -0
- package/src/internal/plate-editor/plate-ui/hover-card.tsx +7 -0
- package/src/internal/plate-editor/plate-ui/hr-node-static.tsx +18 -0
- package/src/internal/plate-editor/plate-ui/hr-node.tsx +28 -0
- package/src/internal/plate-editor/plate-ui/import-toolbar-button.tsx +124 -0
- package/src/internal/plate-editor/plate-ui/indent-toolbar-button.tsx +34 -0
- package/src/internal/plate-editor/plate-ui/inline-combobox.tsx +409 -0
- package/src/internal/plate-editor/plate-ui/input.tsx +39 -0
- package/src/internal/plate-editor/plate-ui/insert-toolbar-button.tsx +260 -0
- package/src/internal/plate-editor/plate-ui/label.tsx +1 -0
- package/src/internal/plate-editor/plate-ui/line-height-toolbar-button.tsx +71 -0
- package/src/internal/plate-editor/plate-ui/link-node-static.tsx +15 -0
- package/src/internal/plate-editor/plate-ui/link-node.tsx +33 -0
- package/src/internal/plate-editor/plate-ui/link-toolbar-button.tsx +30 -0
- package/src/internal/plate-editor/plate-ui/link-toolbar.tsx +149 -0
- package/src/internal/plate-editor/plate-ui/list-toolbar-button.tsx +179 -0
- package/src/internal/plate-editor/plate-ui/mark-toolbar-button.tsx +36 -0
- package/src/internal/plate-editor/plate-ui/media-audio-node-static.tsx +21 -0
- package/src/internal/plate-editor/plate-ui/media-audio-node.tsx +32 -0
- package/src/internal/plate-editor/plate-ui/media-embed-node.tsx +103 -0
- package/src/internal/plate-editor/plate-ui/media-file-node-static.tsx +30 -0
- package/src/internal/plate-editor/plate-ui/media-file-node.tsx +52 -0
- package/src/internal/plate-editor/plate-ui/media-image-node-static.tsx +37 -0
- package/src/internal/plate-editor/plate-ui/media-image-node.tsx +183 -0
- package/src/internal/plate-editor/plate-ui/media-placeholder-node.tsx +441 -0
- package/src/internal/plate-editor/plate-ui/media-preview-dialog.tsx +127 -0
- package/src/internal/plate-editor/plate-ui/media-toolbar-button.tsx +229 -0
- package/src/internal/plate-editor/plate-ui/media-toolbar.tsx +216 -0
- package/src/internal/plate-editor/plate-ui/media-upload-toast.tsx +73 -0
- package/src/internal/plate-editor/plate-ui/media-video-node-static.tsx +35 -0
- package/src/internal/plate-editor/plate-ui/media-video-node.tsx +119 -0
- package/src/internal/plate-editor/plate-ui/mention-node-static.tsx +46 -0
- package/src/internal/plate-editor/plate-ui/mention-node.tsx +79 -0
- package/src/internal/plate-editor/plate-ui/menu.tsx +532 -0
- package/src/internal/plate-editor/plate-ui/mode-toolbar-button.tsx +126 -0
- package/src/internal/plate-editor/plate-ui/more-toolbar-button.tsx +34 -0
- package/src/internal/plate-editor/plate-ui/paragraph-node-static.tsx +15 -0
- package/src/internal/plate-editor/plate-ui/paragraph-node.tsx +16 -0
- package/src/internal/plate-editor/plate-ui/popover.tsx +77 -0
- package/src/internal/plate-editor/plate-ui/progress.tsx +1 -0
- package/src/internal/plate-editor/plate-ui/remote-cursor-overlay.tsx +81 -0
- package/src/internal/plate-editor/plate-ui/resize-handle.tsx +88 -0
- package/src/internal/plate-editor/plate-ui/separator.tsx +43 -0
- package/src/internal/plate-editor/plate-ui/slash-node.tsx +435 -0
- package/src/internal/plate-editor/plate-ui/spinner.tsx +1 -0
- package/src/internal/plate-editor/plate-ui/suggestion-node-static.tsx +35 -0
- package/src/internal/plate-editor/plate-ui/suggestion-node.tsx +168 -0
- package/src/internal/plate-editor/plate-ui/suggestion-toolbar-button.tsx +24 -0
- package/src/internal/plate-editor/plate-ui/table-node-static.tsx +85 -0
- package/src/internal/plate-editor/plate-ui/table-node.tsx +285 -0
- package/src/internal/plate-editor/plate-ui/table-toolbar-button.tsx +254 -0
- package/src/internal/plate-editor/plate-ui/tabs.tsx +3 -0
- package/src/internal/plate-editor/plate-ui/textarea.tsx +58 -0
- package/src/internal/plate-editor/plate-ui/toc-node-static.tsx +142 -0
- package/src/internal/plate-editor/plate-ui/toc-node.tsx +57 -0
- package/src/internal/plate-editor/plate-ui/toc-sidebar.tsx +50 -0
- package/src/internal/plate-editor/plate-ui/toggle-node-static.tsx +18 -0
- package/src/internal/plate-editor/plate-ui/toggle-node.tsx +33 -0
- package/src/internal/plate-editor/plate-ui/toggle-toolbar-button.tsx +26 -0
- package/src/internal/plate-editor/plate-ui/toggle.tsx +3 -0
- package/src/internal/plate-editor/plate-ui/toolbar.tsx +380 -0
- package/src/internal/plate-editor/plate-ui/tooltip.tsx +149 -0
- package/src/internal/plate-editor/plate-ui/turn-into-toolbar-button.tsx +177 -0
- package/src/internal/plate-editor/types/index.ts +22 -0
- package/src/internal/plate-editor/vite.ts +284 -0
- package/src/internal/sheets/components/univer-sheets.tsx +1104 -0
- package/src/internal/sheets/i18n/context.tsx +183 -0
- package/src/internal/sheets/i18n/index.ts +19 -0
- package/src/internal/sheets/i18n/locales/de.json +21 -0
- package/src/internal/sheets/i18n/locales/el.json +21 -0
- package/src/internal/sheets/i18n/locales/en.json +21 -0
- package/src/internal/sheets/i18n/locales/es.json +21 -0
- package/src/internal/sheets/i18n/locales/fr.json +21 -0
- package/src/internal/sheets/i18n/locales/it.json +21 -0
- package/src/internal/sheets/i18n/locales/pt.json +21 -0
- package/src/internal/sheets/i18n/locales/sl.json +21 -0
- package/src/internal/sheets/i18n/locales/tr.json +21 -0
- package/src/internal/sheets/i18n/types.ts +23 -0
- package/src/internal/sheets/i18n/use-translation.ts +17 -0
- package/src/internal/sheets/index.ts +14 -0
- package/src/internal/sheets/types/css.d.ts +11 -0
- package/src/internal/sheets/types/index.ts +260 -0
- package/src/internal/sheets/xlsx.ts +1169 -0
- package/src/lib/api-client.ts +77 -0
- package/src/lib/assistant-api-actions.ts +549 -0
- package/src/lib/assistant-config.tsx +71 -0
- package/src/lib/class-utils.ts +40 -0
- package/src/lib/index.ts +7 -0
- package/src/lib/message-utils.ts +131 -0
- package/src/tools/tools-schema.json +512 -0
- package/src/types/index.ts +235 -0
- package/src/views/assistant-view.tsx +1137 -0
- package/src/views/canvas-app.tsx +839 -0
- package/src/views/canvas-code.tsx +93 -0
- package/src/views/canvas-deep-research.tsx +44 -0
- package/src/views/canvas-image.tsx +25 -0
- package/src/views/canvas-record-view.tsx +285 -0
- package/src/views/canvas-spreadsheet.tsx +125 -0
- package/src/views/canvas-text.tsx +52 -0
- package/src/views/canvas.tsx +274 -0
- package/src/views/chat-panel.tsx +149 -0
- package/src/views/index.ts +20 -0
- package/src/views/memories-panel.tsx +365 -0
- package/src/views/message-list.tsx +370 -0
- package/src/views/project-detail.tsx +257 -0
- package/src/views/projects-panel.tsx +131 -0
- package/src/views/sessions-list.tsx +98 -0
- package/src/views/sidebar-content.tsx +256 -0
- package/src/views/work-detail.tsx +98 -0
- package/src/vite.ts +284 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useEffect, useLayoutEffect, useRef, type RefObject
|
|
3
|
+
} from 'react';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Determines the appropriate effect hook to use based on the environment. If
|
|
7
|
+
* the code is running on the client-side (browser), it uses the
|
|
8
|
+
* `useLayoutEffect` hook, otherwise, it uses the `useEffect` hook.
|
|
9
|
+
*/
|
|
10
|
+
export const useIsomorphicLayoutEffect
|
|
11
|
+
= typeof window === 'undefined' ? useEffect : useLayoutEffect;
|
|
12
|
+
|
|
13
|
+
// MediaQueryList Event based useEventListener interface
|
|
14
|
+
export function useEventListener<K extends keyof MediaQueryListEventMap>(
|
|
15
|
+
eventName: K,
|
|
16
|
+
handler: (event: MediaQueryListEventMap[K]) => void,
|
|
17
|
+
element: RefObject<MediaQueryList>,
|
|
18
|
+
options?: AddEventListenerOptions | boolean
|
|
19
|
+
): void;
|
|
20
|
+
|
|
21
|
+
// Window Event based useEventListener interface
|
|
22
|
+
export function useEventListener<K extends keyof WindowEventMap>(
|
|
23
|
+
eventName: K,
|
|
24
|
+
handler: (event: WindowEventMap[K]) => void,
|
|
25
|
+
element?: undefined,
|
|
26
|
+
options?: AddEventListenerOptions | boolean
|
|
27
|
+
): void;
|
|
28
|
+
|
|
29
|
+
// Element Event based useEventListener interface
|
|
30
|
+
export function useEventListener<
|
|
31
|
+
K extends keyof HTMLElementEventMap,
|
|
32
|
+
T extends HTMLElement = HTMLDivElement
|
|
33
|
+
>(
|
|
34
|
+
eventName: K,
|
|
35
|
+
handler: (event: HTMLElementEventMap[K]) => void,
|
|
36
|
+
element: RefObject<T>,
|
|
37
|
+
options?: AddEventListenerOptions | boolean
|
|
38
|
+
): void;
|
|
39
|
+
|
|
40
|
+
// Document Event based useEventListener interface
|
|
41
|
+
export function useEventListener<K extends keyof DocumentEventMap>(
|
|
42
|
+
eventName: K,
|
|
43
|
+
handler: (event: DocumentEventMap[K]) => void,
|
|
44
|
+
element: RefObject<Document>,
|
|
45
|
+
options?: AddEventListenerOptions | boolean
|
|
46
|
+
): void;
|
|
47
|
+
|
|
48
|
+
// https://usehooks-ts.com/react-hook/use-event-listener
|
|
49
|
+
export function useEventListener<
|
|
50
|
+
KW extends keyof WindowEventMap,
|
|
51
|
+
KH extends keyof HTMLElementEventMap,
|
|
52
|
+
KM extends keyof MediaQueryListEventMap,
|
|
53
|
+
T extends HTMLElement | MediaQueryList | void = void
|
|
54
|
+
>(
|
|
55
|
+
eventName: KH | KM | KW,
|
|
56
|
+
handler: (
|
|
57
|
+
event:
|
|
58
|
+
| Event
|
|
59
|
+
| HTMLElementEventMap[KH]
|
|
60
|
+
| MediaQueryListEventMap[KM]
|
|
61
|
+
| WindowEventMap[KW]
|
|
62
|
+
) => void,
|
|
63
|
+
element?: RefObject<T>,
|
|
64
|
+
options?: AddEventListenerOptions | boolean
|
|
65
|
+
) {
|
|
66
|
+
// Create a ref that stores handler
|
|
67
|
+
const savedHandler = useRef(handler);
|
|
68
|
+
|
|
69
|
+
useIsomorphicLayoutEffect(() => {
|
|
70
|
+
savedHandler.current = handler;
|
|
71
|
+
}, [handler]);
|
|
72
|
+
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
// Define the listening target
|
|
75
|
+
const targetElement: T | Window = element?.current ?? window;
|
|
76
|
+
|
|
77
|
+
if (!targetElement?.addEventListener) return;
|
|
78
|
+
|
|
79
|
+
// Create event listener that calls handler function stored in ref
|
|
80
|
+
const listener: typeof handler = event => savedHandler.current(event);
|
|
81
|
+
|
|
82
|
+
targetElement.addEventListener(eventName, listener, options);
|
|
83
|
+
|
|
84
|
+
// Remove event listener on cleanup
|
|
85
|
+
return () => {
|
|
86
|
+
targetElement.removeEventListener(eventName, listener, options);
|
|
87
|
+
};
|
|
88
|
+
}, [eventName, element, options]);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
type Handler = (event: MouseEvent) => void;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Attaches an event listener to detect clicks that occur outside a given
|
|
95
|
+
* element.
|
|
96
|
+
*/
|
|
97
|
+
export const useOnClickOutside = <T extends HTMLElement = HTMLElement>(
|
|
98
|
+
ref: RefObject<T | null>,
|
|
99
|
+
handler?: Handler,
|
|
100
|
+
mouseEvent: 'mousedown' | 'mouseup' = 'mousedown'
|
|
101
|
+
): void => {
|
|
102
|
+
useEventListener(mouseEvent, (event) => {
|
|
103
|
+
if (!handler) return;
|
|
104
|
+
|
|
105
|
+
const el = ref?.current;
|
|
106
|
+
|
|
107
|
+
// Do nothing if clicking ref's element or descendent elements
|
|
108
|
+
if (!el || el.contains(event.target as Node)) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
handler(event);
|
|
113
|
+
});
|
|
114
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { useState } from 'react';
|
|
2
|
+
|
|
3
|
+
import { toast } from 'sonner';
|
|
4
|
+
|
|
5
|
+
export interface UploadedFile {
|
|
6
|
+
key: string;
|
|
7
|
+
appUrl: string;
|
|
8
|
+
name: string;
|
|
9
|
+
size: number;
|
|
10
|
+
type: string;
|
|
11
|
+
url: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
interface UseUploadFileProps {
|
|
15
|
+
defaultUploadedFiles?: UploadedFile[];
|
|
16
|
+
onUploadComplete?: (file: UploadedFile) => void;
|
|
17
|
+
onUploadError?: (error: unknown) => void;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function useUploadFile({
|
|
21
|
+
onUploadComplete,
|
|
22
|
+
onUploadError
|
|
23
|
+
}: UseUploadFileProps = {}) {
|
|
24
|
+
const [uploadedFile, setUploadedFile] = useState<UploadedFile>();
|
|
25
|
+
const [uploadingFile, setUploadingFile] = useState<File>();
|
|
26
|
+
const [progress, setProgress] = useState<number>(0);
|
|
27
|
+
const [isUploading, setIsUploading] = useState(false);
|
|
28
|
+
|
|
29
|
+
async function uploadFile(file: File) {
|
|
30
|
+
setIsUploading(true);
|
|
31
|
+
setUploadingFile(file);
|
|
32
|
+
|
|
33
|
+
try {
|
|
34
|
+
// Mock upload - replace with actual upload implementation
|
|
35
|
+
const mockUploadedFile: UploadedFile = {
|
|
36
|
+
key: `mock-key-${Date.now()}`,
|
|
37
|
+
appUrl: `https://mock-app-url.com/${file.name}`,
|
|
38
|
+
name: file.name,
|
|
39
|
+
size: file.size,
|
|
40
|
+
type: file.type,
|
|
41
|
+
url: URL.createObjectURL(file)
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
// Simulate upload progress
|
|
45
|
+
let currentProgress = 0;
|
|
46
|
+
|
|
47
|
+
const simulateProgress = async () => {
|
|
48
|
+
while (currentProgress < 100) {
|
|
49
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
50
|
+
currentProgress += 2;
|
|
51
|
+
setProgress(Math.min(currentProgress, 100));
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
await simulateProgress();
|
|
56
|
+
|
|
57
|
+
setUploadedFile(mockUploadedFile);
|
|
58
|
+
onUploadComplete?.(mockUploadedFile);
|
|
59
|
+
|
|
60
|
+
return mockUploadedFile;
|
|
61
|
+
} catch (error) {
|
|
62
|
+
const errorMessage
|
|
63
|
+
= error instanceof Error ? error.message : 'Something went wrong, please try again later.';
|
|
64
|
+
|
|
65
|
+
toast.error(errorMessage);
|
|
66
|
+
onUploadError?.(error);
|
|
67
|
+
} finally {
|
|
68
|
+
setProgress(0);
|
|
69
|
+
setIsUploading(false);
|
|
70
|
+
setUploadingFile(undefined);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return {
|
|
75
|
+
isUploading,
|
|
76
|
+
progress,
|
|
77
|
+
uploadedFile,
|
|
78
|
+
uploadFile,
|
|
79
|
+
uploadingFile
|
|
80
|
+
};
|
|
81
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { createContext, use, type ReactNode } from 'react';
|
|
4
|
+
|
|
5
|
+
import { type Locale, type PlateEditorTranslations } from './types';
|
|
6
|
+
|
|
7
|
+
// Import all locales
|
|
8
|
+
import de from './locales/de.json';
|
|
9
|
+
import el from './locales/el.json';
|
|
10
|
+
import en from './locales/en.json';
|
|
11
|
+
import es from './locales/es.json';
|
|
12
|
+
import fr from './locales/fr.json';
|
|
13
|
+
import it from './locales/it.json';
|
|
14
|
+
import pt from './locales/pt.json';
|
|
15
|
+
import sl from './locales/sl.json';
|
|
16
|
+
import tr from './locales/tr.json';
|
|
17
|
+
|
|
18
|
+
const localeMap: Record<Locale, PlateEditorTranslations> = {
|
|
19
|
+
de: de as unknown as PlateEditorTranslations,
|
|
20
|
+
el: el as unknown as PlateEditorTranslations,
|
|
21
|
+
en: en as unknown as PlateEditorTranslations,
|
|
22
|
+
es: es as unknown as PlateEditorTranslations,
|
|
23
|
+
fr: fr as unknown as PlateEditorTranslations,
|
|
24
|
+
it: it as unknown as PlateEditorTranslations,
|
|
25
|
+
pt: pt as unknown as PlateEditorTranslations,
|
|
26
|
+
sl: sl as unknown as PlateEditorTranslations,
|
|
27
|
+
tr: tr as unknown as PlateEditorTranslations
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
interface PlateEditorI18nContextValue {
|
|
31
|
+
locale: Locale;
|
|
32
|
+
translations: PlateEditorTranslations;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const PlateEditorI18nContext = createContext<PlateEditorI18nContextValue>({
|
|
36
|
+
locale: 'en',
|
|
37
|
+
translations: localeMap.en
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
export function PlateEditorI18nProvider({
|
|
41
|
+
children,
|
|
42
|
+
locale = 'en'
|
|
43
|
+
}: {
|
|
44
|
+
children: ReactNode;
|
|
45
|
+
locale?: Locale;
|
|
46
|
+
}) {
|
|
47
|
+
const translations = localeMap[locale] || localeMap.en;
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<PlateEditorI18nContext value={{ locale, translations }}>
|
|
51
|
+
{children}
|
|
52
|
+
</PlateEditorI18nContext>
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export function usePlateEditorI18n() {
|
|
57
|
+
return use(PlateEditorI18nContext);
|
|
58
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"toolbar": {
|
|
3
|
+
"bold": "Fett",
|
|
4
|
+
"italic": "Kursiv",
|
|
5
|
+
"underline": "Unterstrichen",
|
|
6
|
+
"strikethrough": "Durchgestrichen",
|
|
7
|
+
"code": "Code",
|
|
8
|
+
"heading1": "Überschrift 1",
|
|
9
|
+
"heading2": "Überschrift 2",
|
|
10
|
+
"heading3": "Überschrift 3",
|
|
11
|
+
"bulletList": "Aufzählung",
|
|
12
|
+
"numberedList": "Nummerierte Liste",
|
|
13
|
+
"todoList": "Aufgabenliste",
|
|
14
|
+
"blockquote": "Zitat",
|
|
15
|
+
"codeBlock": "Codeblock",
|
|
16
|
+
"table": "Tabelle",
|
|
17
|
+
"image": "Bild",
|
|
18
|
+
"link": "Link",
|
|
19
|
+
"align_left": "Linksbündig",
|
|
20
|
+
"align_center": "Zentriert",
|
|
21
|
+
"align_right": "Rechtsbündig",
|
|
22
|
+
"undo": "Rückgängig",
|
|
23
|
+
"redo": "Wiederholen"
|
|
24
|
+
},
|
|
25
|
+
"slash": {
|
|
26
|
+
"placeholder": "Befehl eingeben...",
|
|
27
|
+
"noResults": "Keine Ergebnisse",
|
|
28
|
+
"groups": {
|
|
29
|
+
"basic": "Grundbausteine",
|
|
30
|
+
"media": "Medien",
|
|
31
|
+
"advanced": "Erweitert"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"ai": {
|
|
35
|
+
"placeholder": "KI um Bearbeitung oder Erstellung bitten...",
|
|
36
|
+
"generating": "Wird generiert...",
|
|
37
|
+
"improve": "Text verbessern",
|
|
38
|
+
"simplify": "Vereinfachen",
|
|
39
|
+
"expand": "Verlängern",
|
|
40
|
+
"summarize": "Zusammenfassen",
|
|
41
|
+
"translate": "Übersetzen",
|
|
42
|
+
"fixGrammar": "Grammatik korrigieren"
|
|
43
|
+
},
|
|
44
|
+
"media": {
|
|
45
|
+
"upload": "Hochladen",
|
|
46
|
+
"embedLink": "Link einbetten",
|
|
47
|
+
"maxSize": "Maximale Dateigröße: 5MB",
|
|
48
|
+
"uploadImage": "Bild hochladen",
|
|
49
|
+
"uploadVideo": "Video hochladen",
|
|
50
|
+
"uploadAudio": "Audio hochladen",
|
|
51
|
+
"uploadFile": "Datei hochladen"
|
|
52
|
+
},
|
|
53
|
+
"placeholder": {
|
|
54
|
+
"paragraph": "'/' für Befehle eingeben...",
|
|
55
|
+
"heading": "Überschrift"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"toolbar": {
|
|
3
|
+
"bold": "Έντονα",
|
|
4
|
+
"italic": "Πλάγια",
|
|
5
|
+
"underline": "Υπογράμμιση",
|
|
6
|
+
"strikethrough": "Διαγράμμιση",
|
|
7
|
+
"code": "Κώδικας",
|
|
8
|
+
"heading1": "Επικεφαλίδα 1",
|
|
9
|
+
"heading2": "Επικεφαλίδα 2",
|
|
10
|
+
"heading3": "Επικεφαλίδα 3",
|
|
11
|
+
"bulletList": "Λίστα με κουκκίδες",
|
|
12
|
+
"numberedList": "Αριθμημένη λίστα",
|
|
13
|
+
"todoList": "Λίστα εργασιών",
|
|
14
|
+
"blockquote": "Παράθεση",
|
|
15
|
+
"codeBlock": "Μπλοκ κώδικα",
|
|
16
|
+
"table": "Πίνακας",
|
|
17
|
+
"image": "Εικόνα",
|
|
18
|
+
"link": "Σύνδεσμος",
|
|
19
|
+
"align_left": "Αριστερά",
|
|
20
|
+
"align_center": "Κέντρο",
|
|
21
|
+
"align_right": "Δεξιά",
|
|
22
|
+
"undo": "Αναίρεση",
|
|
23
|
+
"redo": "Επανάληψη"
|
|
24
|
+
},
|
|
25
|
+
"slash": {
|
|
26
|
+
"placeholder": "Πληκτρολογήστε εντολή...",
|
|
27
|
+
"noResults": "Χωρίς αποτελέσματα",
|
|
28
|
+
"groups": {
|
|
29
|
+
"basic": "Βασικά μπλοκ",
|
|
30
|
+
"media": "Πολυμέσα",
|
|
31
|
+
"advanced": "Προηγμένα"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"ai": {
|
|
35
|
+
"placeholder": "Ζητήστε από το AI να επεξεργαστεί ή να δημιουργήσει...",
|
|
36
|
+
"generating": "Δημιουργία...",
|
|
37
|
+
"improve": "Βελτίωση γραφής",
|
|
38
|
+
"simplify": "Απλοποίηση",
|
|
39
|
+
"expand": "Επέκταση",
|
|
40
|
+
"summarize": "Σύνοψη",
|
|
41
|
+
"translate": "Μετάφραση",
|
|
42
|
+
"fixGrammar": "Διόρθωση γραμματικής"
|
|
43
|
+
},
|
|
44
|
+
"media": {
|
|
45
|
+
"upload": "Μεταφόρτωση",
|
|
46
|
+
"embedLink": "Ενσωμάτωση συνδέσμου",
|
|
47
|
+
"maxSize": "Μέγιστο μέγεθος αρχείου 5MB",
|
|
48
|
+
"uploadImage": "Μεταφόρτωση εικόνας",
|
|
49
|
+
"uploadVideo": "Μεταφόρτωση βίντεο",
|
|
50
|
+
"uploadAudio": "Μεταφόρτωση ήχου",
|
|
51
|
+
"uploadFile": "Μεταφόρτωση αρχείου"
|
|
52
|
+
},
|
|
53
|
+
"placeholder": {
|
|
54
|
+
"paragraph": "Πληκτρολογήστε '/' για εντολές...",
|
|
55
|
+
"heading": "Επικεφαλίδα"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"toolbar": {
|
|
3
|
+
"bold": "Bold",
|
|
4
|
+
"italic": "Italic",
|
|
5
|
+
"underline": "Underline",
|
|
6
|
+
"strikethrough": "Strikethrough",
|
|
7
|
+
"code": "Code",
|
|
8
|
+
"heading1": "Heading 1",
|
|
9
|
+
"heading2": "Heading 2",
|
|
10
|
+
"heading3": "Heading 3",
|
|
11
|
+
"bulletList": "Bullet List",
|
|
12
|
+
"numberedList": "Numbered List",
|
|
13
|
+
"todoList": "To-do List",
|
|
14
|
+
"blockquote": "Blockquote",
|
|
15
|
+
"codeBlock": "Code Block",
|
|
16
|
+
"table": "Table",
|
|
17
|
+
"image": "Image",
|
|
18
|
+
"link": "Link",
|
|
19
|
+
"align_left": "Align Left",
|
|
20
|
+
"align_center": "Align Center",
|
|
21
|
+
"align_right": "Align Right",
|
|
22
|
+
"undo": "Undo",
|
|
23
|
+
"redo": "Redo"
|
|
24
|
+
},
|
|
25
|
+
"slash": {
|
|
26
|
+
"placeholder": "Type a command...",
|
|
27
|
+
"noResults": "No results",
|
|
28
|
+
"groups": {
|
|
29
|
+
"basic": "Basic Blocks",
|
|
30
|
+
"media": "Media",
|
|
31
|
+
"advanced": "Advanced"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"ai": {
|
|
35
|
+
"placeholder": "Ask AI to edit or generate...",
|
|
36
|
+
"generating": "Generating...",
|
|
37
|
+
"improve": "Improve writing",
|
|
38
|
+
"simplify": "Simplify",
|
|
39
|
+
"expand": "Make longer",
|
|
40
|
+
"summarize": "Summarize",
|
|
41
|
+
"translate": "Translate",
|
|
42
|
+
"fixGrammar": "Fix grammar"
|
|
43
|
+
},
|
|
44
|
+
"media": {
|
|
45
|
+
"upload": "Upload",
|
|
46
|
+
"embedLink": "Embed link",
|
|
47
|
+
"maxSize": "The maximum size per file is 5MB",
|
|
48
|
+
"uploadImage": "Upload image",
|
|
49
|
+
"uploadVideo": "Upload video",
|
|
50
|
+
"uploadAudio": "Upload audio",
|
|
51
|
+
"uploadFile": "Upload file"
|
|
52
|
+
},
|
|
53
|
+
"placeholder": {
|
|
54
|
+
"paragraph": "Type '/' for commands...",
|
|
55
|
+
"heading": "Heading"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"toolbar": {
|
|
3
|
+
"bold": "Negrita",
|
|
4
|
+
"italic": "Cursiva",
|
|
5
|
+
"underline": "Subrayado",
|
|
6
|
+
"strikethrough": "Tachado",
|
|
7
|
+
"code": "Código",
|
|
8
|
+
"heading1": "Encabezado 1",
|
|
9
|
+
"heading2": "Encabezado 2",
|
|
10
|
+
"heading3": "Encabezado 3",
|
|
11
|
+
"bulletList": "Lista con viñetas",
|
|
12
|
+
"numberedList": "Lista numerada",
|
|
13
|
+
"todoList": "Lista de tareas",
|
|
14
|
+
"blockquote": "Cita",
|
|
15
|
+
"codeBlock": "Bloque de código",
|
|
16
|
+
"table": "Tabla",
|
|
17
|
+
"image": "Imagen",
|
|
18
|
+
"link": "Enlace",
|
|
19
|
+
"align_left": "Alinear a la izquierda",
|
|
20
|
+
"align_center": "Centrar",
|
|
21
|
+
"align_right": "Alinear a la derecha",
|
|
22
|
+
"undo": "Deshacer",
|
|
23
|
+
"redo": "Rehacer"
|
|
24
|
+
},
|
|
25
|
+
"slash": {
|
|
26
|
+
"placeholder": "Escribe un comando...",
|
|
27
|
+
"noResults": "Sin resultados",
|
|
28
|
+
"groups": {
|
|
29
|
+
"basic": "Bloques básicos",
|
|
30
|
+
"media": "Medios",
|
|
31
|
+
"advanced": "Avanzado"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"ai": {
|
|
35
|
+
"placeholder": "Pide a la IA que edite o genere...",
|
|
36
|
+
"generating": "Generando...",
|
|
37
|
+
"improve": "Mejorar escritura",
|
|
38
|
+
"simplify": "Simplificar",
|
|
39
|
+
"expand": "Ampliar",
|
|
40
|
+
"summarize": "Resumir",
|
|
41
|
+
"translate": "Traducir",
|
|
42
|
+
"fixGrammar": "Corregir gramática"
|
|
43
|
+
},
|
|
44
|
+
"media": {
|
|
45
|
+
"upload": "Subir",
|
|
46
|
+
"embedLink": "Enlace incrustado",
|
|
47
|
+
"maxSize": "Tamaño máximo por archivo: 5MB",
|
|
48
|
+
"uploadImage": "Subir imagen",
|
|
49
|
+
"uploadVideo": "Subir video",
|
|
50
|
+
"uploadAudio": "Subir audio",
|
|
51
|
+
"uploadFile": "Subir archivo"
|
|
52
|
+
},
|
|
53
|
+
"placeholder": {
|
|
54
|
+
"paragraph": "Escribe '/' para comandos...",
|
|
55
|
+
"heading": "Encabezado"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"toolbar": {
|
|
3
|
+
"bold": "Gras",
|
|
4
|
+
"italic": "Italique",
|
|
5
|
+
"underline": "Souligné",
|
|
6
|
+
"strikethrough": "Barré",
|
|
7
|
+
"code": "Code",
|
|
8
|
+
"heading1": "Titre 1",
|
|
9
|
+
"heading2": "Titre 2",
|
|
10
|
+
"heading3": "Titre 3",
|
|
11
|
+
"bulletList": "Liste à puces",
|
|
12
|
+
"numberedList": "Liste numérotée",
|
|
13
|
+
"todoList": "Liste de tâches",
|
|
14
|
+
"blockquote": "Citation",
|
|
15
|
+
"codeBlock": "Bloc de code",
|
|
16
|
+
"table": "Tableau",
|
|
17
|
+
"image": "Image",
|
|
18
|
+
"link": "Lien",
|
|
19
|
+
"align_left": "Aligner à gauche",
|
|
20
|
+
"align_center": "Centrer",
|
|
21
|
+
"align_right": "Aligner à droite",
|
|
22
|
+
"undo": "Annuler",
|
|
23
|
+
"redo": "Rétablir"
|
|
24
|
+
},
|
|
25
|
+
"slash": {
|
|
26
|
+
"placeholder": "Tapez une commande...",
|
|
27
|
+
"noResults": "Aucun résultat",
|
|
28
|
+
"groups": {
|
|
29
|
+
"basic": "Blocs de base",
|
|
30
|
+
"media": "Médias",
|
|
31
|
+
"advanced": "Avancé"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"ai": {
|
|
35
|
+
"placeholder": "Demandez à l'IA de modifier ou générer...",
|
|
36
|
+
"generating": "Génération...",
|
|
37
|
+
"improve": "Améliorer l'écriture",
|
|
38
|
+
"simplify": "Simplifier",
|
|
39
|
+
"expand": "Allonger",
|
|
40
|
+
"summarize": "Résumer",
|
|
41
|
+
"translate": "Traduire",
|
|
42
|
+
"fixGrammar": "Corriger la grammaire"
|
|
43
|
+
},
|
|
44
|
+
"media": {
|
|
45
|
+
"upload": "Télécharger",
|
|
46
|
+
"embedLink": "Intégrer un lien",
|
|
47
|
+
"maxSize": "Taille maximale par fichier : 5 Mo",
|
|
48
|
+
"uploadImage": "Télécharger une image",
|
|
49
|
+
"uploadVideo": "Télécharger une vidéo",
|
|
50
|
+
"uploadAudio": "Télécharger un audio",
|
|
51
|
+
"uploadFile": "Télécharger un fichier"
|
|
52
|
+
},
|
|
53
|
+
"placeholder": {
|
|
54
|
+
"paragraph": "Tapez '/' pour les commandes...",
|
|
55
|
+
"heading": "Titre"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"toolbar": {
|
|
3
|
+
"bold": "Grassetto",
|
|
4
|
+
"italic": "Corsivo",
|
|
5
|
+
"underline": "Sottolineato",
|
|
6
|
+
"strikethrough": "Barrato",
|
|
7
|
+
"code": "Codice",
|
|
8
|
+
"heading1": "Titolo 1",
|
|
9
|
+
"heading2": "Titolo 2",
|
|
10
|
+
"heading3": "Titolo 3",
|
|
11
|
+
"bulletList": "Elenco puntato",
|
|
12
|
+
"numberedList": "Elenco numerato",
|
|
13
|
+
"todoList": "Lista attività",
|
|
14
|
+
"blockquote": "Citazione",
|
|
15
|
+
"codeBlock": "Blocco di codice",
|
|
16
|
+
"table": "Tabella",
|
|
17
|
+
"image": "Immagine",
|
|
18
|
+
"link": "Collegamento",
|
|
19
|
+
"align_left": "Allinea a sinistra",
|
|
20
|
+
"align_center": "Centra",
|
|
21
|
+
"align_right": "Allinea a destra",
|
|
22
|
+
"undo": "Annulla",
|
|
23
|
+
"redo": "Ripeti"
|
|
24
|
+
},
|
|
25
|
+
"slash": {
|
|
26
|
+
"placeholder": "Digita un comando...",
|
|
27
|
+
"noResults": "Nessun risultato",
|
|
28
|
+
"groups": {
|
|
29
|
+
"basic": "Blocchi di base",
|
|
30
|
+
"media": "Media",
|
|
31
|
+
"advanced": "Avanzato"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"ai": {
|
|
35
|
+
"placeholder": "Chiedi all'IA di modificare o generare...",
|
|
36
|
+
"generating": "Generazione...",
|
|
37
|
+
"improve": "Migliora scrittura",
|
|
38
|
+
"simplify": "Semplifica",
|
|
39
|
+
"expand": "Espandi",
|
|
40
|
+
"summarize": "Riassumi",
|
|
41
|
+
"translate": "Traduci",
|
|
42
|
+
"fixGrammar": "Correggi grammatica"
|
|
43
|
+
},
|
|
44
|
+
"media": {
|
|
45
|
+
"upload": "Carica",
|
|
46
|
+
"embedLink": "Incorpora link",
|
|
47
|
+
"maxSize": "Dimensione massima per file: 5MB",
|
|
48
|
+
"uploadImage": "Carica immagine",
|
|
49
|
+
"uploadVideo": "Carica video",
|
|
50
|
+
"uploadAudio": "Carica audio",
|
|
51
|
+
"uploadFile": "Carica file"
|
|
52
|
+
},
|
|
53
|
+
"placeholder": {
|
|
54
|
+
"paragraph": "Digita '/' per i comandi...",
|
|
55
|
+
"heading": "Titolo"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"toolbar": {
|
|
3
|
+
"bold": "Negrito",
|
|
4
|
+
"italic": "Itálico",
|
|
5
|
+
"underline": "Sublinhado",
|
|
6
|
+
"strikethrough": "Tachado",
|
|
7
|
+
"code": "Código",
|
|
8
|
+
"heading1": "Título 1",
|
|
9
|
+
"heading2": "Título 2",
|
|
10
|
+
"heading3": "Título 3",
|
|
11
|
+
"bulletList": "Lista com marcadores",
|
|
12
|
+
"numberedList": "Lista numerada",
|
|
13
|
+
"todoList": "Lista de tarefas",
|
|
14
|
+
"blockquote": "Citação",
|
|
15
|
+
"codeBlock": "Bloco de código",
|
|
16
|
+
"table": "Tabela",
|
|
17
|
+
"image": "Imagem",
|
|
18
|
+
"link": "Link",
|
|
19
|
+
"align_left": "Alinhar à esquerda",
|
|
20
|
+
"align_center": "Centralizar",
|
|
21
|
+
"align_right": "Alinhar à direita",
|
|
22
|
+
"undo": "Desfazer",
|
|
23
|
+
"redo": "Refazer"
|
|
24
|
+
},
|
|
25
|
+
"slash": {
|
|
26
|
+
"placeholder": "Digite um comando...",
|
|
27
|
+
"noResults": "Sem resultados",
|
|
28
|
+
"groups": {
|
|
29
|
+
"basic": "Blocos básicos",
|
|
30
|
+
"media": "Mídia",
|
|
31
|
+
"advanced": "Avançado"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"ai": {
|
|
35
|
+
"placeholder": "Peça à IA para editar ou gerar...",
|
|
36
|
+
"generating": "Gerando...",
|
|
37
|
+
"improve": "Melhorar texto",
|
|
38
|
+
"simplify": "Simplificar",
|
|
39
|
+
"expand": "Expandir",
|
|
40
|
+
"summarize": "Resumir",
|
|
41
|
+
"translate": "Traduzir",
|
|
42
|
+
"fixGrammar": "Corrigir gramática"
|
|
43
|
+
},
|
|
44
|
+
"media": {
|
|
45
|
+
"upload": "Carregar",
|
|
46
|
+
"embedLink": "Incorporar link",
|
|
47
|
+
"maxSize": "Tamanho máximo por arquivo: 5MB",
|
|
48
|
+
"uploadImage": "Carregar imagem",
|
|
49
|
+
"uploadVideo": "Carregar vídeo",
|
|
50
|
+
"uploadAudio": "Carregar áudio",
|
|
51
|
+
"uploadFile": "Carregar arquivo"
|
|
52
|
+
},
|
|
53
|
+
"placeholder": {
|
|
54
|
+
"paragraph": "Digite '/' para comandos...",
|
|
55
|
+
"heading": "Título"
|
|
56
|
+
}
|
|
57
|
+
}
|