@ecsplico/editor 0.0.0-stage → 2.0.0
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/CHANGELOG.md +19 -0
- package/LICENSE +21 -0
- package/README.md +232 -2
- package/dist/code/CodeSurface.d.ts +24 -0
- package/dist/code/CodeSurface.js +57 -0
- package/dist/code/CodeSurface.js.map +1 -0
- package/dist/code/CodeSurface.vue.d.ts +29 -0
- package/dist/code/CodeSurface2.js +75 -0
- package/dist/code/CodeSurface2.js.map +1 -0
- package/dist/code/chrome-theme.js +76 -0
- package/dist/code/chrome-theme.js.map +1 -0
- package/dist/code/compartments.js +19 -0
- package/dist/code/compartments.js.map +1 -0
- package/dist/code/editor-factory.d.ts +41 -0
- package/dist/code/editor-factory.js +126 -0
- package/dist/code/editor-factory.js.map +1 -0
- package/dist/code/format-json.d.ts +27 -0
- package/dist/code/format-json.js +94 -0
- package/dist/code/format-json.js.map +1 -0
- package/dist/code/highlight-style.js +118 -0
- package/dist/code/highlight-style.js.map +1 -0
- package/dist/code/index.d.ts +6 -0
- package/dist/code/index.js +6 -0
- package/dist/code/jsonl-language.d.ts +6 -0
- package/dist/code/jsonl-language.js +33 -0
- package/dist/code/jsonl-language.js.map +1 -0
- package/dist/code/kind.d.ts +15 -0
- package/dist/code/kind.js +142 -0
- package/dist/code/kind.js.map +1 -0
- package/dist/code/lang-registry.d.ts +31 -0
- package/dist/code/lang-registry.js +54 -0
- package/dist/code/lang-registry.js.map +1 -0
- package/dist/code/react.d.ts +2 -0
- package/dist/code/react.js +1 -0
- package/dist/code/vue.d.ts +2 -0
- package/dist/code/vue.js +1 -0
- package/dist/core/abilities.d.ts +32 -0
- package/dist/core/abilities.js +160 -0
- package/dist/core/abilities.js.map +1 -0
- package/dist/core/block-convert.d.ts +59 -0
- package/dist/core/block-convert.js +164 -0
- package/dist/core/block-convert.js.map +1 -0
- package/dist/core/block-drag.d.ts +12 -0
- package/dist/core/block-drag.js +62 -0
- package/dist/core/block-drag.js.map +1 -0
- package/dist/core/block-flash.d.ts +19 -0
- package/dist/core/block-flash.js +66 -0
- package/dist/core/block-flash.js.map +1 -0
- package/dist/core/context.d.ts +63 -0
- package/dist/core/context.js +108 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/convert.d.ts +96 -0
- package/dist/core/convert.js +241 -0
- package/dist/core/convert.js.map +1 -0
- package/dist/core/core-feature.d.ts +17 -0
- package/dist/core/core-feature.js +100 -0
- package/dist/core/core-feature.js.map +1 -0
- package/dist/core/define-editor.d.ts +23 -0
- package/dist/core/define-editor.js +110 -0
- package/dist/core/define-editor.js.map +1 -0
- package/dist/core/doc-anchors.d.ts +67 -0
- package/dist/core/doc-anchors.js +112 -0
- package/dist/core/doc-anchors.js.map +1 -0
- package/dist/core/document-markdown.d.ts +13 -0
- package/dist/core/document-markdown.js +31 -0
- package/dist/core/document-markdown.js.map +1 -0
- package/dist/core/download.d.ts +5 -0
- package/dist/core/download.js +16 -0
- package/dist/core/download.js.map +1 -0
- package/dist/core/editor-ui.d.ts +45 -0
- package/dist/core/editor-ui.js +38 -0
- package/dist/core/editor-ui.js.map +1 -0
- package/dist/core/extension-points.d.ts +64 -0
- package/dist/core/feature-context.d.ts +32 -0
- package/dist/core/feature-context.js +46 -0
- package/dist/core/feature-context.js.map +1 -0
- package/dist/core/feature.d.ts +234 -0
- package/dist/core/feature.js +13 -0
- package/dist/core/feature.js.map +1 -0
- package/dist/core/fences.d.ts +16 -0
- package/dist/core/fences.js +105 -0
- package/dist/core/fences.js.map +1 -0
- package/dist/core/fetch-error.d.ts +5 -0
- package/dist/core/fetch-error.js +11 -0
- package/dist/core/fetch-error.js.map +1 -0
- package/dist/core/index.d.ts +28 -0
- package/dist/core/index.js +27 -0
- package/dist/core/metadata-types.d.ts +27 -0
- package/dist/core/metadata-types.js +10 -0
- package/dist/core/metadata-types.js.map +1 -0
- package/dist/core/metadata.d.ts +39 -0
- package/dist/core/metadata.js +76 -0
- package/dist/core/metadata.js.map +1 -0
- package/dist/core/notify.d.ts +31 -0
- package/dist/core/notify.js +7 -0
- package/dist/core/notify.js.map +1 -0
- package/dist/core/pipeline.d.ts +52 -0
- package/dist/core/pipeline.js +78 -0
- package/dist/core/pipeline.js.map +1 -0
- package/dist/core/schema/abilities.d.ts +55 -0
- package/dist/core/schema/abilities.js +113 -0
- package/dist/core/schema/abilities.js.map +1 -0
- package/dist/core/schema/block-ids.d.ts +29 -0
- package/dist/core/schema/block-ids.js +134 -0
- package/dist/core/schema/block-ids.js.map +1 -0
- package/dist/core/schema/hex-color.d.ts +5 -0
- package/dist/core/schema/hex-color.js +7 -0
- package/dist/core/schema/hex-color.js.map +1 -0
- package/dist/core/schema/index.d.ts +21 -0
- package/dist/core/schema/index.js +33 -0
- package/dist/core/schema/index.js.map +1 -0
- package/dist/core/schema/mark-flags.d.ts +12 -0
- package/dist/core/schema/node-flags.d.ts +23 -0
- package/dist/core/schema/node-flags.js +34 -0
- package/dist/core/schema/node-flags.js.map +1 -0
- package/dist/core/schema/opaque-fence.d.ts +11 -0
- package/dist/core/schema/opaque-fence.js +57 -0
- package/dist/core/schema/opaque-fence.js.map +1 -0
- package/dist/core/schema/strike.d.ts +4 -0
- package/dist/core/schema/strike.js +9 -0
- package/dist/core/schema/strike.js.map +1 -0
- package/dist/core/selection-range.d.ts +13 -0
- package/dist/core/selection-range.js +28 -0
- package/dist/core/selection-range.js.map +1 -0
- package/dist/core/slash.d.ts +24 -0
- package/dist/core/slash.js +60 -0
- package/dist/core/slash.js.map +1 -0
- package/dist/core/store.d.ts +22 -0
- package/dist/core/store.js +61 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/suggestion-popup.d.ts +63 -0
- package/dist/core/suggestion-popup.js +57 -0
- package/dist/core/suggestion-popup.js.map +1 -0
- package/dist/core/tag-name.js +11 -0
- package/dist/core/tag-name.js.map +1 -0
- package/dist/core/toolbar-items.d.ts +10 -0
- package/dist/core/toolbar-items.js +206 -0
- package/dist/core/toolbar-items.js.map +1 -0
- package/dist/core/toolbar.d.ts +74 -0
- package/dist/core/toolbar.js +45 -0
- package/dist/core/toolbar.js.map +1 -0
- package/dist/document/DocumentSurface.d.ts +38 -0
- package/dist/document/DocumentSurface.js +44 -0
- package/dist/document/DocumentSurface.js.map +1 -0
- package/dist/document/DocumentSurface.vue.d.ts +56 -0
- package/dist/document/DocumentSurface2.js +71 -0
- package/dist/document/DocumentSurface2.js.map +1 -0
- package/dist/document/react.d.ts +2 -0
- package/dist/document/react.js +1 -0
- package/dist/document/vue.d.ts +2 -0
- package/dist/document/vue.js +1 -0
- package/dist/features/ai/agent-op-review.d.ts +69 -0
- package/dist/features/ai/agent-op-review.js +182 -0
- package/dist/features/ai/agent-op-review.js.map +1 -0
- package/dist/features/ai/agent-ops.d.ts +15 -0
- package/dist/features/ai/agent-ops.js +228 -0
- package/dist/features/ai/agent-ops.js.map +1 -0
- package/dist/features/ai/ai-apply.d.ts +76 -0
- package/dist/features/ai/ai-apply.js +193 -0
- package/dist/features/ai/ai-apply.js.map +1 -0
- package/dist/features/ai/ai-menu.d.ts +38 -0
- package/dist/features/ai/ai-menu.js +20 -0
- package/dist/features/ai/ai-menu.js.map +1 -0
- package/dist/features/ai/ai-review.d.ts +136 -0
- package/dist/features/ai/ai-review.js +543 -0
- package/dist/features/ai/ai-review.js.map +1 -0
- package/dist/features/ai/ai-selection-highlight.d.ts +21 -0
- package/dist/features/ai/ai-selection-highlight.js +44 -0
- package/dist/features/ai/ai-selection-highlight.js.map +1 -0
- package/dist/features/ai/ai-sse.d.ts +28 -0
- package/dist/features/ai/ai-sse.js +82 -0
- package/dist/features/ai/ai-sse.js.map +1 -0
- package/dist/features/ai/assistant.d.ts +53 -0
- package/dist/features/ai/assistant.js +82 -0
- package/dist/features/ai/assistant.js.map +1 -0
- package/dist/features/ai/block-actions.d.ts +20 -0
- package/dist/features/ai/block-actions.js +55 -0
- package/dist/features/ai/block-actions.js.map +1 -0
- package/dist/features/ai/components/AiReviewBar.js +145 -0
- package/dist/features/ai/components/AiReviewBar.js.map +1 -0
- package/dist/features/ai/components/AiReviewBar.vue.d.ts +15 -0
- package/dist/features/ai/components/AiSelectionMenu.js +519 -0
- package/dist/features/ai/components/AiSelectionMenu.js.map +1 -0
- package/dist/features/ai/components/AiSelectionMenu.vue.d.ts +17 -0
- package/dist/features/ai/components/AiSidebar.js +378 -0
- package/dist/features/ai/components/AiSidebar.js.map +1 -0
- package/dist/features/ai/components/AiSidebar.vue.d.ts +26 -0
- package/dist/features/ai/components/DocumentChatAnswer.js +67 -0
- package/dist/features/ai/components/DocumentChatAnswer.js.map +1 -0
- package/dist/features/ai/components/DocumentChatAnswer.vue.d.ts +13 -0
- package/dist/features/ai/components/DocumentChatOps.js +113 -0
- package/dist/features/ai/components/DocumentChatOps.js.map +1 -0
- package/dist/features/ai/components/DocumentChatOps.vue.d.ts +27 -0
- package/dist/features/ai/components/ModelQuickSwitch.js +84 -0
- package/dist/features/ai/components/ModelQuickSwitch.js.map +1 -0
- package/dist/features/ai/components/ModelQuickSwitch.vue.d.ts +23 -0
- package/dist/features/ai/components/SettingsAiTab.js +88 -0
- package/dist/features/ai/components/SettingsAiTab.js.map +1 -0
- package/dist/features/ai/components/SettingsAiTab.vue.d.ts +6 -0
- package/dist/features/ai/components/SettingsModelProfiles.js +260 -0
- package/dist/features/ai/components/SettingsModelProfiles.js.map +1 -0
- package/dist/features/ai/components/SettingsModelProfiles.vue.d.ts +6 -0
- package/dist/features/ai/document-chat-model.d.ts +88 -0
- package/dist/features/ai/document-chat-model.js +190 -0
- package/dist/features/ai/document-chat-model.js.map +1 -0
- package/dist/features/ai/document-chat.d.ts +17 -0
- package/dist/features/ai/document-chat.js +112 -0
- package/dist/features/ai/document-chat.js.map +1 -0
- package/dist/features/ai/feature.d.ts +25 -0
- package/dist/features/ai/feature.js +89 -0
- package/dist/features/ai/feature.js.map +1 -0
- package/dist/features/ai/ghost-autocomplete.d.ts +47 -0
- package/dist/features/ai/ghost-autocomplete.js +204 -0
- package/dist/features/ai/ghost-autocomplete.js.map +1 -0
- package/dist/features/ai/index.d.ts +24 -0
- package/dist/features/ai/index.js +23 -0
- package/dist/features/ai/model-profiles.d.ts +36 -0
- package/dist/features/ai/model-profiles.js +111 -0
- package/dist/features/ai/model-profiles.js.map +1 -0
- package/dist/features/ai/preview-extensions.js +14 -0
- package/dist/features/ai/preview-extensions.js.map +1 -0
- package/dist/features/ai/protocol/agent-ops.d.ts +120 -0
- package/dist/features/ai/protocol/agent-ops.js +298 -0
- package/dist/features/ai/protocol/agent-ops.js.map +1 -0
- package/dist/features/ai/protocol/chat.d.ts +57 -0
- package/dist/features/ai/protocol/chat.js +146 -0
- package/dist/features/ai/protocol/chat.js.map +1 -0
- package/dist/features/ai/protocol/complete.d.ts +21 -0
- package/dist/features/ai/protocol/complete.js +81 -0
- package/dist/features/ai/protocol/complete.js.map +1 -0
- package/dist/features/ai/protocol/index.d.ts +7 -0
- package/dist/features/ai/protocol/index.js +7 -0
- package/dist/features/ai/protocol/models.d.ts +48 -0
- package/dist/features/ai/protocol/models.js +41 -0
- package/dist/features/ai/protocol/models.js.map +1 -0
- package/dist/features/ai/protocol/schemas.d.ts +36 -0
- package/dist/features/ai/protocol/schemas.js +40 -0
- package/dist/features/ai/protocol/schemas.js.map +1 -0
- package/dist/features/ai/protocol/tasks.d.ts +107 -0
- package/dist/features/ai/protocol/tasks.js +227 -0
- package/dist/features/ai/protocol/tasks.js.map +1 -0
- package/dist/features/ai/rate-limit.d.ts +9 -0
- package/dist/features/ai/rate-limit.js +20 -0
- package/dist/features/ai/rate-limit.js.map +1 -0
- package/dist/features/ai/react/AiReviewBar.d.ts +12 -0
- package/dist/features/ai/react/AiReviewBar.js +156 -0
- package/dist/features/ai/react/AiReviewBar.js.map +1 -0
- package/dist/features/ai/react/AiSelectionMenu.d.ts +14 -0
- package/dist/features/ai/react/AiSelectionMenu.js +513 -0
- package/dist/features/ai/react/AiSelectionMenu.js.map +1 -0
- package/dist/features/ai/react/AiSidebar.d.ts +19 -0
- package/dist/features/ai/react/AiSidebar.js +339 -0
- package/dist/features/ai/react/AiSidebar.js.map +1 -0
- package/dist/features/ai/react/DocumentChatAnswer.d.ts +10 -0
- package/dist/features/ai/react/DocumentChatAnswer.js +70 -0
- package/dist/features/ai/react/DocumentChatAnswer.js.map +1 -0
- package/dist/features/ai/react/DocumentChatOps.d.ts +19 -0
- package/dist/features/ai/react/DocumentChatOps.js +111 -0
- package/dist/features/ai/react/DocumentChatOps.js.map +1 -0
- package/dist/features/ai/react/ModelQuickSwitch.d.ts +19 -0
- package/dist/features/ai/react/ModelQuickSwitch.js +89 -0
- package/dist/features/ai/react/ModelQuickSwitch.js.map +1 -0
- package/dist/features/ai/react/SettingsAiTab.d.ts +5 -0
- package/dist/features/ai/react/SettingsAiTab.js +103 -0
- package/dist/features/ai/react/SettingsAiTab.js.map +1 -0
- package/dist/features/ai/react/SettingsModelProfiles.d.ts +8 -0
- package/dist/features/ai/react/SettingsModelProfiles.js +318 -0
- package/dist/features/ai/react/SettingsModelProfiles.js.map +1 -0
- package/dist/features/ai/react/use-ai-assistant.d.ts +22 -0
- package/dist/features/ai/react/use-ai-assistant.js +36 -0
- package/dist/features/ai/react/use-ai-assistant.js.map +1 -0
- package/dist/features/ai/react/use-document-chat.d.ts +32 -0
- package/dist/features/ai/react/use-document-chat.js +43 -0
- package/dist/features/ai/react/use-document-chat.js.map +1 -0
- package/dist/features/ai/react/use-model-profiles.d.ts +20 -0
- package/dist/features/ai/react/use-model-profiles.js +33 -0
- package/dist/features/ai/react/use-model-profiles.js.map +1 -0
- package/dist/features/ai/react.d.ts +23 -0
- package/dist/features/ai/react.js +28 -0
- package/dist/features/ai/react.js.map +1 -0
- package/dist/features/ai/sidebar-flow.d.ts +61 -0
- package/dist/features/ai/sidebar-flow.js +125 -0
- package/dist/features/ai/sidebar-flow.js.map +1 -0
- package/dist/features/ai/use-ai-assistant.d.ts +22 -0
- package/dist/features/ai/use-ai-assistant.js +39 -0
- package/dist/features/ai/use-ai-assistant.js.map +1 -0
- package/dist/features/ai/use-document-chat.d.ts +33 -0
- package/dist/features/ai/use-document-chat.js +45 -0
- package/dist/features/ai/use-document-chat.js.map +1 -0
- package/dist/features/ai/use-model-profiles.d.ts +23 -0
- package/dist/features/ai/use-model-profiles.js +50 -0
- package/dist/features/ai/use-model-profiles.js.map +1 -0
- package/dist/features/ai/vue.d.ts +21 -0
- package/dist/features/ai/vue.js +28 -0
- package/dist/features/ai/vue.js.map +1 -0
- package/dist/features/authors/attribution.d.ts +36 -0
- package/dist/features/authors/attribution.js +94 -0
- package/dist/features/authors/attribution.js.map +1 -0
- package/dist/features/authors/author-color-styles.d.ts +12 -0
- package/dist/features/authors/author-color-styles.js +24 -0
- package/dist/features/authors/author-color-styles.js.map +1 -0
- package/dist/features/authors/components/AuthorColorsButton.js +50 -0
- package/dist/features/authors/components/AuthorColorsButton.js.map +1 -0
- package/dist/features/authors/components/AuthorColorsButton.vue.d.ts +11 -0
- package/dist/features/authors/components/AuthorColorsPanel.js +72 -0
- package/dist/features/authors/components/AuthorColorsPanel.js.map +1 -0
- package/dist/features/authors/components/AuthorColorsPanel.vue.d.ts +11 -0
- package/dist/features/authors/components/SettingsAuthorsTab.js +49 -0
- package/dist/features/authors/components/SettingsAuthorsTab.js.map +1 -0
- package/dist/features/authors/components/SettingsAuthorsTab.vue.d.ts +6 -0
- package/dist/features/authors/feature.d.ts +22 -0
- package/dist/features/authors/feature.js +47 -0
- package/dist/features/authors/feature.js.map +1 -0
- package/dist/features/authors/index.d.ts +7 -0
- package/dist/features/authors/index.js +6 -0
- package/dist/features/authors/react/AuthorColorsButton.d.ts +8 -0
- package/dist/features/authors/react/AuthorColorsButton.js +41 -0
- package/dist/features/authors/react/AuthorColorsButton.js.map +1 -0
- package/dist/features/authors/react/AuthorColorsPanel.d.ts +8 -0
- package/dist/features/authors/react/AuthorColorsPanel.js +125 -0
- package/dist/features/authors/react/AuthorColorsPanel.js.map +1 -0
- package/dist/features/authors/react/SettingsAuthorsTab.d.ts +5 -0
- package/dist/features/authors/react/SettingsAuthorsTab.js +92 -0
- package/dist/features/authors/react/SettingsAuthorsTab.js.map +1 -0
- package/dist/features/authors/react.d.ts +11 -0
- package/dist/features/authors/react.js +16 -0
- package/dist/features/authors/react.js.map +1 -0
- package/dist/features/authors/schema.d.ts +22 -0
- package/dist/features/authors/schema.js +70 -0
- package/dist/features/authors/schema.js.map +1 -0
- package/dist/features/authors/vue.d.ts +10 -0
- package/dist/features/authors/vue.js +16 -0
- package/dist/features/authors/vue.js.map +1 -0
- package/dist/features/block-ui/block-actions.d.ts +17 -0
- package/dist/features/block-ui/block-actions.js +37 -0
- package/dist/features/block-ui/block-actions.js.map +1 -0
- package/dist/features/block-ui/components/BlockActionsOverlay.js +142 -0
- package/dist/features/block-ui/components/BlockActionsOverlay.js.map +1 -0
- package/dist/features/block-ui/components/BlockActionsOverlay.vue.d.ts +25 -0
- package/dist/features/block-ui/components/BlockHandles.js +113 -0
- package/dist/features/block-ui/components/BlockHandles.js.map +1 -0
- package/dist/features/block-ui/components/BlockUi.js +181 -0
- package/dist/features/block-ui/components/BlockUi.js.map +1 -0
- package/dist/features/block-ui/components/BlockUi.vue.d.ts +17 -0
- package/dist/features/block-ui/feature.d.ts +21 -0
- package/dist/features/block-ui/feature.js +23 -0
- package/dist/features/block-ui/feature.js.map +1 -0
- package/dist/features/block-ui/handle-geometry.js +52 -0
- package/dist/features/block-ui/handle-geometry.js.map +1 -0
- package/dist/features/block-ui/index.d.ts +3 -0
- package/dist/features/block-ui/index.js +3 -0
- package/dist/features/block-ui/react/BlockActionsOverlay.d.ts +19 -0
- package/dist/features/block-ui/react/BlockActionsOverlay.js +142 -0
- package/dist/features/block-ui/react/BlockActionsOverlay.js.map +1 -0
- package/dist/features/block-ui/react/BlockHandles.d.ts +15 -0
- package/dist/features/block-ui/react/BlockHandles.js +104 -0
- package/dist/features/block-ui/react/BlockHandles.js.map +1 -0
- package/dist/features/block-ui/react/BlockUi.d.ts +14 -0
- package/dist/features/block-ui/react/BlockUi.js +174 -0
- package/dist/features/block-ui/react/BlockUi.js.map +1 -0
- package/dist/features/block-ui/react.d.ts +11 -0
- package/dist/features/block-ui/react.js +13 -0
- package/dist/features/block-ui/react.js.map +1 -0
- package/dist/features/block-ui/vue.d.ts +9 -0
- package/dist/features/block-ui/vue.js +12 -0
- package/dist/features/block-ui/vue.js.map +1 -0
- package/dist/features/collab/anchor-resolver.d.ts +7 -0
- package/dist/features/collab/anchor-resolver.js +92 -0
- package/dist/features/collab/anchor-resolver.js.map +1 -0
- package/dist/features/collab/feature.d.ts +22 -0
- package/dist/features/collab/feature.js +36 -0
- package/dist/features/collab/feature.js.map +1 -0
- package/dist/features/collab/index.d.ts +3 -0
- package/dist/features/collab/index.js +3 -0
- package/dist/features/collab/react.d.ts +7 -0
- package/dist/features/collab/react.js +10 -0
- package/dist/features/collab/react.js.map +1 -0
- package/dist/features/collab/vue.d.ts +6 -0
- package/dist/features/collab/vue.js +37 -0
- package/dist/features/collab/vue.js.map +1 -0
- package/dist/features/comments/comments-plugin.d.ts +71 -0
- package/dist/features/comments/comments-plugin.js +185 -0
- package/dist/features/comments/comments-plugin.js.map +1 -0
- package/dist/features/comments/components/CommentBubble.js +54 -0
- package/dist/features/comments/components/CommentBubble.js.map +1 -0
- package/dist/features/comments/components/CommentBubble.vue.d.ts +14 -0
- package/dist/features/comments/components/CommentComposer.js +87 -0
- package/dist/features/comments/components/CommentComposer.js.map +1 -0
- package/dist/features/comments/components/CommentComposer.vue.d.ts +21 -0
- package/dist/features/comments/components/CommentThreadView.js +255 -0
- package/dist/features/comments/components/CommentThreadView.js.map +1 -0
- package/dist/features/comments/components/CommentThreadView.vue.d.ts +29 -0
- package/dist/features/comments/components/CommentsListMenu.js +134 -0
- package/dist/features/comments/components/CommentsListMenu.js.map +1 -0
- package/dist/features/comments/components/CommentsListMenu.vue.d.ts +10 -0
- package/dist/features/comments/components/CommentsMargin.js +291 -0
- package/dist/features/comments/components/CommentsMargin.js.map +1 -0
- package/dist/features/comments/components/CommentsMargin.vue.d.ts +16 -0
- package/dist/features/comments/components/CommentsOverlay.js +39 -0
- package/dist/features/comments/components/CommentsOverlay.js.map +1 -0
- package/dist/features/comments/components/CommentsPopover.js +124 -0
- package/dist/features/comments/components/CommentsPopover.js.map +1 -0
- package/dist/features/comments/components/CommentsPopover.vue.d.ts +10 -0
- package/dist/features/comments/components/CommentsToolbarButton.js +61 -0
- package/dist/features/comments/components/CommentsToolbarButton.js.map +1 -0
- package/dist/features/comments/components/SettingsCommentsTab.js +46 -0
- package/dist/features/comments/components/SettingsCommentsTab.js.map +1 -0
- package/dist/features/comments/components/SettingsCommentsTab.vue.d.ts +6 -0
- package/dist/features/comments/feature.d.ts +39 -0
- package/dist/features/comments/feature.js +128 -0
- package/dist/features/comments/feature.js.map +1 -0
- package/dist/features/comments/index.d.ts +6 -0
- package/dist/features/comments/index.js +6 -0
- package/dist/features/comments/model.d.ts +87 -0
- package/dist/features/comments/model.js +390 -0
- package/dist/features/comments/model.js.map +1 -0
- package/dist/features/comments/react/CommentAvatar.js +24 -0
- package/dist/features/comments/react/CommentAvatar.js.map +1 -0
- package/dist/features/comments/react/CommentBubble.d.ts +11 -0
- package/dist/features/comments/react/CommentBubble.js +43 -0
- package/dist/features/comments/react/CommentBubble.js.map +1 -0
- package/dist/features/comments/react/CommentComposer.d.ts +15 -0
- package/dist/features/comments/react/CommentComposer.js +69 -0
- package/dist/features/comments/react/CommentComposer.js.map +1 -0
- package/dist/features/comments/react/CommentThreadView.d.ts +24 -0
- package/dist/features/comments/react/CommentThreadView.js +249 -0
- package/dist/features/comments/react/CommentThreadView.js.map +1 -0
- package/dist/features/comments/react/CommentsListMenu.d.ts +8 -0
- package/dist/features/comments/react/CommentsListMenu.js +115 -0
- package/dist/features/comments/react/CommentsListMenu.js.map +1 -0
- package/dist/features/comments/react/CommentsMargin.d.ts +16 -0
- package/dist/features/comments/react/CommentsMargin.js +294 -0
- package/dist/features/comments/react/CommentsMargin.js.map +1 -0
- package/dist/features/comments/react/CommentsOverlay.d.ts +11 -0
- package/dist/features/comments/react/CommentsOverlay.js +52 -0
- package/dist/features/comments/react/CommentsOverlay.js.map +1 -0
- package/dist/features/comments/react/CommentsPopover.d.ts +15 -0
- package/dist/features/comments/react/CommentsPopover.js +107 -0
- package/dist/features/comments/react/CommentsPopover.js.map +1 -0
- package/dist/features/comments/react/CommentsToolbarButton.d.ts +12 -0
- package/dist/features/comments/react/CommentsToolbarButton.js +52 -0
- package/dist/features/comments/react/CommentsToolbarButton.js.map +1 -0
- package/dist/features/comments/react/SettingsCommentsTab.d.ts +5 -0
- package/dist/features/comments/react/SettingsCommentsTab.js +77 -0
- package/dist/features/comments/react/SettingsCommentsTab.js.map +1 -0
- package/dist/features/comments/react/use-comments.d.ts +17 -0
- package/dist/features/comments/react/use-comments.js +37 -0
- package/dist/features/comments/react/use-comments.js.map +1 -0
- package/dist/features/comments/react.d.ts +23 -0
- package/dist/features/comments/react.js +28 -0
- package/dist/features/comments/react.js.map +1 -0
- package/dist/features/comments/schema.d.ts +51 -0
- package/dist/features/comments/schema.js +41 -0
- package/dist/features/comments/schema.js.map +1 -0
- package/dist/features/comments/shortcuts.js +34 -0
- package/dist/features/comments/shortcuts.js.map +1 -0
- package/dist/features/comments/use-comments.d.ts +37 -0
- package/dist/features/comments/use-comments.js +45 -0
- package/dist/features/comments/use-comments.js.map +1 -0
- package/dist/features/comments/vue.d.ts +20 -0
- package/dist/features/comments/vue.js +28 -0
- package/dist/features/comments/vue.js.map +1 -0
- package/dist/features/composites/ai-brief.d.ts +31 -0
- package/dist/features/composites/ai-brief.js +56 -0
- package/dist/features/composites/ai-brief.js.map +1 -0
- package/dist/features/composites/anchors.d.ts +47 -0
- package/dist/features/composites/anchors.js +137 -0
- package/dist/features/composites/anchors.js.map +1 -0
- package/dist/features/composites/components/CompositeChrome.js +243 -0
- package/dist/features/composites/components/CompositeChrome.js.map +1 -0
- package/dist/features/composites/components/CompositeChrome.vue.d.ts +19 -0
- package/dist/features/composites/components/CompositeDetails.js +158 -0
- package/dist/features/composites/components/CompositeDetails.js.map +1 -0
- package/dist/features/composites/components/CompositeDetails.vue.d.ts +19 -0
- package/dist/features/composites/components/CompositeFieldEditor.js +114 -0
- package/dist/features/composites/components/CompositeFieldEditor.js.map +1 -0
- package/dist/features/composites/components/CompositeFieldEditor.vue.d.ts +23 -0
- package/dist/features/composites/components/CompositeInspector.js +439 -0
- package/dist/features/composites/components/CompositeInspector.js.map +1 -0
- package/dist/features/composites/components/CompositeInspector.vue.d.ts +32 -0
- package/dist/features/composites/components/CompositeStatusMenu.js +51 -0
- package/dist/features/composites/components/CompositeStatusMenu.js.map +1 -0
- package/dist/features/composites/components/CompositeStatusMenu.vue.d.ts +28 -0
- package/dist/features/composites/components/CompositeSummaryEditor.js +79 -0
- package/dist/features/composites/components/CompositeSummaryEditor.js.map +1 -0
- package/dist/features/composites/components/CompositeSummaryEditor.vue.d.ts +18 -0
- package/dist/features/composites/components/CompositeTable.js +348 -0
- package/dist/features/composites/components/CompositeTable.js.map +1 -0
- package/dist/features/composites/components/CompositeTable.vue.d.ts +15 -0
- package/dist/features/composites/components/CompositeTagsEditor.js +95 -0
- package/dist/features/composites/components/CompositeTagsEditor.js.map +1 -0
- package/dist/features/composites/components/CompositeTagsEditor.vue.d.ts +13 -0
- package/dist/features/composites/components/CompositeView.js +46 -0
- package/dist/features/composites/components/CompositeView.js.map +1 -0
- package/dist/features/composites/components/CompositeView.vue.d.ts +96 -0
- package/dist/features/composites/components/SettingsEditingTab.js +119 -0
- package/dist/features/composites/components/SettingsEditingTab.js.map +1 -0
- package/dist/features/composites/components/SettingsEditingTab.vue.d.ts +11 -0
- package/dist/features/composites/convert.d.ts +24 -0
- package/dist/features/composites/convert.js +145 -0
- package/dist/features/composites/convert.js.map +1 -0
- package/dist/features/composites/editing-settings-keys.js +47 -0
- package/dist/features/composites/editing-settings-keys.js.map +1 -0
- package/dist/features/composites/feature.d.ts +30 -0
- package/dist/features/composites/feature.js +305 -0
- package/dist/features/composites/feature.js.map +1 -0
- package/dist/features/composites/fences.d.ts +20 -0
- package/dist/features/composites/fences.js +86 -0
- package/dist/features/composites/fences.js.map +1 -0
- package/dist/features/composites/heading-composites.d.ts +36 -0
- package/dist/features/composites/heading-composites.js +140 -0
- package/dist/features/composites/heading-composites.js.map +1 -0
- package/dist/features/composites/index.d.ts +20 -0
- package/dist/features/composites/index.js +20 -0
- package/dist/features/composites/kinds.d.ts +49 -0
- package/dist/features/composites/kinds.js +131 -0
- package/dist/features/composites/kinds.js.map +1 -0
- package/dist/features/composites/legacy.d.ts +8 -0
- package/dist/features/composites/legacy.js +25 -0
- package/dist/features/composites/legacy.js.map +1 -0
- package/dist/features/composites/markdown-export.d.ts +17 -0
- package/dist/features/composites/markdown-export.js +49 -0
- package/dist/features/composites/markdown-export.js.map +1 -0
- package/dist/features/composites/meta-display.js +46 -0
- package/dist/features/composites/meta-display.js.map +1 -0
- package/dist/features/composites/node-views.d.ts +17 -0
- package/dist/features/composites/node-views.js +18 -0
- package/dist/features/composites/node-views.js.map +1 -0
- package/dist/features/composites/nodes.d.ts +56 -0
- package/dist/features/composites/nodes.js +480 -0
- package/dist/features/composites/nodes.js.map +1 -0
- package/dist/features/composites/outline.d.ts +35 -0
- package/dist/features/composites/outline.js +69 -0
- package/dist/features/composites/outline.js.map +1 -0
- package/dist/features/composites/react/CompositeChrome.d.ts +16 -0
- package/dist/features/composites/react/CompositeChrome.js +234 -0
- package/dist/features/composites/react/CompositeChrome.js.map +1 -0
- package/dist/features/composites/react/CompositeDetails.d.ts +16 -0
- package/dist/features/composites/react/CompositeDetails.js +149 -0
- package/dist/features/composites/react/CompositeDetails.js.map +1 -0
- package/dist/features/composites/react/CompositeFieldEditor.d.ts +18 -0
- package/dist/features/composites/react/CompositeFieldEditor.js +131 -0
- package/dist/features/composites/react/CompositeFieldEditor.js.map +1 -0
- package/dist/features/composites/react/CompositeInspector.d.ts +23 -0
- package/dist/features/composites/react/CompositeInspector.js +506 -0
- package/dist/features/composites/react/CompositeInspector.js.map +1 -0
- package/dist/features/composites/react/CompositeStatusMenu.d.ts +15 -0
- package/dist/features/composites/react/CompositeStatusMenu.js +36 -0
- package/dist/features/composites/react/CompositeStatusMenu.js.map +1 -0
- package/dist/features/composites/react/CompositeSummaryEditor.d.ts +15 -0
- package/dist/features/composites/react/CompositeSummaryEditor.js +85 -0
- package/dist/features/composites/react/CompositeSummaryEditor.js.map +1 -0
- package/dist/features/composites/react/CompositeTable.d.ts +11 -0
- package/dist/features/composites/react/CompositeTable.js +342 -0
- package/dist/features/composites/react/CompositeTable.js.map +1 -0
- package/dist/features/composites/react/CompositeTagsEditor.d.ts +10 -0
- package/dist/features/composites/react/CompositeTagsEditor.js +122 -0
- package/dist/features/composites/react/CompositeTagsEditor.js.map +1 -0
- package/dist/features/composites/react/CompositeView.d.ts +6 -0
- package/dist/features/composites/react/CompositeView.js +30 -0
- package/dist/features/composites/react/CompositeView.js.map +1 -0
- package/dist/features/composites/react/SettingsEditingTab.d.ts +8 -0
- package/dist/features/composites/react/SettingsEditingTab.js +153 -0
- package/dist/features/composites/react/SettingsEditingTab.js.map +1 -0
- package/dist/features/composites/react/use-composite-anchors.d.ts +17 -0
- package/dist/features/composites/react/use-composite-anchors.js +46 -0
- package/dist/features/composites/react/use-composite-anchors.js.map +1 -0
- package/dist/features/composites/react/use-composite-rows.d.ts +11 -0
- package/dist/features/composites/react/use-composite-rows.js +26 -0
- package/dist/features/composites/react/use-composite-rows.js.map +1 -0
- package/dist/features/composites/react.d.ts +24 -0
- package/dist/features/composites/react.js +30 -0
- package/dist/features/composites/react.js.map +1 -0
- package/dist/features/composites/rows-model.d.ts +38 -0
- package/dist/features/composites/rows-model.js +92 -0
- package/dist/features/composites/rows-model.js.map +1 -0
- package/dist/features/composites/rows.d.ts +76 -0
- package/dist/features/composites/rows.js +159 -0
- package/dist/features/composites/rows.js.map +1 -0
- package/dist/features/composites/schema.d.ts +21 -0
- package/dist/features/composites/schema.js +26 -0
- package/dist/features/composites/schema.js.map +1 -0
- package/dist/features/composites/structure-mode.d.ts +11 -0
- package/dist/features/composites/structure-mode.js +16 -0
- package/dist/features/composites/structure-mode.js.map +1 -0
- package/dist/features/composites/structure.d.ts +19 -0
- package/dist/features/composites/structure.js +19 -0
- package/dist/features/composites/structure.js.map +1 -0
- package/dist/features/composites/table-model.js +117 -0
- package/dist/features/composites/table-model.js.map +1 -0
- package/dist/features/composites/tree-root.d.ts +11 -0
- package/dist/features/composites/tree-root.js +16 -0
- package/dist/features/composites/tree-root.js.map +1 -0
- package/dist/features/composites/use-composite-anchors.d.ts +18 -0
- package/dist/features/composites/use-composite-anchors.js +42 -0
- package/dist/features/composites/use-composite-anchors.js.map +1 -0
- package/dist/features/composites/use-composite-rows.d.ts +25 -0
- package/dist/features/composites/use-composite-rows.js +28 -0
- package/dist/features/composites/use-composite-rows.js.map +1 -0
- package/dist/features/composites/vue.d.ts +23 -0
- package/dist/features/composites/vue.js +30 -0
- package/dist/features/composites/vue.js.map +1 -0
- package/dist/features/media/assets.d.ts +30 -0
- package/dist/features/media/assets.js +26 -0
- package/dist/features/media/assets.js.map +1 -0
- package/dist/features/media/audio-recorder.d.ts +25 -0
- package/dist/features/media/audio-recorder.js +123 -0
- package/dist/features/media/audio-recorder.js.map +1 -0
- package/dist/features/media/components/AudioRecorderModal.js +152 -0
- package/dist/features/media/components/AudioRecorderModal.js.map +1 -0
- package/dist/features/media/components/AudioRecorderModal.vue.d.ts +15 -0
- package/dist/features/media/components/AudioView.js +46 -0
- package/dist/features/media/components/AudioView.js.map +1 -0
- package/dist/features/media/components/FileView.js +73 -0
- package/dist/features/media/components/FileView.js.map +1 -0
- package/dist/features/media/components/VideoView.js +47 -0
- package/dist/features/media/components/VideoView.js.map +1 -0
- package/dist/features/media/feature.d.ts +22 -0
- package/dist/features/media/feature.js +101 -0
- package/dist/features/media/feature.js.map +1 -0
- package/dist/features/media/file-import.d.ts +21 -0
- package/dist/features/media/file-import.js +76 -0
- package/dist/features/media/file-import.js.map +1 -0
- package/dist/features/media/index.d.ts +7 -0
- package/dist/features/media/index.js +7 -0
- package/dist/features/media/node-views.d.ts +28 -0
- package/dist/features/media/node-views.js +28 -0
- package/dist/features/media/node-views.js.map +1 -0
- package/dist/features/media/react/AudioRecorderModal.d.ts +12 -0
- package/dist/features/media/react/AudioRecorderModal.js +147 -0
- package/dist/features/media/react/AudioRecorderModal.js.map +1 -0
- package/dist/features/media/react/AudioView.js +32 -0
- package/dist/features/media/react/AudioView.js.map +1 -0
- package/dist/features/media/react/FileView.js +61 -0
- package/dist/features/media/react/FileView.js.map +1 -0
- package/dist/features/media/react/TitleField.js +30 -0
- package/dist/features/media/react/TitleField.js.map +1 -0
- package/dist/features/media/react/VideoView.js +33 -0
- package/dist/features/media/react/VideoView.js.map +1 -0
- package/dist/features/media/react/use-audio-recorder.d.ts +11 -0
- package/dist/features/media/react/use-audio-recorder.js +21 -0
- package/dist/features/media/react/use-audio-recorder.js.map +1 -0
- package/dist/features/media/react.d.ts +19 -0
- package/dist/features/media/react.js +37 -0
- package/dist/features/media/react.js.map +1 -0
- package/dist/features/media/schema.d.ts +59 -0
- package/dist/features/media/schema.js +194 -0
- package/dist/features/media/schema.js.map +1 -0
- package/dist/features/media/upload.d.ts +41 -0
- package/dist/features/media/upload.js +106 -0
- package/dist/features/media/upload.js.map +1 -0
- package/dist/features/media/use-audio-recorder.d.ts +12 -0
- package/dist/features/media/use-audio-recorder.js +21 -0
- package/dist/features/media/use-audio-recorder.js.map +1 -0
- package/dist/features/media/vue.d.ts +19 -0
- package/dist/features/media/vue.js +35 -0
- package/dist/features/media/vue.js.map +1 -0
- package/dist/features/mentions/index.d.ts +22 -0
- package/dist/features/mentions/index.js +34 -0
- package/dist/features/mentions/index.js.map +1 -0
- package/dist/features/mentions/mention-suggestion.d.ts +11 -0
- package/dist/features/mentions/mention-suggestion.js +34 -0
- package/dist/features/mentions/mention-suggestion.js.map +1 -0
- package/dist/features/mentions/mention-text.d.ts +18 -0
- package/dist/features/mentions/mention-text.js +75 -0
- package/dist/features/mentions/mention-text.js.map +1 -0
- package/dist/features/mentions/mention.d.ts +20 -0
- package/dist/features/mentions/mention.js +33 -0
- package/dist/features/mentions/mention.js.map +1 -0
- package/dist/features/mentions/metadata-defaults.d.ts +8 -0
- package/dist/features/mentions/metadata-defaults.js +30 -0
- package/dist/features/mentions/metadata-defaults.js.map +1 -0
- package/dist/features/mentions/normalize.d.ts +10 -0
- package/dist/features/mentions/normalize.js +31 -0
- package/dist/features/mentions/normalize.js.map +1 -0
- package/dist/features/mentions/schema.d.ts +10 -0
- package/dist/features/mentions/schema.js +10 -0
- package/dist/features/mentions/schema.js.map +1 -0
- package/dist/features/mentions/tag-suggestion.d.ts +11 -0
- package/dist/features/mentions/tag-suggestion.js +45 -0
- package/dist/features/mentions/tag-suggestion.js.map +1 -0
- package/dist/features/mentions/tag.d.ts +43 -0
- package/dist/features/mentions/tag.js +155 -0
- package/dist/features/mentions/tag.js.map +1 -0
- package/dist/features/tables/feature.d.ts +14 -0
- package/dist/features/tables/feature.js +100 -0
- package/dist/features/tables/feature.js.map +1 -0
- package/dist/features/tables/index.d.ts +3 -0
- package/dist/features/tables/index.js +3 -0
- package/dist/features/tables/schema.d.ts +6 -0
- package/dist/features/tables/schema.js +27 -0
- package/dist/features/tables/schema.js.map +1 -0
- package/dist/features/themes/components/SettingsAppearanceTab.js +227 -0
- package/dist/features/themes/components/SettingsAppearanceTab.js.map +1 -0
- package/dist/features/themes/components/SettingsAppearanceTab.vue.d.ts +6 -0
- package/dist/features/themes/feature.d.ts +24 -0
- package/dist/features/themes/feature.js +25 -0
- package/dist/features/themes/feature.js.map +1 -0
- package/dist/features/themes/index.d.ts +6 -0
- package/dist/features/themes/index.js +6 -0
- package/dist/features/themes/react/SettingsAppearanceTab.d.ts +5 -0
- package/dist/features/themes/react/SettingsAppearanceTab.js +221 -0
- package/dist/features/themes/react/SettingsAppearanceTab.js.map +1 -0
- package/dist/features/themes/react.d.ts +13 -0
- package/dist/features/themes/react.js +15 -0
- package/dist/features/themes/react.js.map +1 -0
- package/dist/features/themes/schema.d.ts +21 -0
- package/dist/features/themes/schema.js +16 -0
- package/dist/features/themes/schema.js.map +1 -0
- package/dist/features/themes/scope-css.d.ts +5 -0
- package/dist/features/themes/scope-css.js +142 -0
- package/dist/features/themes/scope-css.js.map +1 -0
- package/dist/features/themes/theme-runtime.d.ts +14 -0
- package/dist/features/themes/theme-runtime.js +147 -0
- package/dist/features/themes/theme-runtime.js.map +1 -0
- package/dist/features/themes/vue.d.ts +13 -0
- package/dist/features/themes/vue.js +29 -0
- package/dist/features/themes/vue.js.map +1 -0
- package/dist/features/transcript/TranscriptSegmentView.js +169 -0
- package/dist/features/transcript/TranscriptSegmentView.js.map +1 -0
- package/dist/features/transcript/TranscriptSegmentView.vue.d.ts +96 -0
- package/dist/features/transcript/convert.d.ts +11 -0
- package/dist/features/transcript/convert.js +40 -0
- package/dist/features/transcript/convert.js.map +1 -0
- package/dist/features/transcript/feature.d.ts +25 -0
- package/dist/features/transcript/feature.js +59 -0
- package/dist/features/transcript/feature.js.map +1 -0
- package/dist/features/transcript/index.d.ts +7 -0
- package/dist/features/transcript/index.js +7 -0
- package/dist/features/transcript/react/TranscriptSegmentView.d.ts +6 -0
- package/dist/features/transcript/react/TranscriptSegmentView.js +155 -0
- package/dist/features/transcript/react/TranscriptSegmentView.js.map +1 -0
- package/dist/features/transcript/react.d.ts +9 -0
- package/dist/features/transcript/react.js +12 -0
- package/dist/features/transcript/react.js.map +1 -0
- package/dist/features/transcript/schema.d.ts +9 -0
- package/dist/features/transcript/schema.js +9 -0
- package/dist/features/transcript/schema.js.map +1 -0
- package/dist/features/transcript/segment-node.d.ts +21 -0
- package/dist/features/transcript/segment-node.js +113 -0
- package/dist/features/transcript/segment-node.js.map +1 -0
- package/dist/features/transcript/segment.d.ts +10 -0
- package/dist/features/transcript/segment.js +26 -0
- package/dist/features/transcript/segment.js.map +1 -0
- package/dist/features/transcript/speakers.d.ts +8 -0
- package/dist/features/transcript/speakers.js +22 -0
- package/dist/features/transcript/speakers.js.map +1 -0
- package/dist/features/transcript/vue.d.ts +8 -0
- package/dist/features/transcript/vue.js +12 -0
- package/dist/features/transcript/vue.js.map +1 -0
- package/dist/i18n/de/ai.js +168 -0
- package/dist/i18n/de/ai.js.map +1 -0
- package/dist/i18n/de/authors.js +21 -0
- package/dist/i18n/de/authors.js.map +1 -0
- package/dist/i18n/de/block.js +16 -0
- package/dist/i18n/de/block.js.map +1 -0
- package/dist/i18n/de/comments.js +35 -0
- package/dist/i18n/de/comments.js.map +1 -0
- package/dist/i18n/de/common.js +10 -0
- package/dist/i18n/de/common.js.map +1 -0
- package/dist/i18n/de/composites.js +147 -0
- package/dist/i18n/de/composites.js.map +1 -0
- package/dist/i18n/de/integrations.js +42 -0
- package/dist/i18n/de/integrations.js.map +1 -0
- package/dist/i18n/de/markdown.js +16 -0
- package/dist/i18n/de/markdown.js.map +1 -0
- package/dist/i18n/de/media.js +27 -0
- package/dist/i18n/de/media.js.map +1 -0
- package/dist/i18n/de/mentions.js +10 -0
- package/dist/i18n/de/mentions.js.map +1 -0
- package/dist/i18n/de/outline.js +9 -0
- package/dist/i18n/de/outline.js.map +1 -0
- package/dist/i18n/de/settings.js +12 -0
- package/dist/i18n/de/settings.js.map +1 -0
- package/dist/i18n/de/tables.js +15 -0
- package/dist/i18n/de/tables.js.map +1 -0
- package/dist/i18n/de/themes.js +26 -0
- package/dist/i18n/de/themes.js.map +1 -0
- package/dist/i18n/de/toolbar.js +22 -0
- package/dist/i18n/de/toolbar.js.map +1 -0
- package/dist/i18n/de/transcript.js +10 -0
- package/dist/i18n/de/transcript.js.map +1 -0
- package/dist/i18n/de/tree.js +31 -0
- package/dist/i18n/de/tree.js.map +1 -0
- package/dist/i18n/de.d.ts +502 -0
- package/dist/i18n/de.js +42 -0
- package/dist/i18n/de.js.map +1 -0
- package/dist/i18n/en/ai.js +168 -0
- package/dist/i18n/en/ai.js.map +1 -0
- package/dist/i18n/en/authors.js +21 -0
- package/dist/i18n/en/authors.js.map +1 -0
- package/dist/i18n/en/block.js +16 -0
- package/dist/i18n/en/block.js.map +1 -0
- package/dist/i18n/en/comments.js +35 -0
- package/dist/i18n/en/comments.js.map +1 -0
- package/dist/i18n/en/common.js +10 -0
- package/dist/i18n/en/common.js.map +1 -0
- package/dist/i18n/en/composites.js +145 -0
- package/dist/i18n/en/composites.js.map +1 -0
- package/dist/i18n/en/integrations.js +42 -0
- package/dist/i18n/en/integrations.js.map +1 -0
- package/dist/i18n/en/markdown.js +16 -0
- package/dist/i18n/en/markdown.js.map +1 -0
- package/dist/i18n/en/media.js +27 -0
- package/dist/i18n/en/media.js.map +1 -0
- package/dist/i18n/en/mentions.js +10 -0
- package/dist/i18n/en/mentions.js.map +1 -0
- package/dist/i18n/en/outline.js +9 -0
- package/dist/i18n/en/outline.js.map +1 -0
- package/dist/i18n/en/settings.js +12 -0
- package/dist/i18n/en/settings.js.map +1 -0
- package/dist/i18n/en/tables.js +15 -0
- package/dist/i18n/en/tables.js.map +1 -0
- package/dist/i18n/en/themes.js +26 -0
- package/dist/i18n/en/themes.js.map +1 -0
- package/dist/i18n/en/toolbar.js +22 -0
- package/dist/i18n/en/toolbar.js.map +1 -0
- package/dist/i18n/en/transcript.js +10 -0
- package/dist/i18n/en/transcript.js.map +1 -0
- package/dist/i18n/en/tree.js +31 -0
- package/dist/i18n/en/tree.js.map +1 -0
- package/dist/i18n/en.js +42 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/index.d.ts +24 -0
- package/dist/i18n/index.js +31 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +0 -0
- package/dist/integrations/composite-ai/composite-fill.d.ts +17 -0
- package/dist/integrations/composite-ai/composite-fill.js +129 -0
- package/dist/integrations/composite-ai/composite-fill.js.map +1 -0
- package/dist/integrations/composite-ai/composite-summary.d.ts +28 -0
- package/dist/integrations/composite-ai/composite-summary.js +143 -0
- package/dist/integrations/composite-ai/composite-summary.js.map +1 -0
- package/dist/integrations/composite-ai/document-transcribe.d.ts +14 -0
- package/dist/integrations/composite-ai/document-transcribe.js +89 -0
- package/dist/integrations/composite-ai/document-transcribe.js.map +1 -0
- package/dist/integrations/composite-ai/index.d.ts +22 -0
- package/dist/integrations/composite-ai/index.js +80 -0
- package/dist/integrations/composite-ai/index.js.map +1 -0
- package/dist/integrations/composite-media/index.d.ts +19 -0
- package/dist/integrations/composite-media/index.js +72 -0
- package/dist/integrations/composite-media/index.js.map +1 -0
- package/dist/integrations/transcript-ai/index.d.ts +16 -0
- package/dist/integrations/transcript-ai/index.js +63 -0
- package/dist/integrations/transcript-ai/index.js.map +1 -0
- package/dist/integrations/transcript-ai/protocol.d.ts +68 -0
- package/dist/integrations/transcript-ai/protocol.js +132 -0
- package/dist/integrations/transcript-ai/protocol.js.map +1 -0
- package/dist/integrations/transcript-ai/transcript-cleanup.d.ts +35 -0
- package/dist/integrations/transcript-ai/transcript-cleanup.js +169 -0
- package/dist/integrations/transcript-ai/transcript-cleanup.js.map +1 -0
- package/dist/markdown/MarkdownSurface.d.ts +25 -0
- package/dist/markdown/MarkdownSurface.js +93 -0
- package/dist/markdown/MarkdownSurface.js.map +1 -0
- package/dist/markdown/MarkdownSurface.vue.d.ts +76 -0
- package/dist/markdown/MarkdownSurface2.js +237 -0
- package/dist/markdown/MarkdownSurface2.js.map +1 -0
- package/dist/markdown/clipboard.d.ts +17 -0
- package/dist/markdown/clipboard.js +125 -0
- package/dist/markdown/clipboard.js.map +1 -0
- package/dist/markdown/document.d.ts +36 -0
- package/dist/markdown/document.js +100 -0
- package/dist/markdown/document.js.map +1 -0
- package/dist/markdown/frontmatter.d.ts +18 -0
- package/dist/markdown/frontmatter.js +32 -0
- package/dist/markdown/frontmatter.js.map +1 -0
- package/dist/markdown/index.d.ts +6 -0
- package/dist/markdown/index.js +6 -0
- package/dist/markdown/policy.d.ts +34 -0
- package/dist/markdown/policy.js +78 -0
- package/dist/markdown/policy.js.map +1 -0
- package/dist/markdown/react.d.ts +2 -0
- package/dist/markdown/react.js +1 -0
- package/dist/markdown/source-mode.d.ts +49 -0
- package/dist/markdown/source-mode.js +86 -0
- package/dist/markdown/source-mode.js.map +1 -0
- package/dist/markdown/vue.d.ts +2 -0
- package/dist/markdown/vue.js +1 -0
- package/dist/nuxt/module.d.ts +62 -0
- package/dist/nuxt/module.js +101 -0
- package/dist/nuxt/module.js.map +1 -0
- package/dist/nuxt/runtime/install-context.d.ts +16 -0
- package/dist/nuxt/runtime/install-context.js +25 -0
- package/dist/nuxt/runtime/install-context.js.map +1 -0
- package/dist/nuxt/runtime/plugins/editor-context-nuxt-ui.client.ts +8 -0
- package/dist/nuxt/runtime/server/api/ai/chat.post.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/ai/chat.post.js +8 -0
- package/dist/nuxt/runtime/server/api/ai/chat.post.js.map +1 -0
- package/dist/nuxt/runtime/server/api/ai/complete.post.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/ai/complete.post.js +8 -0
- package/dist/nuxt/runtime/server/api/ai/complete.post.js.map +1 -0
- package/dist/nuxt/runtime/server/api/ai/generate.post.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/ai/generate.post.js +8 -0
- package/dist/nuxt/runtime/server/api/ai/generate.post.js.map +1 -0
- package/dist/nuxt/runtime/server/api/ai/models.get.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/ai/models.get.js +8 -0
- package/dist/nuxt/runtime/server/api/ai/models.get.js.map +1 -0
- package/dist/nuxt/runtime/server/api/ai/transcribe.post.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/ai/transcribe.post.js +8 -0
- package/dist/nuxt/runtime/server/api/ai/transcribe.post.js.map +1 -0
- package/dist/nuxt/runtime/server/api/ai/transcript-cleanup.post.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/ai/transcript-cleanup.post.js +8 -0
- package/dist/nuxt/runtime/server/api/ai/transcript-cleanup.post.js.map +1 -0
- package/dist/nuxt/runtime/server/api/editor/assets/[id]/[name].get.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/editor/assets/[id]/[name].get.js +8 -0
- package/dist/nuxt/runtime/server/api/editor/assets/[id]/[name].get.js.map +1 -0
- package/dist/nuxt/runtime/server/api/editor/assets/[id].post.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/editor/assets/[id].post.js +8 -0
- package/dist/nuxt/runtime/server/api/editor/assets/[id].post.js.map +1 -0
- package/dist/nuxt/runtime/server/api/editor/settings.get.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/editor/settings.get.js +8 -0
- package/dist/nuxt/runtime/server/api/editor/settings.get.js.map +1 -0
- package/dist/nuxt/runtime/server/api/editor/settings.put.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/editor/settings.put.js +8 -0
- package/dist/nuxt/runtime/server/api/editor/settings.put.js.map +1 -0
- package/dist/nuxt/runtime/server/api/editor/tags.get.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/editor/tags.get.js +8 -0
- package/dist/nuxt/runtime/server/api/editor/tags.get.js.map +1 -0
- package/dist/nuxt/runtime/server/api/editor/themes/[id].delete.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/editor/themes/[id].delete.js +8 -0
- package/dist/nuxt/runtime/server/api/editor/themes/[id].delete.js.map +1 -0
- package/dist/nuxt/runtime/server/api/editor/themes/[id].get.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/editor/themes/[id].get.js +8 -0
- package/dist/nuxt/runtime/server/api/editor/themes/[id].get.js.map +1 -0
- package/dist/nuxt/runtime/server/api/editor/themes/index.get.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/editor/themes/index.get.js +8 -0
- package/dist/nuxt/runtime/server/api/editor/themes/index.get.js.map +1 -0
- package/dist/nuxt/runtime/server/api/editor/themes/index.post.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/editor/themes/index.post.js +8 -0
- package/dist/nuxt/runtime/server/api/editor/themes/index.post.js.map +1 -0
- package/dist/nuxt/runtime/server/api/editor/users.get.d.ts +5 -0
- package/dist/nuxt/runtime/server/api/editor/users.get.js +8 -0
- package/dist/nuxt/runtime/server/api/editor/users.get.js.map +1 -0
- package/dist/nuxt/runtime/server/plugins/collab.d.ts +5 -0
- package/dist/nuxt/runtime/server/plugins/collab.js +10 -0
- package/dist/nuxt/runtime/server/plugins/collab.js.map +1 -0
- package/dist/nuxt/runtime/server/plugins/editor-server.d.ts +5 -0
- package/dist/nuxt/runtime/server/plugins/editor-server.js +20 -0
- package/dist/nuxt/runtime/server/plugins/editor-server.js.map +1 -0
- package/dist/nuxt/runtime/server/routes/collab/[id].d.ts +5 -0
- package/dist/nuxt/runtime/server/routes/collab/[id].js +35 -0
- package/dist/nuxt/runtime/server/routes/collab/[id].js.map +1 -0
- package/dist/nuxt/runtime/server/utils/editor-route.d.ts +11 -0
- package/dist/nuxt/runtime/server/utils/editor-route.js +49 -0
- package/dist/nuxt/runtime/server/utils/editor-route.js.map +1 -0
- package/dist/outline/EditorOutline.js +124 -0
- package/dist/outline/EditorOutline.js.map +1 -0
- package/dist/outline/EditorOutline.vue.d.ts +15 -0
- package/dist/outline/heading-outline.d.ts +26 -0
- package/dist/outline/heading-outline.js +46 -0
- package/dist/outline/heading-outline.js.map +1 -0
- package/dist/outline/index.d.ts +2 -0
- package/dist/outline/index.js +1 -0
- package/dist/outline/react/EditorOutline.d.ts +12 -0
- package/dist/outline/react/EditorOutline.js +112 -0
- package/dist/outline/react/EditorOutline.js.map +1 -0
- package/dist/outline/react.d.ts +2 -0
- package/dist/outline/react.js +1 -0
- package/dist/outline/vue.d.ts +2 -0
- package/dist/outline/vue.js +1 -0
- package/dist/presets/advanced.d.ts +33 -0
- package/dist/presets/advanced.js +50 -0
- package/dist/presets/advanced.js.map +1 -0
- package/dist/presets/simple.d.ts +9 -0
- package/dist/presets/simple.js +12 -0
- package/dist/presets/simple.js.map +1 -0
- package/dist/react/AdvancedEditor.d.ts +23 -0
- package/dist/react/AdvancedEditor.js +24 -0
- package/dist/react/AdvancedEditor.js.map +1 -0
- package/dist/react/EditorSettingsModal.d.ts +14 -0
- package/dist/react/EditorSettingsModal.js +40 -0
- package/dist/react/EditorSettingsModal.js.map +1 -0
- package/dist/react/EditorSettingsPanel.d.ts +18 -0
- package/dist/react/EditorSettingsPanel.js +40 -0
- package/dist/react/EditorSettingsPanel.js.map +1 -0
- package/dist/react/EditorSurface.d.ts +61 -0
- package/dist/react/EditorSurface.js +277 -0
- package/dist/react/EditorSurface.js.map +1 -0
- package/dist/react/EditorToolbar.d.ts +15 -0
- package/dist/react/EditorToolbar.js +182 -0
- package/dist/react/EditorToolbar.js.map +1 -0
- package/dist/react/Icon.d.ts +13 -0
- package/dist/react/Icon.js +19 -0
- package/dist/react/Icon.js.map +1 -0
- package/dist/react/SettingsSection.d.ts +10 -0
- package/dist/react/SettingsSection.js +22 -0
- package/dist/react/SettingsSection.js.map +1 -0
- package/dist/react/SimpleEditor.d.ts +27 -0
- package/dist/react/SimpleEditor.js +22 -0
- package/dist/react/SimpleEditor.js.map +1 -0
- package/dist/react/advanced-preset.d.ts +11 -0
- package/dist/react/advanced-preset.js +31 -0
- package/dist/react/advanced-preset.js.map +1 -0
- package/dist/react/advanced.d.ts +4 -0
- package/dist/react/advanced.js +3 -0
- package/dist/react/context.d.ts +12 -0
- package/dist/react/context.js +21 -0
- package/dist/react/context.js.map +1 -0
- package/dist/react/editor-ui.d.ts +14 -0
- package/dist/react/editor-ui.js +20 -0
- package/dist/react/editor-ui.js.map +1 -0
- package/dist/react/index.d.ts +17 -0
- package/dist/react/index.js +17 -0
- package/dist/react/notify.d.ts +6 -0
- package/dist/react/notify.js +25 -0
- package/dist/react/notify.js.map +1 -0
- package/dist/react/settings.d.ts +17 -0
- package/dist/react/settings.js +27 -0
- package/dist/react/settings.js.map +1 -0
- package/dist/react/simple.d.ts +2 -0
- package/dist/react/simple.js +1 -0
- package/dist/react/styles/advanced.css +18 -0
- package/dist/react/styles/themes-bridge.css +26 -0
- package/dist/react/styles/ui-vars.css +20 -0
- package/dist/react/suggestion-renderer.d.ts +12 -0
- package/dist/react/suggestion-renderer.js +90 -0
- package/dist/react/suggestion-renderer.js.map +1 -0
- package/dist/react/ui/alert.js +38 -0
- package/dist/react/ui/alert.js.map +1 -0
- package/dist/react/ui/avatar.js +24 -0
- package/dist/react/ui/avatar.js.map +1 -0
- package/dist/react/ui/badge.js +30 -0
- package/dist/react/ui/badge.js.map +1 -0
- package/dist/react/ui/button.js +50 -0
- package/dist/react/ui/button.js.map +1 -0
- package/dist/react/ui/collapsible.js +19 -0
- package/dist/react/ui/collapsible.js.map +1 -0
- package/dist/react/ui/command.js +47 -0
- package/dist/react/ui/command.js.map +1 -0
- package/dist/react/ui/dialog.js +88 -0
- package/dist/react/ui/dialog.js.map +1 -0
- package/dist/react/ui/dropdown-menu.js +70 -0
- package/dist/react/ui/dropdown-menu.js.map +1 -0
- package/dist/react/ui/input-group.js +57 -0
- package/dist/react/ui/input-group.js.map +1 -0
- package/dist/react/ui/input.js +16 -0
- package/dist/react/ui/input.js.map +1 -0
- package/dist/react/ui/label.js +17 -0
- package/dist/react/ui/label.js.map +1 -0
- package/dist/react/ui/popover.js +36 -0
- package/dist/react/ui/popover.js.map +1 -0
- package/dist/react/ui/radio-group.js +29 -0
- package/dist/react/ui/radio-group.js.map +1 -0
- package/dist/react/ui/select.js +88 -0
- package/dist/react/ui/select.js.map +1 -0
- package/dist/react/ui/separator.js +18 -0
- package/dist/react/ui/separator.js.map +1 -0
- package/dist/react/ui/switch.js +21 -0
- package/dist/react/ui/switch.js.map +1 -0
- package/dist/react/ui/table.js +44 -0
- package/dist/react/ui/table.js.map +1 -0
- package/dist/react/ui/tabs.js +41 -0
- package/dist/react/ui/tabs.js.map +1 -0
- package/dist/react/ui/textarea.js +15 -0
- package/dist/react/ui/textarea.js.map +1 -0
- package/dist/react/ui/tooltip.js +37 -0
- package/dist/react/ui/tooltip.js.map +1 -0
- package/dist/react/ui/utils.d.ts +5 -0
- package/dist/react/ui/utils.js +10 -0
- package/dist/react/ui/utils.js.map +1 -0
- package/dist/react/use-editor-i18n.d.ts +12 -0
- package/dist/react/use-editor-i18n.js +17 -0
- package/dist/react/use-editor-i18n.js.map +1 -0
- package/dist/react/use-notifier.d.ts +11 -0
- package/dist/react/use-notifier.js +25 -0
- package/dist/react/use-notifier.js.map +1 -0
- package/dist/react/use-store.d.ts +6 -0
- package/dist/react/use-store.js +10 -0
- package/dist/react/use-store.js.map +1 -0
- package/dist/schema/advanced.d.ts +14 -0
- package/dist/schema/advanced.js +43 -0
- package/dist/schema/advanced.js.map +1 -0
- package/dist/schema/simple.d.ts +10 -0
- package/dist/schema/simple.js +13 -0
- package/dist/schema/simple.js.map +1 -0
- package/dist/server/adapter.d.ts +101 -0
- package/dist/server/ai.d.ts +101 -0
- package/dist/server/ai.js +105 -0
- package/dist/server/ai.js.map +1 -0
- package/dist/server/collab-state.d.ts +16 -0
- package/dist/server/collab-state.js +43 -0
- package/dist/server/collab-state.js.map +1 -0
- package/dist/server/collab.d.ts +68 -0
- package/dist/server/collab.js +187 -0
- package/dist/server/collab.js.map +1 -0
- package/dist/server/errors.d.ts +17 -0
- package/dist/server/errors.js +26 -0
- package/dist/server/errors.js.map +1 -0
- package/dist/server/handlers/ai.d.ts +223 -0
- package/dist/server/handlers/ai.js +422 -0
- package/dist/server/handlers/ai.js.map +1 -0
- package/dist/server/handlers/context.d.ts +64 -0
- package/dist/server/handlers/context.js +85 -0
- package/dist/server/handlers/context.js.map +1 -0
- package/dist/server/handlers/editor.d.ts +107 -0
- package/dist/server/handlers/editor.js +241 -0
- package/dist/server/handlers/editor.js.map +1 -0
- package/dist/server/handlers/index.d.ts +4 -0
- package/dist/server/handlers/index.js +4 -0
- package/dist/server/host.d.ts +61 -0
- package/dist/server/host.js +105 -0
- package/dist/server/host.js.map +1 -0
- package/dist/server/index.d.ts +8 -0
- package/dist/server/index.js +7 -0
- package/dist/server/node.d.ts +24 -0
- package/dist/server/node.js +54 -0
- package/dist/server/node.js.map +1 -0
- package/dist/server/rate-limit.d.ts +22 -0
- package/dist/server/rate-limit.js +34 -0
- package/dist/server/rate-limit.js.map +1 -0
- package/dist/settings/index.d.ts +110 -0
- package/dist/settings/index.js +114 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/settings/values.d.ts +35 -0
- package/dist/settings/values.js +41 -0
- package/dist/settings/values.js.map +1 -0
- package/dist/styles/ai.css +77 -0
- package/dist/styles/authors.css +18 -0
- package/dist/styles/block-ui.css +16 -0
- package/dist/styles/collab.css +26 -0
- package/dist/styles/comments.css +11 -0
- package/dist/styles/composites.css +56 -0
- package/dist/styles/core.css +99 -0
- package/dist/styles/media.css +8 -0
- package/dist/styles/mentions.css +24 -0
- package/dist/styles/tables.css +25 -0
- package/dist/styles/themes.css +622 -0
- package/dist/styles/tokens.css +29 -0
- package/dist/styles/transcript.css +13 -0
- package/dist/tree/DocumentTree.js +595 -0
- package/dist/tree/DocumentTree.js.map +1 -0
- package/dist/tree/DocumentTree.vue.d.ts +36 -0
- package/dist/tree/folder-paths.js +11 -0
- package/dist/tree/folder-paths.js.map +1 -0
- package/dist/tree/index.d.ts +4 -0
- package/dist/tree/index.js +1 -0
- package/dist/tree/react/DocumentTree.d.ts +24 -0
- package/dist/tree/react/DocumentTree.js +579 -0
- package/dist/tree/react/DocumentTree.js.map +1 -0
- package/dist/tree/react/use-tree-view.d.ts +14 -0
- package/dist/tree/react/use-tree-view.js +21 -0
- package/dist/tree/react/use-tree-view.js.map +1 -0
- package/dist/tree/react.d.ts +3 -0
- package/dist/tree/react.js +3 -0
- package/dist/tree/store.d.ts +45 -0
- package/dist/tree/tree-items.js +221 -0
- package/dist/tree/tree-items.js.map +1 -0
- package/dist/tree/tree-view-model.d.ts +29 -0
- package/dist/tree/tree-view-model.js +71 -0
- package/dist/tree/tree-view-model.js.map +1 -0
- package/dist/tree/tree-view.d.ts +15 -0
- package/dist/tree/tree-view.js +21 -0
- package/dist/tree/tree-view.js.map +1 -0
- package/dist/tree/types.d.ts +23 -0
- package/dist/tree/types.js +0 -0
- package/dist/tree/vue.d.ts +3 -0
- package/dist/tree/vue.js +3 -0
- package/dist/vue/AdvancedEditor.js +100 -0
- package/dist/vue/AdvancedEditor.js.map +1 -0
- package/dist/vue/AdvancedEditor.vue.d.ts +71 -0
- package/dist/vue/SimpleEditor.js +61 -0
- package/dist/vue/SimpleEditor.js.map +1 -0
- package/dist/vue/SimpleEditor.vue.d.ts +36 -0
- package/dist/vue/advanced-preset.d.ts +13 -0
- package/dist/vue/advanced-preset.js +33 -0
- package/dist/vue/advanced-preset.js.map +1 -0
- package/dist/vue/advanced.d.ts +3 -0
- package/dist/vue/advanced.js +3 -0
- package/dist/vue/components/EditorSettingsModal.js +69 -0
- package/dist/vue/components/EditorSettingsModal.js.map +1 -0
- package/dist/vue/components/EditorSettingsModal.vue.d.ts +24 -0
- package/dist/vue/components/EditorSettingsPanel.js +58 -0
- package/dist/vue/components/EditorSettingsPanel.js.map +1 -0
- package/dist/vue/components/EditorSettingsPanel.vue.d.ts +29 -0
- package/dist/vue/components/EditorSurface.js +229 -0
- package/dist/vue/components/EditorSurface.js.map +1 -0
- package/dist/vue/components/EditorSurface.vue.d.ts +68 -0
- package/dist/vue/components/EditorToolbar.js +189 -0
- package/dist/vue/components/EditorToolbar.js.map +1 -0
- package/dist/vue/components/EditorToolbar.vue.d.ts +17 -0
- package/dist/vue/components/SettingsSection.js +26 -0
- package/dist/vue/components/SettingsSection.js.map +1 -0
- package/dist/vue/components/SettingsSection.vue.d.ts +21 -0
- package/dist/vue/components/SuggestionList.js +91 -0
- package/dist/vue/components/SuggestionList.js.map +1 -0
- package/dist/vue/components/SuggestionList.vue.d.ts +19 -0
- package/dist/vue/context.d.ts +24 -0
- package/dist/vue/context.js +42 -0
- package/dist/vue/context.js.map +1 -0
- package/dist/vue/index.d.ts +26 -0
- package/dist/vue/index.js +16 -0
- package/dist/vue/kit/index.d.ts +3 -0
- package/dist/vue/kit/index.js +1 -0
- package/dist/vue/kit/nuxt-ui.css +24 -0
- package/dist/vue/kit/nuxt-ui.d.ts +31 -0
- package/dist/vue/kit/nuxt-ui.js +101 -0
- package/dist/vue/kit/nuxt-ui.js.map +1 -0
- package/dist/vue/kit/types.d.ts +370 -0
- package/dist/vue/kit/use-ui-kit.d.ts +12 -0
- package/dist/vue/kit/use-ui-kit.js +17 -0
- package/dist/vue/kit/use-ui-kit.js.map +1 -0
- package/dist/vue/notify.d.ts +12 -0
- package/dist/vue/notify.js +27 -0
- package/dist/vue/notify.js.map +1 -0
- package/dist/vue/settings.d.ts +16 -0
- package/dist/vue/settings.js +64 -0
- package/dist/vue/settings.js.map +1 -0
- package/dist/vue/simple.d.ts +2 -0
- package/dist/vue/simple.js +1 -0
- package/dist/vue/store-ref.d.ts +20 -0
- package/dist/vue/store-ref.js +59 -0
- package/dist/vue/store-ref.js.map +1 -0
- package/dist/vue/suggestion-renderer.d.ts +6 -0
- package/dist/vue/suggestion-renderer.js +20 -0
- package/dist/vue/suggestion-renderer.js.map +1 -0
- package/dist/vue/use-editor-i18n.d.ts +12 -0
- package/dist/vue/use-editor-i18n.js +17 -0
- package/dist/vue/use-editor-i18n.js.map +1 -0
- package/dist/vue/use-editor-ui.d.ts +15 -0
- package/dist/vue/use-editor-ui.js +23 -0
- package/dist/vue/use-editor-ui.js.map +1 -0
- package/dist/vue/use-notifier.d.ts +11 -0
- package/dist/vue/use-notifier.js +19 -0
- package/dist/vue/use-notifier.js.map +1 -0
- package/docs/extending.md +538 -0
- package/docs/integration.md +537 -0
- package/docs/llms.md +375 -0
- package/docs/usage.md +1071 -0
- package/package.json +619 -4
|
@@ -0,0 +1,519 @@
|
|
|
1
|
+
import { ABILITY } from "../../../core/schema/abilities.js";
|
|
2
|
+
import { abilitiesAtSelection, hasAbility } from "../../../core/abilities.js";
|
|
3
|
+
import { aiContextOf, parseBlocks } from "../../../core/pipeline.js";
|
|
4
|
+
import { AI_LANGUAGES } from "../../../settings/values.js";
|
|
5
|
+
import { captureRange, releaseRanges, resolveRange } from "../../../core/doc-anchors.js";
|
|
6
|
+
import { selectionRange } from "../../../core/selection-range.js";
|
|
7
|
+
import { useUiKit } from "../../../vue/kit/use-ui-kit.js";
|
|
8
|
+
import { useEditorSettings } from "../../../vue/settings.js";
|
|
9
|
+
import { useEditorI18n } from "../../../vue/use-editor-i18n.js";
|
|
10
|
+
import { AI_LANGUAGE_KEYS } from "../protocol/models.js";
|
|
11
|
+
import { AI_LIMITS, AI_TASKS } from "../protocol/tasks.js";
|
|
12
|
+
import { aiApplyFailure, applyAiResult, documentMarkdown, insertAtCaretLine, rangeMarkdown } from "../ai-apply.js";
|
|
13
|
+
import { aiMenuActionsOf } from "../ai-menu.js";
|
|
14
|
+
import { aiSelectionHighlightKey, hideAiSelectionHighlight, showAiSelectionHighlight } from "../ai-selection-highlight.js";
|
|
15
|
+
import { previewExtensions } from "../preview-extensions.js";
|
|
16
|
+
import { useNotifier } from "../../../vue/use-notifier.js";
|
|
17
|
+
import { useAiAssistant } from "../use-ai-assistant.js";
|
|
18
|
+
import _sfc_main$1 from "./ModelQuickSwitch.js";
|
|
19
|
+
import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, onBeforeUnmount, openBlock, ref, renderList, shallowRef, toDisplayString, unref, useTemplateRef, watch, withCtx, withModifiers } from "vue";
|
|
20
|
+
import { EditorContent, useEditor } from "@tiptap/vue-3";
|
|
21
|
+
import { BubbleMenu } from "@tiptap/vue-3/menus";
|
|
22
|
+
//#region src/features/ai/components/AiSelectionMenu.vue
|
|
23
|
+
const _hoisted_1 = { class: "flex rounded-md border border-[var(--sk-border)] bg-[var(--sk-bg)] p-0.5 shadow-md" };
|
|
24
|
+
const _hoisted_2 = {
|
|
25
|
+
key: 0,
|
|
26
|
+
class: "flex flex-col gap-1 p-2"
|
|
27
|
+
};
|
|
28
|
+
const _hoisted_3 = { class: "flex items-center justify-end gap-2 px-1 pb-1" };
|
|
29
|
+
const _hoisted_4 = { class: "text-xs text-[var(--sk-muted)]" };
|
|
30
|
+
const _hoisted_5 = {
|
|
31
|
+
key: 1,
|
|
32
|
+
class: "flex flex-col gap-3 p-3"
|
|
33
|
+
};
|
|
34
|
+
const _hoisted_6 = { class: "flex items-center gap-2 text-sm font-medium" };
|
|
35
|
+
const _hoisted_7 = { class: "flex-1 truncate" };
|
|
36
|
+
const _hoisted_8 = { class: "max-h-72 min-h-16 overflow-auto rounded-md border border-[var(--sk-border)] p-3 text-sm" };
|
|
37
|
+
const _hoisted_9 = { class: "flex flex-wrap justify-end gap-2" };
|
|
38
|
+
/**
|
|
39
|
+
* AI quick actions on a text selection: a bubble menu entry opens a popover with the selection tasks of the registry
|
|
40
|
+
* (`selectionMenu`), the result streams into a preview and is applied over the range captured when the menu opened.
|
|
41
|
+
* Caret mode (`/ai`, see `openAiMenuAtCaret`): the same popover opens at the caret with the `caretMenu` tasks and
|
|
42
|
+
* `generate` as free prompt; the result is inserted at the caret line (`insertAtCaretLine`).
|
|
43
|
+
* Needs the AiSelectionHighlight extension on the editor.
|
|
44
|
+
*/
|
|
45
|
+
const MENU_KEY = "aiSelectionMenu";
|
|
46
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
47
|
+
__name: "AiSelectionMenu",
|
|
48
|
+
props: { editor: {} },
|
|
49
|
+
setup(__props) {
|
|
50
|
+
const props = __props;
|
|
51
|
+
const { Alert: UAlert, Button: UButton, Icon: UIcon, Input: UInput, Popover: UPopover, Select: USelect } = useUiKit();
|
|
52
|
+
const notify = useNotifier(() => props.editor);
|
|
53
|
+
const { t } = useEditorI18n();
|
|
54
|
+
const { status, output, error, run, abort, reset } = useAiAssistant(() => props.editor);
|
|
55
|
+
const quickActions = Object.values(AI_TASKS).filter((task) => task.selectionMenu && !task.needsPrompt);
|
|
56
|
+
const custom = AI_TASKS.custom;
|
|
57
|
+
const languageItems = computed(() => AI_LANGUAGES.map((l) => ({
|
|
58
|
+
label: t(AI_LANGUAGE_KEYS[l]),
|
|
59
|
+
value: l
|
|
60
|
+
})));
|
|
61
|
+
const { settings } = useEditorSettings();
|
|
62
|
+
/** Target language of „Übersetzen“: the settings' default each time the menu opens, changeable per call. */
|
|
63
|
+
const language = ref(settings.value.ai.translateLanguage);
|
|
64
|
+
const prompt = ref("");
|
|
65
|
+
/** 'selection': rewrites the captured selection; 'caret': writes new text at the captured (collapsed) caret. */
|
|
66
|
+
const mode = ref("selection");
|
|
67
|
+
const caretActions = Object.values(AI_TASKS).filter((task) => task.caretMenu);
|
|
68
|
+
const actions = computed(() => mode.value === "caret" ? caretActions : quickActions);
|
|
69
|
+
const freePrompt = computed(() => mode.value === "caret" ? AI_TASKS.generate : custom);
|
|
70
|
+
/** Caret mode: whether the document has text before the caret line, for tasks that continue it (`needsSelection`). */
|
|
71
|
+
const hasTextBefore = ref(false);
|
|
72
|
+
const promptInput = useTemplateRef("promptInput");
|
|
73
|
+
/** The selection the menu works on, captured when it opened; null while closed. */
|
|
74
|
+
const range = shallowRef(null);
|
|
75
|
+
/** The current request; „Erneut versuchen“ repeats it. */
|
|
76
|
+
const request = shallowRef(null);
|
|
77
|
+
const picking = computed(() => status.value === "idle" && !output.value);
|
|
78
|
+
const canApply = computed(() => status.value === "done" && !!output.value.trim());
|
|
79
|
+
const requestLabel = computed(() => {
|
|
80
|
+
if (!request.value) return void 0;
|
|
81
|
+
const task = t(request.value.task.labelKey);
|
|
82
|
+
return request.value.language ? t("ai.menu.requestWithLanguage", {
|
|
83
|
+
task,
|
|
84
|
+
language: t(AI_LANGUAGE_KEYS[request.value.language])
|
|
85
|
+
}) : task;
|
|
86
|
+
});
|
|
87
|
+
const menuActions = computed(() => {
|
|
88
|
+
const resolved = range.value && resolveRange(props.editor.state, range.value);
|
|
89
|
+
return resolved ? aiMenuActionsOf(props.editor).filter((action) => action.available?.(props.editor, resolved) ?? true) : [];
|
|
90
|
+
});
|
|
91
|
+
const runningAction = ref(null);
|
|
92
|
+
let actionController = null;
|
|
93
|
+
async function runMenuAction(action) {
|
|
94
|
+
const captured = range.value;
|
|
95
|
+
const resolved = captured && resolveRange(props.editor.state, captured);
|
|
96
|
+
if (!resolved || runningAction.value) return;
|
|
97
|
+
const own = new AbortController();
|
|
98
|
+
actionController = own;
|
|
99
|
+
runningAction.value = action.id;
|
|
100
|
+
try {
|
|
101
|
+
await action.run(props.editor, resolved, own.signal);
|
|
102
|
+
} finally {
|
|
103
|
+
if (actionController === own) actionController = null;
|
|
104
|
+
runningAction.value = null;
|
|
105
|
+
}
|
|
106
|
+
if (range.value === captured) close(false);
|
|
107
|
+
}
|
|
108
|
+
watch(range, (value) => {
|
|
109
|
+
if (!value) {
|
|
110
|
+
actionController?.abort();
|
|
111
|
+
actionController = null;
|
|
112
|
+
} else language.value = settings.value.ai.translateLanguage;
|
|
113
|
+
});
|
|
114
|
+
const shouldShow = ({ editor, element, view, state, from, to }) => {
|
|
115
|
+
if (range.value || !editor.isEditable || state.selection.empty) return false;
|
|
116
|
+
if (!view.hasFocus() && !element.contains(document.activeElement)) return false;
|
|
117
|
+
if (state.doc.textBetween(from, to, " ").trim().length === 0) return false;
|
|
118
|
+
return abilitiesAtSelection(editor).has(ABILITY.aiRewrite);
|
|
119
|
+
};
|
|
120
|
+
function openMenu() {
|
|
121
|
+
const { editor } = props;
|
|
122
|
+
const selected = selectionRange(editor.state);
|
|
123
|
+
if (selected.from >= selected.to) return;
|
|
124
|
+
const captured = captureRange(editor, selected);
|
|
125
|
+
range.value = captured;
|
|
126
|
+
showAiSelectionHighlight(editor, captured);
|
|
127
|
+
editor.view.dispatch(editor.state.tr.setMeta(MENU_KEY, "hide"));
|
|
128
|
+
}
|
|
129
|
+
/** Opens the menu at the caret (requested by `openAiMenuAtCaret`, e.g. the `/ai` slash command). */
|
|
130
|
+
function openAtCaret() {
|
|
131
|
+
const { editor } = props;
|
|
132
|
+
if (range.value || !editor.isEditable) return;
|
|
133
|
+
const { $head, head } = editor.state.selection;
|
|
134
|
+
mode.value = "caret";
|
|
135
|
+
hasTextBefore.value = editor.state.doc.textBetween(0, $head.depth ? $head.before() : head, " ", " ").trim().length > 0;
|
|
136
|
+
range.value = captureRange(editor, {
|
|
137
|
+
from: head,
|
|
138
|
+
to: head
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
function onTransaction({ transaction }) {
|
|
142
|
+
if (transaction.getMeta("aiMenuAtCaret") && hasAbility(props.editor, ABILITY.aiGenerate)) openAtCaret();
|
|
143
|
+
if (transaction.getMeta("aiMenuForSelection") && !range.value && props.editor.isEditable) openMenu();
|
|
144
|
+
}
|
|
145
|
+
props.editor.on("transaction", onTransaction);
|
|
146
|
+
/** Caret mode: the prompt input gets the focus, so the instruction can be typed right away. */
|
|
147
|
+
function onOpenAutoFocus(event) {
|
|
148
|
+
if (mode.value !== "caret") return;
|
|
149
|
+
event.preventDefault();
|
|
150
|
+
promptInput.value?.inputRef?.focus();
|
|
151
|
+
}
|
|
152
|
+
function start(task, options = {}) {
|
|
153
|
+
request.value = {
|
|
154
|
+
task,
|
|
155
|
+
prompt: options.prompt ?? "",
|
|
156
|
+
language: options.language
|
|
157
|
+
};
|
|
158
|
+
generate();
|
|
159
|
+
}
|
|
160
|
+
/** Runs the current request on the current text of the captured range, with the current document as context. */
|
|
161
|
+
function generate() {
|
|
162
|
+
const { editor } = props;
|
|
163
|
+
const current = request.value;
|
|
164
|
+
if (!range.value || !current) return;
|
|
165
|
+
if (mode.value === "caret") {
|
|
166
|
+
generateAtCaret(current);
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
const resolved = resolveRange(editor.state, range.value);
|
|
170
|
+
if (!resolved || resolved.from >= resolved.to) {
|
|
171
|
+
notify({
|
|
172
|
+
title: t("ai.apply.missing.title"),
|
|
173
|
+
description: t("ai.menu.missing.selection"),
|
|
174
|
+
kind: "error"
|
|
175
|
+
});
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
const { blocks } = aiContextOf(editor);
|
|
179
|
+
run({
|
|
180
|
+
task: current.task.id,
|
|
181
|
+
prompt: current.prompt,
|
|
182
|
+
language: current.language,
|
|
183
|
+
selection: rangeMarkdown(editor, resolved),
|
|
184
|
+
context: documentMarkdown(editor),
|
|
185
|
+
blocks
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Caret mode: tasks with `needsSelection` (continue) get the document up to the caret line as `selection` and the rest
|
|
190
|
+
* as `context`; the others the whole document as context.
|
|
191
|
+
*/
|
|
192
|
+
function generateAtCaret(current) {
|
|
193
|
+
const { editor } = props;
|
|
194
|
+
const at = range.value && resolveRange(editor.state, range.value);
|
|
195
|
+
if (!at) {
|
|
196
|
+
notify({
|
|
197
|
+
title: t("ai.apply.missing.title"),
|
|
198
|
+
description: t("ai.menu.missing.line"),
|
|
199
|
+
kind: "error"
|
|
200
|
+
});
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
const { doc } = editor.state;
|
|
204
|
+
const $at = doc.resolve(at.from);
|
|
205
|
+
const splitBefore = $at.depth ? $at.before() : at.from;
|
|
206
|
+
const splitAfter = $at.depth ? $at.after() : at.from;
|
|
207
|
+
const continues = current.task.needsSelection;
|
|
208
|
+
const { blocks } = aiContextOf(editor);
|
|
209
|
+
run({
|
|
210
|
+
task: current.task.id,
|
|
211
|
+
prompt: current.prompt,
|
|
212
|
+
selection: continues ? rangeMarkdown(editor, {
|
|
213
|
+
from: 0,
|
|
214
|
+
to: splitBefore
|
|
215
|
+
}).slice(-AI_LIMITS.selection) : "",
|
|
216
|
+
context: continues ? rangeMarkdown(editor, {
|
|
217
|
+
from: splitAfter,
|
|
218
|
+
to: doc.content.size
|
|
219
|
+
}).slice(0, AI_LIMITS.context) : documentMarkdown(editor),
|
|
220
|
+
blocks
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
/** 'replace' opens the in-document review of the result (AiReviewBar); nothing is written until accepted there. */
|
|
224
|
+
function apply(action) {
|
|
225
|
+
if (!range.value || !canApply.value) return;
|
|
226
|
+
const outcome = applyAiResult(props.editor, action, range.value, output.value);
|
|
227
|
+
if (outcome !== "ok") {
|
|
228
|
+
notify(aiApplyFailure(outcome, t));
|
|
229
|
+
if (outcome !== "unchanged") return;
|
|
230
|
+
}
|
|
231
|
+
close(false);
|
|
232
|
+
}
|
|
233
|
+
function insertAtCaret() {
|
|
234
|
+
if (!range.value || !canApply.value) return;
|
|
235
|
+
if (!insertAtCaretLine(props.editor, range.value, output.value)) {
|
|
236
|
+
notify({
|
|
237
|
+
title: t("ai.apply.missing.title"),
|
|
238
|
+
description: t("ai.menu.missing.insert"),
|
|
239
|
+
kind: "error"
|
|
240
|
+
});
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
close(false);
|
|
244
|
+
}
|
|
245
|
+
/** Closes the menu and removes the highlight; `restoreSelection` selects the captured range (caret mode: caret) again. */
|
|
246
|
+
function close(restoreSelection) {
|
|
247
|
+
const { editor } = props;
|
|
248
|
+
const captured = range.value;
|
|
249
|
+
const caret = mode.value === "caret";
|
|
250
|
+
reset();
|
|
251
|
+
request.value = null;
|
|
252
|
+
prompt.value = "";
|
|
253
|
+
range.value = null;
|
|
254
|
+
mode.value = "selection";
|
|
255
|
+
if (editor.isDestroyed) return;
|
|
256
|
+
hideAiSelectionHighlight(editor);
|
|
257
|
+
const resolved = captured && restoreSelection ? resolveRange(editor.state, captured) : null;
|
|
258
|
+
if (captured) releaseRanges(editor, [captured]);
|
|
259
|
+
if (resolved && (caret || resolved.from < resolved.to)) editor.chain().focus().setTextSelection(resolved).run();
|
|
260
|
+
}
|
|
261
|
+
let anchorRect = new DOMRect();
|
|
262
|
+
const reference = {
|
|
263
|
+
getBoundingClientRect() {
|
|
264
|
+
const { editor } = props;
|
|
265
|
+
if (editor.isDestroyed) return anchorRect;
|
|
266
|
+
if (mode.value === "caret") return caretRect(editor);
|
|
267
|
+
const highlight = aiSelectionHighlightKey.getState(editor.state);
|
|
268
|
+
const highlighted = highlight && resolveRange(editor.state, highlight.anchor);
|
|
269
|
+
if (!highlighted || highlighted.from >= highlighted.to) return anchorRect;
|
|
270
|
+
const { view } = editor;
|
|
271
|
+
const start = view.coordsAtPos(highlighted.from, 1);
|
|
272
|
+
const end = view.coordsAtPos(highlighted.to, -1);
|
|
273
|
+
const bounds = view.dom.getBoundingClientRect();
|
|
274
|
+
const oneLine = end.top < start.bottom;
|
|
275
|
+
const left = oneLine ? start.left : bounds.left;
|
|
276
|
+
const right = oneLine ? end.right : bounds.right;
|
|
277
|
+
anchorRect = new DOMRect(left, start.top, Math.max(right - left, 1), end.bottom - start.top);
|
|
278
|
+
return anchorRect;
|
|
279
|
+
},
|
|
280
|
+
get contextElement() {
|
|
281
|
+
return props.editor.view.dom;
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
let caretAt = null;
|
|
285
|
+
function caretRect(editor) {
|
|
286
|
+
if (caretAt?.state !== editor.state) caretAt = {
|
|
287
|
+
state: editor.state,
|
|
288
|
+
pos: range.value ? resolveRange(editor.state, range.value)?.from ?? null : null
|
|
289
|
+
};
|
|
290
|
+
if (caretAt.pos === null) return anchorRect;
|
|
291
|
+
const coords = editor.view.coordsAtPos(caretAt.pos);
|
|
292
|
+
anchorRect = new DOMRect(coords.left, coords.top, 1, coords.bottom - coords.top);
|
|
293
|
+
return anchorRect;
|
|
294
|
+
}
|
|
295
|
+
const preview = useEditor({
|
|
296
|
+
editable: false,
|
|
297
|
+
extensions: previewExtensions(props.editor),
|
|
298
|
+
editorProps: { attributes: { class: "tiptap ai-selection-preview" } }
|
|
299
|
+
});
|
|
300
|
+
let previewTimer;
|
|
301
|
+
watch(output, () => {
|
|
302
|
+
if (previewTimer) return;
|
|
303
|
+
previewTimer = setTimeout(() => {
|
|
304
|
+
previewTimer = void 0;
|
|
305
|
+
const instance = preview.value;
|
|
306
|
+
if (!instance) return;
|
|
307
|
+
instance.commands.setContent({
|
|
308
|
+
type: "doc",
|
|
309
|
+
content: parseBlocks(props.editor, output.value).blocks
|
|
310
|
+
}, { emitUpdate: false });
|
|
311
|
+
}, 80);
|
|
312
|
+
});
|
|
313
|
+
onBeforeUnmount(() => {
|
|
314
|
+
props.editor.off("transaction", onTransaction);
|
|
315
|
+
clearTimeout(previewTimer);
|
|
316
|
+
abort();
|
|
317
|
+
actionController?.abort();
|
|
318
|
+
if (!props.editor.isDestroyed) hideAiSelectionHighlight(props.editor);
|
|
319
|
+
preview.value?.destroy();
|
|
320
|
+
});
|
|
321
|
+
return (_ctx, _cache) => {
|
|
322
|
+
return openBlock(), createElementBlock(Fragment, null, [createVNode(unref(BubbleMenu), {
|
|
323
|
+
editor: __props.editor,
|
|
324
|
+
"plugin-key": MENU_KEY,
|
|
325
|
+
"should-show": shouldShow,
|
|
326
|
+
options: {
|
|
327
|
+
placement: "top",
|
|
328
|
+
offset: 8
|
|
329
|
+
},
|
|
330
|
+
class: "z-10"
|
|
331
|
+
}, {
|
|
332
|
+
default: withCtx(() => [createElementVNode("div", _hoisted_1, [createVNode(unref(UButton), {
|
|
333
|
+
size: "sm",
|
|
334
|
+
color: "neutral",
|
|
335
|
+
variant: "ghost",
|
|
336
|
+
icon: "i-lucide-sparkles",
|
|
337
|
+
label: unref(t)("ai.menu.trigger"),
|
|
338
|
+
onClick: openMenu
|
|
339
|
+
}, null, 8, ["label"])])]),
|
|
340
|
+
_: 1
|
|
341
|
+
}, 8, ["editor"]), createVNode(unref(UPopover), {
|
|
342
|
+
open: range.value !== null,
|
|
343
|
+
reference,
|
|
344
|
+
dismissible: picking.value,
|
|
345
|
+
content: {
|
|
346
|
+
side: "bottom",
|
|
347
|
+
align: "start",
|
|
348
|
+
updatePositionStrategy: "always",
|
|
349
|
+
onOpenAutoFocus
|
|
350
|
+
},
|
|
351
|
+
ui: { content: "w-[30rem] max-w-[calc(100vw-2rem)]" },
|
|
352
|
+
"onUpdate:open": _cache[7] || (_cache[7] = (value) => {
|
|
353
|
+
if (!value) close(mode.value === "caret");
|
|
354
|
+
})
|
|
355
|
+
}, {
|
|
356
|
+
content: withCtx(() => [picking.value ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
357
|
+
createCommentVNode(" Caret mode generates blocks, selection mode rewrites text in the block: each has its own model slot. "),
|
|
358
|
+
createElementVNode("div", _hoisted_3, [createElementVNode("span", _hoisted_4, toDisplayString(unref(t)("ai.menu.model")), 1), createVNode(_sfc_main$1, {
|
|
359
|
+
slot: mode.value === "caret" ? "generate" : "rewrite",
|
|
360
|
+
size: "xs",
|
|
361
|
+
class: "w-56"
|
|
362
|
+
}, null, 8, ["slot"])]),
|
|
363
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(actions.value, (task) => {
|
|
364
|
+
return openBlock(), createElementBlock("div", {
|
|
365
|
+
key: task.id,
|
|
366
|
+
class: "flex items-center gap-1"
|
|
367
|
+
}, [createVNode(unref(UButton), {
|
|
368
|
+
icon: task.icon,
|
|
369
|
+
label: unref(t)(task.labelKey),
|
|
370
|
+
color: "neutral",
|
|
371
|
+
variant: "ghost",
|
|
372
|
+
class: "flex-1 justify-start",
|
|
373
|
+
disabled: mode.value === "caret" && task.needsSelection && !hasTextBefore.value,
|
|
374
|
+
onClick: ($event) => start(task, task.needsLanguage ? { language: language.value } : {})
|
|
375
|
+
}, null, 8, [
|
|
376
|
+
"icon",
|
|
377
|
+
"label",
|
|
378
|
+
"disabled",
|
|
379
|
+
"onClick"
|
|
380
|
+
]), task.needsLanguage ? (openBlock(), createBlock(unref(USelect), {
|
|
381
|
+
key: 0,
|
|
382
|
+
modelValue: language.value,
|
|
383
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => language.value = $event),
|
|
384
|
+
items: languageItems.value,
|
|
385
|
+
size: "sm",
|
|
386
|
+
class: "w-36",
|
|
387
|
+
"aria-label": unref(t)("ai.menu.targetLanguage")
|
|
388
|
+
}, null, 8, [
|
|
389
|
+
"modelValue",
|
|
390
|
+
"items",
|
|
391
|
+
"aria-label"
|
|
392
|
+
])) : createCommentVNode("v-if", true)]);
|
|
393
|
+
}), 128)),
|
|
394
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(menuActions.value, (action) => {
|
|
395
|
+
return openBlock(), createBlock(unref(UButton), {
|
|
396
|
+
key: action.id,
|
|
397
|
+
icon: action.icon,
|
|
398
|
+
label: action.label,
|
|
399
|
+
color: "neutral",
|
|
400
|
+
variant: "ghost",
|
|
401
|
+
class: "justify-start",
|
|
402
|
+
loading: runningAction.value === action.id,
|
|
403
|
+
disabled: runningAction.value !== null && runningAction.value !== action.id,
|
|
404
|
+
onClick: ($event) => runMenuAction(action)
|
|
405
|
+
}, null, 8, [
|
|
406
|
+
"icon",
|
|
407
|
+
"label",
|
|
408
|
+
"loading",
|
|
409
|
+
"disabled",
|
|
410
|
+
"onClick"
|
|
411
|
+
]);
|
|
412
|
+
}), 128)),
|
|
413
|
+
createElementVNode("form", {
|
|
414
|
+
class: "mt-1 flex gap-1 border-t border-[var(--sk-border)] pt-2",
|
|
415
|
+
onSubmit: _cache[2] || (_cache[2] = withModifiers(($event) => prompt.value.trim() && start(freePrompt.value, { prompt: prompt.value }), ["prevent"]))
|
|
416
|
+
}, [createVNode(unref(UInput), {
|
|
417
|
+
ref_key: "promptInput",
|
|
418
|
+
ref: promptInput,
|
|
419
|
+
modelValue: prompt.value,
|
|
420
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => prompt.value = $event),
|
|
421
|
+
icon: freePrompt.value.icon,
|
|
422
|
+
placeholder: freePrompt.value.promptLabelKey && unref(t)(freePrompt.value.promptLabelKey),
|
|
423
|
+
class: "flex-1"
|
|
424
|
+
}, null, 8, [
|
|
425
|
+
"modelValue",
|
|
426
|
+
"icon",
|
|
427
|
+
"placeholder"
|
|
428
|
+
]), createVNode(unref(UButton), {
|
|
429
|
+
type: "submit",
|
|
430
|
+
icon: "i-lucide-arrow-up",
|
|
431
|
+
disabled: !prompt.value.trim(),
|
|
432
|
+
"aria-label": unref(t)("ai.menu.sendInstruction")
|
|
433
|
+
}, null, 8, ["disabled", "aria-label"])], 32)
|
|
434
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_5, [
|
|
435
|
+
createElementVNode("div", _hoisted_6, [
|
|
436
|
+
request.value ? (openBlock(), createBlock(unref(UIcon), {
|
|
437
|
+
key: 0,
|
|
438
|
+
name: request.value.task.icon,
|
|
439
|
+
class: "size-4"
|
|
440
|
+
}, null, 8, ["name"])) : createCommentVNode("v-if", true),
|
|
441
|
+
createElementVNode("span", _hoisted_7, toDisplayString(requestLabel.value), 1),
|
|
442
|
+
unref(status) === "streaming" ? (openBlock(), createBlock(unref(UIcon), {
|
|
443
|
+
key: 1,
|
|
444
|
+
name: "i-lucide-loader-circle",
|
|
445
|
+
class: "size-4 animate-spin text-[var(--sk-muted)]"
|
|
446
|
+
})) : createCommentVNode("v-if", true)
|
|
447
|
+
]),
|
|
448
|
+
unref(error) ? (openBlock(), createBlock(unref(UAlert), {
|
|
449
|
+
key: 0,
|
|
450
|
+
color: "error",
|
|
451
|
+
variant: "subtle",
|
|
452
|
+
title: unref(error)
|
|
453
|
+
}, null, 8, ["title"])) : createCommentVNode("v-if", true),
|
|
454
|
+
createElementVNode("div", _hoisted_8, [unref(preview) ? (openBlock(), createBlock(unref(EditorContent), {
|
|
455
|
+
key: 0,
|
|
456
|
+
editor: unref(preview)
|
|
457
|
+
}, null, 8, ["editor"])) : createCommentVNode("v-if", true)]),
|
|
458
|
+
createElementVNode("div", _hoisted_9, [
|
|
459
|
+
unref(status) === "streaming" ? (openBlock(), createBlock(unref(UButton), {
|
|
460
|
+
key: 0,
|
|
461
|
+
size: "sm",
|
|
462
|
+
color: "neutral",
|
|
463
|
+
variant: "ghost",
|
|
464
|
+
label: unref(t)("ai.menu.cancel"),
|
|
465
|
+
onClick: _cache[3] || (_cache[3] = ($event) => unref(abort)())
|
|
466
|
+
}, null, 8, ["label"])) : createCommentVNode("v-if", true),
|
|
467
|
+
createVNode(unref(UButton), {
|
|
468
|
+
size: "sm",
|
|
469
|
+
color: "neutral",
|
|
470
|
+
variant: "ghost",
|
|
471
|
+
label: unref(t)("ai.menu.discard"),
|
|
472
|
+
onClick: _cache[4] || (_cache[4] = ($event) => close(true))
|
|
473
|
+
}, null, 8, ["label"]),
|
|
474
|
+
createVNode(unref(UButton), {
|
|
475
|
+
size: "sm",
|
|
476
|
+
color: "neutral",
|
|
477
|
+
variant: "outline",
|
|
478
|
+
icon: "i-lucide-rotate-ccw",
|
|
479
|
+
label: unref(t)("ai.menu.retry"),
|
|
480
|
+
disabled: unref(status) === "streaming",
|
|
481
|
+
onClick: generate
|
|
482
|
+
}, null, 8, ["label", "disabled"]),
|
|
483
|
+
mode.value === "caret" ? (openBlock(), createBlock(unref(UButton), {
|
|
484
|
+
key: 1,
|
|
485
|
+
size: "sm",
|
|
486
|
+
icon: "i-lucide-text-cursor-input",
|
|
487
|
+
label: unref(t)("ai.menu.insert"),
|
|
488
|
+
disabled: !canApply.value,
|
|
489
|
+
onClick: insertAtCaret
|
|
490
|
+
}, null, 8, ["label", "disabled"])) : (openBlock(), createElementBlock(Fragment, { key: 2 }, [createVNode(unref(UButton), {
|
|
491
|
+
size: "sm",
|
|
492
|
+
color: "neutral",
|
|
493
|
+
variant: "outline",
|
|
494
|
+
icon: "i-lucide-list-plus",
|
|
495
|
+
label: unref(t)("ai.menu.insertBelow"),
|
|
496
|
+
disabled: !canApply.value,
|
|
497
|
+
onClick: _cache[5] || (_cache[5] = ($event) => apply("insert-below"))
|
|
498
|
+
}, null, 8, ["label", "disabled"]), createVNode(unref(UButton), {
|
|
499
|
+
size: "sm",
|
|
500
|
+
icon: "i-lucide-replace",
|
|
501
|
+
label: unref(t)("ai.menu.replace"),
|
|
502
|
+
disabled: !canApply.value,
|
|
503
|
+
onClick: _cache[6] || (_cache[6] = ($event) => apply("replace"))
|
|
504
|
+
}, null, 8, ["label", "disabled"])], 64))
|
|
505
|
+
])
|
|
506
|
+
]))]),
|
|
507
|
+
_: 1
|
|
508
|
+
}, 8, [
|
|
509
|
+
"open",
|
|
510
|
+
"dismissible",
|
|
511
|
+
"content"
|
|
512
|
+
])], 64);
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
});
|
|
516
|
+
//#endregion
|
|
517
|
+
export { _sfc_main as default };
|
|
518
|
+
|
|
519
|
+
//# sourceMappingURL=AiSelectionMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiSelectionMenu.js","names":["_openBlock","_createElementBlock","_Fragment","_createVNode","_unref","_withCtx","_createElementVNode","_createCommentVNode","_toDisplayString","ModelQuickSwitch","_renderList","_createBlock","_withModifiers"],"sources":["../../../../src/features/ai/components/AiSelectionMenu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { BubbleMenuPluginProps } from '@tiptap/extension-bubble-menu'\nimport type { EditorState } from '@tiptap/pm/state'\nimport { type Editor, EditorContent, type EditorEvents, useEditor } from '@tiptap/vue-3'\nimport { BubbleMenu } from '@tiptap/vue-3/menus'\nimport { computed, onBeforeUnmount, ref, shallowRef, useTemplateRef, watch } from 'vue'\nimport { abilitiesAtSelection, aiContextOf, captureRange, type DocAnchor, hasAbility, parseBlocks, releaseRanges, resolveRange, selectionRange } from '../../../core'\nimport { useEditorSettings } from '../../../vue/settings'\nimport type { InputExposed } from '../../../vue/kit/types'\nimport { useUiKit } from '../../../vue/kit/use-ui-kit'\nimport { useNotifier } from '../../../vue/use-notifier'\nimport { useEditorI18n } from '../../../vue/use-editor-i18n'\nimport { ABILITY } from '../../../core/schema'\nimport { AI_LANGUAGES, type AiLanguage } from '../../../settings'\nimport { AI_MENU_AT_CARET, AI_MENU_FOR_SELECTION, type AiMenuAction, aiMenuActionsOf } from '../ai-menu'\nimport { aiApplyFailure, type AiResultAction, applyAiResult, documentMarkdown, insertAtCaretLine, rangeMarkdown } from '../ai-apply'\nimport { aiSelectionHighlightKey, hideAiSelectionHighlight, showAiSelectionHighlight } from '../ai-selection-highlight'\nimport { previewExtensions } from '../preview-extensions'\nimport { AI_LANGUAGE_KEYS, AI_LIMITS, AI_TASKS, type AiTask } from '../protocol'\nimport { useAiAssistant } from '../use-ai-assistant'\nimport ModelQuickSwitch from './ModelQuickSwitch.vue'\n\n/**\n * AI quick actions on a text selection: a bubble menu entry opens a popover with the selection tasks of the registry\n * (`selectionMenu`), the result streams into a preview and is applied over the range captured when the menu opened.\n * Caret mode (`/ai`, see `openAiMenuAtCaret`): the same popover opens at the caret with the `caretMenu` tasks and\n * `generate` as free prompt; the result is inserted at the caret line (`insertAtCaretLine`).\n * Needs the AiSelectionHighlight extension on the editor.\n */\nconst props = defineProps<{ editor: Editor }>()\n\nconst MENU_KEY = 'aiSelectionMenu'\nconst { Alert: UAlert, Button: UButton, Icon: UIcon, Input: UInput, Popover: UPopover, Select: USelect } = useUiKit()\nconst notify = useNotifier(() => props.editor)\nconst { t } = useEditorI18n()\nconst { status, output, error, run, abort, reset } = useAiAssistant(() => props.editor)\n\n// Registry order; the free prompt (`custom`) gets its own input below the list.\nconst quickActions = Object.values(AI_TASKS).filter(task => task.selectionMenu && !task.needsPrompt)\nconst custom = AI_TASKS.custom\nconst languageItems = computed(() => AI_LANGUAGES.map(l => ({ label: t(AI_LANGUAGE_KEYS[l]), value: l })))\nconst { settings } = useEditorSettings()\n/** Target language of „Übersetzen“: the settings' default each time the menu opens, changeable per call. */\nconst language = ref<AiLanguage>(settings.value.ai.translateLanguage)\nconst prompt = ref('')\n\n/** 'selection': rewrites the captured selection; 'caret': writes new text at the captured (collapsed) caret. */\nconst mode = ref<'selection' | 'caret'>('selection')\nconst caretActions = Object.values(AI_TASKS).filter(task => task.caretMenu)\nconst actions = computed(() => mode.value === 'caret' ? caretActions : quickActions)\nconst freePrompt = computed(() => mode.value === 'caret' ? AI_TASKS.generate : custom)\n/** Caret mode: whether the document has text before the caret line, for tasks that continue it (`needsSelection`). */\nconst hasTextBefore = ref(false)\nconst promptInput = useTemplateRef<InputExposed>('promptInput')\n\n/** The selection the menu works on, captured when it opened; null while closed. */\nconst range = shallowRef<DocAnchor | null>(null)\n/** The current request; „Erneut versuchen“ repeats it. */\nconst request = shallowRef<{ task: AiTask, prompt: string, language?: AiLanguage } | null>(null)\nconst picking = computed(() => status.value === 'idle' && !output.value)\nconst canApply = computed(() => status.value === 'done' && !!output.value.trim())\nconst requestLabel = computed(() => {\n if (!request.value) return undefined\n const task = t(request.value.task.labelKey)\n return request.value.language ? t('ai.menu.requestWithLanguage', { task, language: t(AI_LANGUAGE_KEYS[request.value.language]) }) : task\n})\n\n// Extra rows other features contribute (`aiMenuActions` of their extensions), offered while the selection qualifies.\nconst menuActions = computed(() => {\n const resolved = range.value && resolveRange(props.editor.state, range.value)\n return resolved ? aiMenuActionsOf(props.editor).filter(action => action.available?.(props.editor, resolved) ?? true) : []\n})\nconst runningAction = ref<string | null>(null)\nlet actionController: AbortController | null = null\nasync function runMenuAction(action: AiMenuAction) {\n const captured = range.value\n const resolved = captured && resolveRange(props.editor.state, captured)\n if (!resolved || runningAction.value) return\n const own = new AbortController()\n actionController = own\n runningAction.value = action.id\n try {\n await action.run(props.editor, resolved, own.signal)\n }\n finally {\n if (actionController === own) actionController = null\n runningAction.value = null\n }\n if (range.value === captured) close(false)\n}\n// Closing the menu cancels a running action; opening it starts from the default translation language.\nwatch(range, (value) => {\n if (!value) {\n actionController?.abort()\n actionController = null\n }\n else language.value = settings.value.ai.translateLanguage\n})\n\nconst shouldShow: NonNullable<BubbleMenuPluginProps['shouldShow']> = ({ editor, element, view, state, from, to }) => {\n if (range.value || !editor.isEditable || state.selection.empty) return false\n if (!view.hasFocus() && !element.contains(document.activeElement)) return false\n if (state.doc.textBetween(from, to, ' ').trim().length === 0) return false\n return abilitiesAtSelection(editor).has(ABILITY.aiRewrite)\n}\n\nfunction openMenu() {\n const { editor } = props\n const selected = selectionRange(editor.state)\n if (selected.from >= selected.to) return\n const captured = captureRange(editor, selected)\n range.value = captured\n showAiSelectionHighlight(editor, captured)\n editor.view.dispatch(editor.state.tr.setMeta(MENU_KEY, 'hide'))\n}\n\n/** Opens the menu at the caret (requested by `openAiMenuAtCaret`, e.g. the `/ai` slash command). */\nfunction openAtCaret() {\n const { editor } = props\n if (range.value || !editor.isEditable) return\n const { $head, head } = editor.state.selection\n mode.value = 'caret'\n hasTextBefore.value = editor.state.doc.textBetween(0, $head.depth ? $head.before() : head, ' ', ' ').trim().length > 0\n range.value = captureRange(editor, { from: head, to: head })\n}\n\nfunction onTransaction({ transaction }: EditorEvents['transaction']) {\n if (transaction.getMeta(AI_MENU_AT_CARET) && hasAbility(props.editor, ABILITY.aiGenerate)) openAtCaret()\n // Requested by `openAiMenuForSelection` (the „Mit KI bearbeiten“ block action); a menu already open stays as it is.\n if (transaction.getMeta(AI_MENU_FOR_SELECTION) && !range.value && props.editor.isEditable) openMenu()\n}\nprops.editor.on('transaction', onTransaction)\n\n/** Caret mode: the prompt input gets the focus, so the instruction can be typed right away. */\nfunction onOpenAutoFocus(event: Event) {\n if (mode.value !== 'caret') return\n event.preventDefault()\n promptInput.value?.inputRef?.focus()\n}\n\nfunction start(task: AiTask, options: { prompt?: string, language?: AiLanguage } = {}) {\n request.value = { task, prompt: options.prompt ?? '', language: options.language }\n generate()\n}\n\n/** Runs the current request on the current text of the captured range, with the current document as context. */\nfunction generate() {\n const { editor } = props\n const current = request.value\n if (!range.value || !current) return\n if (mode.value === 'caret') {\n generateAtCaret(current)\n return\n }\n const resolved = resolveRange(editor.state, range.value)\n if (!resolved || resolved.from >= resolved.to) {\n notify({ title: t('ai.apply.missing.title'), description: t('ai.menu.missing.selection'), kind: 'error' })\n return\n }\n const { blocks } = aiContextOf(editor)\n void run({\n task: current.task.id,\n prompt: current.prompt,\n language: current.language,\n selection: rangeMarkdown(editor, resolved),\n context: documentMarkdown(editor),\n blocks,\n })\n}\n\n/**\n * Caret mode: tasks with `needsSelection` (continue) get the document up to the caret line as `selection` and the rest\n * as `context`; the others the whole document as context.\n */\nfunction generateAtCaret(current: NonNullable<typeof request.value>) {\n const { editor } = props\n const at = range.value && resolveRange(editor.state, range.value)\n if (!at) {\n notify({ title: t('ai.apply.missing.title'), description: t('ai.menu.missing.line'), kind: 'error' })\n return\n }\n const { doc } = editor.state\n const $at = doc.resolve(at.from)\n const splitBefore = $at.depth ? $at.before() : at.from\n const splitAfter = $at.depth ? $at.after() : at.from\n const continues = current.task.needsSelection\n const { blocks } = aiContextOf(editor)\n void run({\n task: current.task.id,\n prompt: current.prompt,\n selection: continues ? rangeMarkdown(editor, { from: 0, to: splitBefore }).slice(-AI_LIMITS.selection) : '',\n context: continues ? rangeMarkdown(editor, { from: splitAfter, to: doc.content.size }).slice(0, AI_LIMITS.context) : documentMarkdown(editor),\n blocks,\n })\n}\n\n/** 'replace' opens the in-document review of the result (AiReviewBar); nothing is written until accepted there. */\nfunction apply(action: AiResultAction) {\n if (!range.value || !canApply.value) return\n const outcome = applyAiResult(props.editor, action, range.value, output.value)\n if (outcome !== 'ok') {\n notify(aiApplyFailure(outcome, t))\n if (outcome !== 'unchanged') return\n }\n close(false)\n}\n\nfunction insertAtCaret() {\n if (!range.value || !canApply.value) return\n if (!insertAtCaretLine(props.editor, range.value, output.value)) {\n notify({ title: t('ai.apply.missing.title'), description: t('ai.menu.missing.insert'), kind: 'error' })\n return\n }\n close(false)\n}\n\n/** Closes the menu and removes the highlight; `restoreSelection` selects the captured range (caret mode: caret) again. */\nfunction close(restoreSelection: boolean) {\n const { editor } = props\n const captured = range.value\n const caret = mode.value === 'caret'\n reset()\n request.value = null\n prompt.value = ''\n range.value = null\n mode.value = 'selection'\n if (editor.isDestroyed) return\n hideAiSelectionHighlight(editor)\n const resolved = captured && restoreSelection ? resolveRange(editor.state, captured) : null\n if (captured) releaseRanges(editor, [captured])\n if (resolved && (caret || resolved.from < resolved.to)) editor.chain().focus().setTextSelection(resolved).run()\n}\n\n// Popover anchor: the highlighted range (its plugin state follows local and remote edits); in caret mode the caret.\nlet anchorRect = new DOMRect()\nconst reference = {\n getBoundingClientRect(): DOMRect {\n const { editor } = props\n if (editor.isDestroyed) return anchorRect\n if (mode.value === 'caret') return caretRect(editor)\n const highlight = aiSelectionHighlightKey.getState(editor.state)\n const highlighted = highlight && resolveRange(editor.state, highlight.anchor)\n if (!highlighted || highlighted.from >= highlighted.to) return anchorRect\n const { view } = editor\n const start = view.coordsAtPos(highlighted.from, 1)\n const end = view.coordsAtPos(highlighted.to, -1)\n // Across lines the range spans the editor's width.\n const bounds = view.dom.getBoundingClientRect()\n const oneLine = end.top < start.bottom\n const left = oneLine ? start.left : bounds.left\n const right = oneLine ? end.right : bounds.right\n anchorRect = new DOMRect(left, start.top, Math.max(right - left, 1), end.bottom - start.top)\n return anchorRect\n },\n get contextElement() {\n return props.editor.view.dom\n },\n}\n\n// The caret's position is resolved from its anchor once per editor state (the anchor is measured every frame).\nlet caretAt: { state: EditorState, pos: number | null } | null = null\nfunction caretRect(editor: Editor): DOMRect {\n if (caretAt?.state !== editor.state) {\n caretAt = { state: editor.state, pos: range.value ? resolveRange(editor.state, range.value)?.from ?? null : null }\n }\n if (caretAt.pos === null) return anchorRect\n const coords = editor.view.coordsAtPos(caretAt.pos)\n anchorRect = new DOMRect(coords.left, coords.top, 1, coords.bottom - coords.top)\n return anchorRect\n}\n\nconst preview = useEditor({\n editable: false,\n extensions: previewExtensions(props.editor),\n editorProps: { attributes: { class: 'tiptap ai-selection-preview' } },\n})\n\n// Coalesce streamed deltas: re-parse the Markdown at most every 80 ms; speaker lines show as segments, as applied.\nlet previewTimer: ReturnType<typeof setTimeout> | undefined\nwatch(output, () => {\n if (previewTimer) return\n previewTimer = setTimeout(() => {\n previewTimer = undefined\n const instance = preview.value\n if (!instance) return\n instance.commands.setContent({ type: 'doc', content: parseBlocks(props.editor, output.value).blocks }, { emitUpdate: false })\n }, 80)\n})\n\nonBeforeUnmount(() => {\n props.editor.off('transaction', onTransaction)\n clearTimeout(previewTimer)\n abort()\n actionController?.abort()\n if (!props.editor.isDestroyed) hideAiSelectionHighlight(props.editor)\n preview.value?.destroy()\n})\n</script>\n\n<template>\n <BubbleMenu :editor=\"editor\" :plugin-key=\"MENU_KEY\" :should-show=\"shouldShow\" :options=\"{ placement: 'top', offset: 8 }\" class=\"z-10\">\n <div class=\"flex rounded-md border border-[var(--sk-border)] bg-[var(--sk-bg)] p-0.5 shadow-md\">\n <UButton size=\"sm\" color=\"neutral\" variant=\"ghost\" icon=\"i-lucide-sparkles\" :label=\"t('ai.menu.trigger')\" @click=\"openMenu\" />\n </div>\n </BubbleMenu>\n\n <UPopover\n :open=\"range !== null\"\n :reference=\"reference\"\n :dismissible=\"picking\"\n :content=\"{ side: 'bottom', align: 'start', updatePositionStrategy: 'always', onOpenAutoFocus }\"\n :ui=\"{ content: 'w-[30rem] max-w-[calc(100vw-2rem)]' }\"\n @update:open=\"(value: boolean) => { if (!value) close(mode === 'caret') }\"\n >\n <template #content>\n <div v-if=\"picking\" class=\"flex flex-col gap-1 p-2\">\n <!-- Caret mode generates blocks, selection mode rewrites text in the block: each has its own model slot. -->\n <div class=\"flex items-center justify-end gap-2 px-1 pb-1\">\n <span class=\"text-xs text-[var(--sk-muted)]\">{{ t('ai.menu.model') }}</span>\n <ModelQuickSwitch :slot=\"mode === 'caret' ? 'generate' : 'rewrite'\" size=\"xs\" class=\"w-56\" />\n </div>\n <div v-for=\"task in actions\" :key=\"task.id\" class=\"flex items-center gap-1\">\n <UButton\n :icon=\"task.icon\"\n :label=\"t(task.labelKey)\"\n color=\"neutral\"\n variant=\"ghost\"\n class=\"flex-1 justify-start\"\n :disabled=\"mode === 'caret' && task.needsSelection && !hasTextBefore\"\n @click=\"start(task, task.needsLanguage ? { language } : {})\"\n />\n <USelect v-if=\"task.needsLanguage\" v-model=\"language\" :items=\"languageItems\" size=\"sm\" class=\"w-36\" :aria-label=\"t('ai.menu.targetLanguage')\" />\n </div>\n <UButton\n v-for=\"action in menuActions\"\n :key=\"action.id\"\n :icon=\"action.icon\"\n :label=\"action.label\"\n color=\"neutral\"\n variant=\"ghost\"\n class=\"justify-start\"\n :loading=\"runningAction === action.id\"\n :disabled=\"runningAction !== null && runningAction !== action.id\"\n @click=\"runMenuAction(action)\"\n />\n <form class=\"mt-1 flex gap-1 border-t border-[var(--sk-border)] pt-2\" @submit.prevent=\"prompt.trim() && start(freePrompt, { prompt })\">\n <UInput ref=\"promptInput\" v-model=\"prompt\" :icon=\"freePrompt.icon\" :placeholder=\"freePrompt.promptLabelKey && t(freePrompt.promptLabelKey)\" class=\"flex-1\" />\n <UButton type=\"submit\" icon=\"i-lucide-arrow-up\" :disabled=\"!prompt.trim()\" :aria-label=\"t('ai.menu.sendInstruction')\" />\n </form>\n </div>\n\n <div v-else class=\"flex flex-col gap-3 p-3\">\n <div class=\"flex items-center gap-2 text-sm font-medium\">\n <UIcon v-if=\"request\" :name=\"request.task.icon\" class=\"size-4\" />\n <span class=\"flex-1 truncate\">{{ requestLabel }}</span>\n <UIcon v-if=\"status === 'streaming'\" name=\"i-lucide-loader-circle\" class=\"size-4 animate-spin text-[var(--sk-muted)]\" />\n </div>\n <UAlert v-if=\"error\" color=\"error\" variant=\"subtle\" :title=\"error\" />\n <div class=\"max-h-72 min-h-16 overflow-auto rounded-md border border-[var(--sk-border)] p-3 text-sm\">\n <EditorContent v-if=\"preview\" :editor=\"preview\" />\n </div>\n <div class=\"flex flex-wrap justify-end gap-2\">\n <UButton v-if=\"status === 'streaming'\" size=\"sm\" color=\"neutral\" variant=\"ghost\" :label=\"t('ai.menu.cancel')\" @click=\"abort()\" />\n <UButton size=\"sm\" color=\"neutral\" variant=\"ghost\" :label=\"t('ai.menu.discard')\" @click=\"close(true)\" />\n <UButton\n size=\"sm\"\n color=\"neutral\"\n variant=\"outline\"\n icon=\"i-lucide-rotate-ccw\"\n :label=\"t('ai.menu.retry')\"\n :disabled=\"status === 'streaming'\"\n @click=\"generate\"\n />\n <UButton v-if=\"mode === 'caret'\" size=\"sm\" icon=\"i-lucide-text-cursor-input\" :label=\"t('ai.menu.insert')\" :disabled=\"!canApply\" @click=\"insertAtCaret\" />\n <template v-else>\n <UButton\n size=\"sm\"\n color=\"neutral\"\n variant=\"outline\"\n icon=\"i-lucide-list-plus\"\n :label=\"t('ai.menu.insertBelow')\"\n :disabled=\"!canApply\"\n @click=\"apply('insert-below')\"\n />\n <UButton size=\"sm\" icon=\"i-lucide-replace\" :label=\"t('ai.menu.replace')\" :disabled=\"!canApply\" @click=\"apply('replace')\" />\n </template>\n </div>\n </div>\n </template>\n </UPopover>\n</template>\n"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Editor } from "@tiptap/vue-3";
|
|
2
|
+
//#region src/features/ai/components/AiSelectionMenu.vue.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* AI quick actions on a text selection: a bubble menu entry opens a popover with the selection tasks of the registry
|
|
5
|
+
* (`selectionMenu`), the result streams into a preview and is applied over the range captured when the menu opened.
|
|
6
|
+
* Caret mode (`/ai`, see `openAiMenuAtCaret`): the same popover opens at the caret with the `caretMenu` tasks and
|
|
7
|
+
* `generate` as free prompt; the result is inserted at the caret line (`insertAtCaretLine`).
|
|
8
|
+
* Needs the AiSelectionHighlight extension on the editor.
|
|
9
|
+
*/
|
|
10
|
+
type __VLS_Props = {
|
|
11
|
+
editor: Editor;
|
|
12
|
+
};
|
|
13
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { _default as default };
|
|
17
|
+
//# sourceMappingURL=AiSelectionMenu.vue.d.ts.map
|