@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,124 @@
|
|
|
1
|
+
import { useUiKit } from "../../../vue/kit/use-ui-kit.js";
|
|
2
|
+
import { useEditorSettings } from "../../../vue/settings.js";
|
|
3
|
+
import { useComments } from "../use-comments.js";
|
|
4
|
+
import _sfc_main$1 from "./CommentComposer.js";
|
|
5
|
+
import _sfc_main$2 from "./CommentThreadView.js";
|
|
6
|
+
import { computed, createBlock, createCommentVNode, defineComponent, openBlock, unref, withCtx } from "vue";
|
|
7
|
+
//#region src/features/comments/components/CommentsPopover.vue
|
|
8
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
9
|
+
__name: "CommentsPopover",
|
|
10
|
+
props: { editor: {} },
|
|
11
|
+
setup(__props) {
|
|
12
|
+
/**
|
|
13
|
+
* Inline comments („Inline“ layout): the draft composer or the active thread in a compact popover at its text.
|
|
14
|
+
* Opens when a comment is started or highlighted text is clicked (another highlight switches the thread); a click
|
|
15
|
+
* outside or Esc in the popover closes it (cancels the draft / deactivates the thread). Esc in the editor is a binding
|
|
16
|
+
* of `DocumentEditor` (ProseMirror marks every Esc in the editor as handled). Orphaned
|
|
17
|
+
* threads (opened from the toolbar's `CommentsListMenu`) anchor at the top of the editor. Renders only when the
|
|
18
|
+
* user's comments layout is `inline`.
|
|
19
|
+
*/
|
|
20
|
+
const props = __props;
|
|
21
|
+
const { Popover: UPopover } = useUiKit();
|
|
22
|
+
const { settings } = useEditorSettings();
|
|
23
|
+
const enabled = computed(() => settings.value.editing.commentsLayout === "inline");
|
|
24
|
+
const comments = useComments(() => enabled.value ? props.editor : void 0);
|
|
25
|
+
const activeThread = computed(() => {
|
|
26
|
+
const id = comments.active.value;
|
|
27
|
+
return id ? comments.threads.value.find((t) => t.id === id) ?? null : null;
|
|
28
|
+
});
|
|
29
|
+
const drafting = computed(() => !!comments.draft.value);
|
|
30
|
+
const open = computed(() => enabled.value && comments.available.value && (drafting.value || !!activeThread.value));
|
|
31
|
+
/** The draft range, else the active thread's range; null for an orphan. */
|
|
32
|
+
function anchorRange() {
|
|
33
|
+
const draft = comments.draft.value;
|
|
34
|
+
if (draft) return draft;
|
|
35
|
+
const id = comments.active.value;
|
|
36
|
+
return id ? comments.ranges.value.get(id) ?? null : null;
|
|
37
|
+
}
|
|
38
|
+
let anchorRect = new DOMRect();
|
|
39
|
+
/** Virtual reference: the anchor text (its first line's extent, or the editor's width when it spans lines). */
|
|
40
|
+
const reference = {
|
|
41
|
+
getBoundingClientRect() {
|
|
42
|
+
const editor = props.editor;
|
|
43
|
+
if (!editor || editor.isDestroyed) return anchorRect;
|
|
44
|
+
const { view } = editor;
|
|
45
|
+
const bounds = view.dom.getBoundingClientRect();
|
|
46
|
+
const range = anchorRange();
|
|
47
|
+
if (!range || range.from >= range.to || range.to > editor.state.doc.content.size) {
|
|
48
|
+
anchorRect = new DOMRect(bounds.left, bounds.top, Math.max(bounds.width, 1), 1);
|
|
49
|
+
return anchorRect;
|
|
50
|
+
}
|
|
51
|
+
const start = view.coordsAtPos(range.from, 1);
|
|
52
|
+
const end = view.coordsAtPos(range.to, -1);
|
|
53
|
+
const oneLine = end.top < start.bottom;
|
|
54
|
+
const left = oneLine ? start.left : bounds.left;
|
|
55
|
+
const right = oneLine ? end.right : bounds.right;
|
|
56
|
+
anchorRect = new DOMRect(left, start.top, Math.max(right - left, 1), end.bottom - start.top);
|
|
57
|
+
return anchorRect;
|
|
58
|
+
},
|
|
59
|
+
get contextElement() {
|
|
60
|
+
const editor = props.editor;
|
|
61
|
+
return editor && !editor.isDestroyed ? editor.view.dom : void 0;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
function close() {
|
|
65
|
+
if (drafting.value) comments.cancelDraft();
|
|
66
|
+
else comments.activate(null);
|
|
67
|
+
}
|
|
68
|
+
/** Menus of the thread (dropdowns, portalled) count as inside, so choosing an action does not close the popover. */
|
|
69
|
+
function onInteractOutside(event) {
|
|
70
|
+
const target = event.detail?.originalEvent?.target ?? event.target;
|
|
71
|
+
if (target instanceof Element && target.closest("[role=\"menu\"], [data-reka-popper-content-wrapper]")) event.preventDefault();
|
|
72
|
+
}
|
|
73
|
+
/** The active thread keeps the editor focused (clicks in the text activate it); the composer focuses itself. */
|
|
74
|
+
function onOpenAutoFocus(event) {
|
|
75
|
+
if (!drafting.value) event.preventDefault();
|
|
76
|
+
}
|
|
77
|
+
return (_ctx, _cache) => {
|
|
78
|
+
return enabled.value ? (openBlock(), createBlock(unref(UPopover), {
|
|
79
|
+
key: 0,
|
|
80
|
+
open: open.value,
|
|
81
|
+
reference,
|
|
82
|
+
content: {
|
|
83
|
+
side: "bottom",
|
|
84
|
+
align: "start",
|
|
85
|
+
sideOffset: 4,
|
|
86
|
+
updatePositionStrategy: "always",
|
|
87
|
+
onInteractOutside,
|
|
88
|
+
onOpenAutoFocus,
|
|
89
|
+
onCloseAutoFocus: (e) => e.preventDefault()
|
|
90
|
+
},
|
|
91
|
+
ui: { content: "w-72 max-w-[calc(100vw-2rem)] max-h-[60vh] overflow-auto p-2" },
|
|
92
|
+
"onUpdate:open": _cache[2] || (_cache[2] = (value) => {
|
|
93
|
+
if (!value) close();
|
|
94
|
+
})
|
|
95
|
+
}, {
|
|
96
|
+
content: withCtx(() => [drafting.value ? (openBlock(), createBlock(_sfc_main$1, {
|
|
97
|
+
key: 0,
|
|
98
|
+
dense: "",
|
|
99
|
+
quote: unref(comments).draftQuote.value,
|
|
100
|
+
onSubmit: _cache[0] || (_cache[0] = (text) => unref(comments).add(text)),
|
|
101
|
+
onCancel: _cache[1] || (_cache[1] = ($event) => unref(comments).cancelDraft())
|
|
102
|
+
}, null, 8, ["quote"])) : activeThread.value ? (openBlock(), createBlock(_sfc_main$2, {
|
|
103
|
+
key: 1,
|
|
104
|
+
dense: "",
|
|
105
|
+
thread: activeThread.value,
|
|
106
|
+
user: unref(comments).user.value,
|
|
107
|
+
active: true,
|
|
108
|
+
orphan: unref(comments).isOrphan(activeThread.value.id),
|
|
109
|
+
comments: unref(comments)
|
|
110
|
+
}, null, 8, [
|
|
111
|
+
"thread",
|
|
112
|
+
"user",
|
|
113
|
+
"orphan",
|
|
114
|
+
"comments"
|
|
115
|
+
])) : createCommentVNode("v-if", true)]),
|
|
116
|
+
_: 1
|
|
117
|
+
}, 8, ["open", "content"])) : createCommentVNode("v-if", true);
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
//#endregion
|
|
122
|
+
export { _sfc_main as default };
|
|
123
|
+
|
|
124
|
+
//# sourceMappingURL=CommentsPopover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentsPopover.js","names":["_openBlock","_createBlock","_unref","_withCtx","CommentComposer","CommentThreadView","_createCommentVNode"],"sources":["../../../../src/features/comments/components/CommentsPopover.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Inline comments („Inline“ layout): the draft composer or the active thread in a compact popover at its text.\n * Opens when a comment is started or highlighted text is clicked (another highlight switches the thread); a click\n * outside or Esc in the popover closes it (cancels the draft / deactivates the thread). Esc in the editor is a binding\n * of `DocumentEditor` (ProseMirror marks every Esc in the editor as handled). Orphaned\n * threads (opened from the toolbar's `CommentsListMenu`) anchor at the top of the editor. Renders only when the\n * user's comments layout is `inline`.\n */\nimport { useUiKit } from '../../../vue/kit/use-ui-kit'\nimport type { Editor } from '@tiptap/vue-3'\nimport { computed } from 'vue'\nimport { useComments } from '../use-comments'\nimport { useEditorSettings } from '../../../vue/settings'\nimport CommentComposer from './CommentComposer.vue'\nimport CommentThreadView from './CommentThreadView.vue'\n\nconst props = defineProps<{ editor: Editor | undefined }>()\nconst { Popover: UPopover } = useUiKit()\n\nconst { settings } = useEditorSettings()\nconst enabled = computed(() => settings.value.editing.commentsLayout === 'inline')\n// Idle (no Y.Doc observer) while another layout shows the comments.\nconst comments = useComments(() => enabled.value ? props.editor : undefined)\n\nconst activeThread = computed(() => {\n const id = comments.active.value\n return id ? comments.threads.value.find(t => t.id === id) ?? null : null\n})\nconst drafting = computed(() => !!comments.draft.value)\nconst open = computed(() => enabled.value && comments.available.value && (drafting.value || !!activeThread.value))\n\n/** The draft range, else the active thread's range; null for an orphan. */\nfunction anchorRange() {\n const draft = comments.draft.value\n if (draft) return draft\n const id = comments.active.value\n return id ? comments.ranges.value.get(id) ?? null : null\n}\n\nlet anchorRect = new DOMRect()\n/** Virtual reference: the anchor text (its first line's extent, or the editor's width when it spans lines). */\nconst reference = {\n getBoundingClientRect(): DOMRect {\n const editor = props.editor\n if (!editor || editor.isDestroyed) return anchorRect\n const { view } = editor\n const bounds = view.dom.getBoundingClientRect()\n const range = anchorRange()\n if (!range || range.from >= range.to || range.to > editor.state.doc.content.size) {\n anchorRect = new DOMRect(bounds.left, bounds.top, Math.max(bounds.width, 1), 1)\n return anchorRect\n }\n const start = view.coordsAtPos(range.from, 1)\n const end = view.coordsAtPos(range.to, -1)\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 const editor = props.editor\n return editor && !editor.isDestroyed ? editor.view.dom : undefined\n },\n}\n\nfunction close() {\n if (drafting.value) comments.cancelDraft()\n else comments.activate(null)\n}\n\n/** Menus of the thread (dropdowns, portalled) count as inside, so choosing an action does not close the popover. */\nfunction onInteractOutside(event: Event) {\n const target = (event as CustomEvent<{ originalEvent: Event }>).detail?.originalEvent?.target ?? event.target\n if (target instanceof Element && target.closest('[role=\"menu\"], [data-reka-popper-content-wrapper]')) event.preventDefault()\n}\n\n/** The active thread keeps the editor focused (clicks in the text activate it); the composer focuses itself. */\nfunction onOpenAutoFocus(event: Event) {\n if (!drafting.value) event.preventDefault()\n}\n</script>\n\n<template>\n <UPopover\n v-if=\"enabled\"\n :open=\"open\"\n :reference=\"reference\"\n :content=\"{ side: 'bottom', align: 'start', sideOffset: 4, updatePositionStrategy: 'always', onInteractOutside, onOpenAutoFocus, onCloseAutoFocus: (e: Event) => e.preventDefault() }\"\n :ui=\"{ content: 'w-72 max-w-[calc(100vw-2rem)] max-h-[60vh] overflow-auto p-2' }\"\n @update:open=\"(value: boolean) => { if (!value) close() }\"\n >\n <template #content>\n <CommentComposer\n v-if=\"drafting\"\n dense\n :quote=\"comments.draftQuote.value\"\n @submit=\"(text: string) => comments.add(text)\"\n @cancel=\"comments.cancelDraft()\"\n />\n <CommentThreadView\n v-else-if=\"activeThread\"\n dense\n :thread=\"activeThread\"\n :user=\"comments.user.value\"\n :active=\"true\"\n :orphan=\"comments.isOrphan(activeThread.id)\"\n :comments=\"comments\"\n />\n </template>\n </UPopover>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAiBA,MAAM,QAAQ;EACd,MAAM,EAAE,SAAS,aAAa,SAAS;EAEvC,MAAM,EAAE,aAAa,kBAAkB;EACvC,MAAM,UAAU,eAAe,SAAS,MAAM,QAAQ,mBAAmB,QAAQ;EAEjF,MAAM,WAAW,kBAAkB,QAAQ,QAAQ,MAAM,SAAS,KAAA,CAAS;EAE3E,MAAM,eAAe,eAAe;GAClC,MAAM,KAAK,SAAS,OAAO;GAC3B,OAAO,KAAK,SAAS,QAAQ,MAAM,MAAK,MAAK,EAAE,OAAO,EAAE,KAAK,OAAO;EACtE,CAAC;EACD,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,KAAK;EACtD,MAAM,OAAO,eAAe,QAAQ,SAAS,SAAS,UAAU,UAAU,SAAS,SAAS,CAAC,CAAC,aAAa,MAAM;;EAGjH,SAAS,cAAc;GACrB,MAAM,QAAQ,SAAS,MAAM;GAC7B,IAAI,OAAO,OAAO;GAClB,MAAM,KAAK,SAAS,OAAO;GAC3B,OAAO,KAAK,SAAS,OAAO,MAAM,IAAI,EAAE,KAAK,OAAO;EACtD;EAEA,IAAI,aAAa,IAAI,QAAQ;;EAE7B,MAAM,YAAY;GAChB,wBAAiC;IAC/B,MAAM,SAAS,MAAM;IACrB,IAAI,CAAC,UAAU,OAAO,aAAa,OAAO;IAC1C,MAAM,EAAE,SAAS;IACjB,MAAM,SAAS,KAAK,IAAI,sBAAsB;IAC9C,MAAM,QAAQ,YAAY;IAC1B,IAAI,CAAC,SAAS,MAAM,QAAQ,MAAM,MAAM,MAAM,KAAK,OAAO,MAAM,IAAI,QAAQ,MAAM;KAChF,aAAa,IAAI,QAAQ,OAAO,MAAM,OAAO,KAAK,KAAK,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC;KAC9E,OAAO;IACT;IACA,MAAM,QAAQ,KAAK,YAAY,MAAM,MAAM,CAAC;IAC5C,MAAM,MAAM,KAAK,YAAY,MAAM,IAAI,EAAE;IACzC,MAAM,UAAU,IAAI,MAAM,MAAM;IAChC,MAAM,OAAO,UAAU,MAAM,OAAO,OAAO;IAC3C,MAAM,QAAQ,UAAU,IAAI,QAAQ,OAAO;IAC3C,aAAa,IAAI,QAAQ,MAAM,MAAM,KAAK,KAAK,IAAI,QAAQ,MAAM,CAAC,GAAG,IAAI,SAAS,MAAM,GAAG;IAC3F,OAAO;GACT;GACA,IAAI,iBAAiB;IACnB,MAAM,SAAS,MAAM;IACrB,OAAO,UAAU,CAAC,OAAO,cAAc,OAAO,KAAK,MAAM,KAAA;GAC3D;EACF;EAEA,SAAS,QAAQ;GACf,IAAI,SAAS,OAAO,SAAS,YAAY;QACpC,SAAS,SAAS,IAAI;EAC7B;;EAGA,SAAS,kBAAkB,OAAc;GACvC,MAAM,SAAU,MAAgD,QAAQ,eAAe,UAAU,MAAM;GACvG,IAAI,kBAAkB,WAAW,OAAO,QAAQ,qDAAmD,GAAG,MAAM,eAAe;EAC7H;;EAGA,SAAS,gBAAgB,OAAc;GACrC,IAAI,CAAC,SAAS,OAAO,MAAM,eAAe;EAC5C;;GAKU,OAAA,QAAA,SADRA,UAAA,GAAAC,YA0BWC,MAAA,QAAA,GAAA;;IAxBR,MAAM,KAAA;IACK;IACX,SAAO;KAAA,MAAA;KAAA,OAAA;KAAA,YAAA;KAAA,wBAAA;KAAqF;KAAmB;KAAe,mBAAqB,MAAa,EAAE,eAAc;IAAA;IAChL,IAAI,EAAA,SAAA,+DAAA;IACJ,iBAAW,OAAA,OAAA,OAAA,MAAG,UAAc;KAAA,IAAA,CAAY,OAAO,MAAK;IAAA;;IAE1C,SAAOC,cAOd,CALM,SAAA,SADRH,UAAA,GAAAC,YAMEG,aAAA;;KAJA,OAAA;KACC,OAAOF,MAAA,QAAA,CAAQ,CAAC,WAAW;KAC3B,UAAM,OAAA,OAAA,OAAA,MAAG,SAAiBA,MAAA,QAAA,CAAQ,CAAC,IAAI,IAAI;KAC3C,UAAM,OAAA,OAAA,OAAA,MAAA,WAAEA,MAAA,QAAA,CAAQ,CAAC,YAAW;IAGlB,GAAA,MAAA,GAAA,CAAA,OAAA,CAAA,KAAA,aAAA,SADbF,UAAA,GAAAC,YAQEI,aAAA;;KANA,OAAA;KACC,QAAQ,aAAA;KACR,MAAMH,MAAA,QAAA,CAAQ,CAAC,KAAK;KACpB,QAAQ;KACR,QAAQA,MAAA,QAAA,CAAQ,CAAC,SAAS,aAAA,MAAa,EAAE;KACzC,UAAUA,MAAA,QAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Editor } from "@tiptap/vue-3";
|
|
2
|
+
//#region src/features/comments/components/CommentsPopover.vue.d.ts
|
|
3
|
+
type __VLS_Props = {
|
|
4
|
+
editor: Editor | undefined;
|
|
5
|
+
};
|
|
6
|
+
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>;
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { _default as default };
|
|
10
|
+
//# sourceMappingURL=CommentsPopover.vue.d.ts.map
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { useUiKit } from "../../../vue/kit/use-ui-kit.js";
|
|
2
|
+
import { useEditorSettings } from "../../../vue/settings.js";
|
|
3
|
+
import { useEditorI18n } from "../../../vue/use-editor-i18n.js";
|
|
4
|
+
import { useEditorUi } from "../../../vue/use-editor-ui.js";
|
|
5
|
+
import { useComments } from "../use-comments.js";
|
|
6
|
+
import _sfc_main$1 from "./CommentsListMenu.js";
|
|
7
|
+
import { createBlock, createVNode, defineComponent, openBlock, unref, withCtx, withModifiers } from "vue";
|
|
8
|
+
//#region src/features/comments/components/CommentsToolbarButton.vue
|
|
9
|
+
/**
|
|
10
|
+
* Toolbar entry of the comments feature, by the user's layout: in `margin` the „Kommentare“ toggle of the margin
|
|
11
|
+
* column (Mod-Shift-m; disabled with an explanation without a collaborative document), in `inline` the
|
|
12
|
+
* `CommentsListMenu` with the number of open threads.
|
|
13
|
+
*/
|
|
14
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
15
|
+
__name: "CommentsToolbarButton",
|
|
16
|
+
props: { editor: {} },
|
|
17
|
+
setup(__props) {
|
|
18
|
+
const props = __props;
|
|
19
|
+
const { Button: UButton, Tooltip: UTooltip } = useUiKit();
|
|
20
|
+
const { settings } = useEditorSettings();
|
|
21
|
+
const { t } = useEditorI18n();
|
|
22
|
+
const editorUi = useEditorUi(() => props.editor);
|
|
23
|
+
const available = useComments(() => props.editor).available;
|
|
24
|
+
return (_ctx, _cache) => {
|
|
25
|
+
return unref(settings).editing.commentsLayout === "margin" ? (openBlock(), createBlock(unref(UTooltip), {
|
|
26
|
+
key: 0,
|
|
27
|
+
text: unref(available) ? unref(t)("comments.title") : unref(t)("comments.unavailable"),
|
|
28
|
+
kbds: unref(available) ? [
|
|
29
|
+
"meta",
|
|
30
|
+
"shift",
|
|
31
|
+
"m"
|
|
32
|
+
] : void 0
|
|
33
|
+
}, {
|
|
34
|
+
default: withCtx(() => [createVNode(unref(UButton), {
|
|
35
|
+
color: "neutral",
|
|
36
|
+
variant: "ghost",
|
|
37
|
+
"active-color": "primary",
|
|
38
|
+
"active-variant": "soft",
|
|
39
|
+
icon: "i-lucide-message-square-text",
|
|
40
|
+
"aria-label": unref(t)("comments.title"),
|
|
41
|
+
active: !!unref(editorUi)?.commentsOpen,
|
|
42
|
+
disabled: !unref(editorUi) || !unref(available),
|
|
43
|
+
onMousedown: _cache[0] || (_cache[0] = withModifiers(() => {}, ["prevent"])),
|
|
44
|
+
onClick: _cache[1] || (_cache[1] = ($event) => unref(editorUi)?.toggleComments())
|
|
45
|
+
}, null, 8, [
|
|
46
|
+
"aria-label",
|
|
47
|
+
"active",
|
|
48
|
+
"disabled"
|
|
49
|
+
])]),
|
|
50
|
+
_: 1
|
|
51
|
+
}, 8, ["text", "kbds"])) : (openBlock(), createBlock(_sfc_main$1, {
|
|
52
|
+
key: 1,
|
|
53
|
+
editor: props.editor
|
|
54
|
+
}, null, 8, ["editor"]));
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
//#endregion
|
|
59
|
+
export { _sfc_main as default };
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=CommentsToolbarButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommentsToolbarButton.js","names":["_unref","_openBlock","_createBlock","_withCtx","_createVNode","_withModifiers","CommentsListMenu"],"sources":["../../../../src/features/comments/components/CommentsToolbarButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useUiKit } from '../../../vue/kit/use-ui-kit'\nimport type { Editor } from '@tiptap/vue-3'\nimport { useEditorSettings } from '../../../vue/settings'\nimport { useEditorI18n } from '../../../vue/use-editor-i18n'\nimport { useEditorUi } from '../../../vue/use-editor-ui'\nimport { useComments } from '../use-comments'\nimport CommentsListMenu from './CommentsListMenu.vue'\n\n/**\n * Toolbar entry of the comments feature, by the user's layout: in `margin` the „Kommentare“ toggle of the margin\n * column (Mod-Shift-m; disabled with an explanation without a collaborative document), in `inline` the\n * `CommentsListMenu` with the number of open threads.\n */\nconst props = defineProps<{ editor: Editor | undefined }>()\nconst { Button: UButton, Tooltip: UTooltip } = useUiKit()\n\nconst { settings } = useEditorSettings()\nconst { t } = useEditorI18n()\n// The toolbar sits beside the surface (outside its provide): the chrome registered for `props.editor`.\nconst editorUi = useEditorUi(() => props.editor)\n// Without comments (the default model needs collaboration) the button is disabled and its tooltip says why.\nconst comments = useComments(() => props.editor)\nconst available = comments.available\n</script>\n\n<template>\n <UTooltip\n v-if=\"settings.editing.commentsLayout === 'margin'\"\n :text=\"available ? t('comments.title') : t('comments.unavailable')\"\n :kbds=\"available ? ['meta', 'shift', 'm'] : undefined\"\n >\n <UButton\n color=\"neutral\"\n variant=\"ghost\"\n active-color=\"primary\"\n active-variant=\"soft\"\n icon=\"i-lucide-message-square-text\"\n :aria-label=\"t('comments.title')\"\n :active=\"!!editorUi?.commentsOpen\"\n :disabled=\"!editorUi || !available\"\n @mousedown.prevent\n @click=\"editorUi?.toggleComments()\"\n />\n </UTooltip>\n <CommentsListMenu v-else :editor=\"props.editor\" />\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;EAcA,MAAM,QAAQ;EACd,MAAM,EAAE,QAAQ,SAAS,SAAS,aAAa,SAAS;EAExD,MAAM,EAAE,aAAa,kBAAkB;EACvC,MAAM,EAAE,MAAM,cAAc;EAE5B,MAAM,WAAW,kBAAkB,MAAM,MAAM;EAG/C,MAAM,YADW,kBAAkB,MAAM,MACvB,CAAA,CAAS;;GAKjB,OAAAA,MAAA,QAAA,CAAQ,CAAC,QAAQ,mBAAc,YADvCC,UAAA,GAAAC,YAiBWF,MAAA,QAAA,GAAA;;IAfR,MAAMA,MAAA,SAAA,IAAYA,MAAA,CAAA,CAAC,CAAA,gBAAA,IAAqBA,MAAA,CAAA,CAAC,CAAA,sBAAA;IACzC,MAAMA,MAAA,SAAA,IAAS;KAAA;KAAA;KAAA;IAAA,IAA4B,KAAA;;IAE5C,SAAAG,cAWE,CAXFC,YAWEJ,MAAA,OAAA,GAAA;KAVA,OAAM;KACN,SAAQ;KACR,gBAAa;KACb,kBAAe;KACf,MAAK;KACJ,cAAYA,MAAA,CAAA,CAAC,CAAA,gBAAA;KACb,QAAM,CAAA,CAAIA,MAAA,QAAA,CAAQ,EAAE;KACpB,UAAQ,CAAGA,MAAA,QAAA,KAAQ,CAAKA,MAAA,SAAA;KACxB,aAAS,OAAA,OAAA,OAAA,KAAAK,oBAAV,CAAA,GAAkB,CAAA,SAAA,CAAA;KACjB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAEL,MAAA,QAAA,CAAQ,EAAE,eAAc;;;;;;;GAGpC,GAAA,GAAA,CAAA,QAAA,MAAA,CAAA,MAAAC,UAAA,GAAAC,YAAkDI,aAAA;;IAAxB,QAAQ,MAAM"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { useUiKit } from "../../../vue/kit/use-ui-kit.js";
|
|
2
|
+
import { useEditorSettings } from "../../../vue/settings.js";
|
|
3
|
+
import { useEditorI18n } from "../../../vue/use-editor-i18n.js";
|
|
4
|
+
import _sfc_main$1 from "../../../vue/components/SettingsSection.js";
|
|
5
|
+
import { computed, createElementBlock, createElementVNode, createVNode, defineComponent, openBlock, unref, withCtx } from "vue";
|
|
6
|
+
//#region src/features/comments/components/SettingsCommentsTab.vue
|
|
7
|
+
const _hoisted_1 = { class: "flex flex-col gap-8" };
|
|
8
|
+
const _hoisted_2 = { class: "py-3" };
|
|
9
|
+
/** „Kommentare“: where the comments of a shared document are shown. */
|
|
10
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
11
|
+
__name: "SettingsCommentsTab",
|
|
12
|
+
setup(__props) {
|
|
13
|
+
const { settings } = useEditorSettings();
|
|
14
|
+
const { RadioGroup: URadioGroup } = useUiKit();
|
|
15
|
+
const { t } = useEditorI18n();
|
|
16
|
+
const layoutItems = computed(() => [{
|
|
17
|
+
label: t("comments.layout.margin.label"),
|
|
18
|
+
description: t("comments.layout.margin.description"),
|
|
19
|
+
value: "margin"
|
|
20
|
+
}, {
|
|
21
|
+
label: t("comments.layout.inline.label"),
|
|
22
|
+
description: t("comments.layout.inline.description"),
|
|
23
|
+
value: "inline"
|
|
24
|
+
}]);
|
|
25
|
+
return (_ctx, _cache) => {
|
|
26
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [createVNode(_sfc_main$1, { title: unref(t)("comments.tab") }, {
|
|
27
|
+
default: withCtx(() => [createElementVNode("div", _hoisted_2, [createVNode(unref(URadioGroup), {
|
|
28
|
+
modelValue: unref(settings).editing.commentsLayout,
|
|
29
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => unref(settings).editing.commentsLayout = $event),
|
|
30
|
+
legend: unref(t)("comments.layout.legend"),
|
|
31
|
+
orientation: "horizontal",
|
|
32
|
+
items: layoutItems.value
|
|
33
|
+
}, null, 8, [
|
|
34
|
+
"modelValue",
|
|
35
|
+
"legend",
|
|
36
|
+
"items"
|
|
37
|
+
])])]),
|
|
38
|
+
_: 1
|
|
39
|
+
}, 8, ["title"])]);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
export { _sfc_main as default };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=SettingsCommentsTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsCommentsTab.js","names":["_openBlock","_createElementBlock","_createVNode","SettingsSection","_unref","_withCtx","_createElementVNode"],"sources":["../../../../src/features/comments/components/SettingsCommentsTab.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { useUiKit } from '../../../vue/kit/use-ui-kit'\nimport SettingsSection from '../../../vue/components/SettingsSection.vue'\nimport { useEditorSettings } from '../../../vue/settings'\nimport { useEditorI18n } from '../../../vue/use-editor-i18n'\nimport type { CommentsLayout } from '../../../settings'\n\n/** „Kommentare“: where the comments of a shared document are shown. */\nconst { settings } = useEditorSettings()\nconst { RadioGroup: URadioGroup } = useUiKit()\nconst { t } = useEditorI18n()\n\nconst layoutItems = computed<{ label: string, description: string, value: CommentsLayout }[]>(() => [\n { label: t('comments.layout.margin.label'), description: t('comments.layout.margin.description'), value: 'margin' },\n { label: t('comments.layout.inline.label'), description: t('comments.layout.inline.description'), value: 'inline' },\n])\n</script>\n\n<template>\n <div class=\"flex flex-col gap-8\">\n <SettingsSection :title=\"t('comments.tab')\">\n <div class=\"py-3\">\n <URadioGroup v-model=\"settings.editing.commentsLayout\" :legend=\"t('comments.layout.legend')\" orientation=\"horizontal\" :items=\"layoutItems\" />\n </div>\n </SettingsSection>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;EASA,MAAM,EAAE,aAAa,kBAAkB;EACvC,MAAM,EAAE,YAAY,gBAAgB,SAAS;EAC7C,MAAM,EAAE,MAAM,cAAc;EAE5B,MAAM,cAAc,eAAgF,CAClG;GAAE,OAAO,EAAE,8BAA8B;GAAG,aAAa,EAAE,oCAAoC;GAAG,OAAO;EAAS,GAClH;GAAE,OAAO,EAAE,8BAA8B;GAAG,aAAa,EAAE,oCAAoC;GAAG,OAAO;EAAS,CACpH,CAAC;;GAIC,OAAAA,UAAA,GAAAC,mBAMM,OANN,YAMM,CALJC,YAIkBC,aAAA,EAJA,OAAOC,MAAA,CAAA,CAAC,CAAA,cAAA,EAAA,GAAA;IACxB,SAAAC,cAEM,CAFNC,mBAEM,OAFN,YAEM,CADJJ,YAA6IE,MAAA,WAAA,GAAA;KAAvH,YAAAA,MAAA,QAAA,CAAQ,CAAC,QAAQ;KAAjB,uBAAA,OAAA,OAAA,OAAA,MAAA,WAAA,MAAA,QAAA,CAAQ,CAAC,QAAQ,iBAAc;KAAG,QAAQA,MAAA,CAAA,CAAC,CAAA,wBAAA;KAA4B,aAAY;KAAc,OAAO,YAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/features/comments/components/SettingsCommentsTab.vue.d.ts
|
|
2
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
3
|
+
declare const _default: typeof __VLS_export;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { _default as default };
|
|
6
|
+
//# sourceMappingURL=SettingsCommentsTab.vue.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { EditorFeature } from "../../core/feature.js";
|
|
2
|
+
import "../../core/index.js";
|
|
3
|
+
import { CommentsModelFactory } from "./model.js";
|
|
4
|
+
//#region src/features/comments/feature.d.ts
|
|
5
|
+
/** What a framework binding supplies to the comments feature. */
|
|
6
|
+
export interface CommentsUi<C> {
|
|
7
|
+
/** The toolbar entry: the margin toggle or the list menu, by the user's comments layout. */
|
|
8
|
+
toolbarButton: C;
|
|
9
|
+
/** Mounted beside the editor content: the selection bubble, the inline popover and the layout glue. */
|
|
10
|
+
overlay: C;
|
|
11
|
+
/** The „Kommentare“ settings tab component of the framework. */
|
|
12
|
+
settingsTab: C;
|
|
13
|
+
}
|
|
14
|
+
/** Options of `commentsFeatureCore`. */
|
|
15
|
+
export interface CommentsFeatureOptions {
|
|
16
|
+
/**
|
|
17
|
+
* Backs the comments with the host's own model (REST threads, a database) instead of the document's Y.Doc: the feature
|
|
18
|
+
* then requires no `collab` feature, the `Comments` plugin reads the user from the model, gets the thread ids
|
|
19
|
+
* (`known`/`hidden`) and the text ranges from its snapshot, and the framework `useComments` hooks use the model of
|
|
20
|
+
* the surface (`commentsModelOf(ctx)`) instead of `createCommentsModel`. The factory runs once for the plugin and once
|
|
21
|
+
* per `useComments` consumer, so a model that shares state between them keeps it outside the factory. The model
|
|
22
|
+
* itself drives the active thread and the draft through the `comments-plugin` helpers.
|
|
23
|
+
*/
|
|
24
|
+
model?: CommentsModelFactory;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Google-Docs-style comments on a collaborative document: select text, „Kommentar“ in the selection bubble, others
|
|
28
|
+
* reply, anyone resolves or reopens a thread. Threads live in the Y.Doc (a `Y.Map` named `comments`, `createCommentsModel`), so
|
|
29
|
+
* they sync live and persist with the document; the text range is the `comment` mark, highlighted by the `Comments`
|
|
30
|
+
* plugin from the thread state. The user chooses per setting (`editing.commentsLayout`) between the margin column
|
|
31
|
+
* (`CommentsMargin`, which the host places in the editor's scroll container and shows while the surface's
|
|
32
|
+
* `commentsOpen` model is true; Mod-Shift-m or the toolbar button toggle it, and it excludes the AI sidebar) and the
|
|
33
|
+
* inline popover plus the toolbar's list. Needs a collaborative surface with a `collaboration.user`: without one the
|
|
34
|
+
* UI says so and nothing can be written (the schema mark stays registered, so stored comment marks round-trip). With
|
|
35
|
+
* `options.model` the threads live wherever the host's model keeps them and no collaboration is needed.
|
|
36
|
+
*/
|
|
37
|
+
export declare function commentsFeatureCore<C>(ui: CommentsUi<C>, options?: CommentsFeatureOptions): EditorFeature<C>;
|
|
38
|
+
//#endregion
|
|
39
|
+
//# sourceMappingURL=feature.d.ts.map
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { Comments, commentsKey } from "./comments-plugin.js";
|
|
2
|
+
import { CommentMark } from "./schema.js";
|
|
3
|
+
import { provideCommentsModel } from "./model.js";
|
|
4
|
+
import { commentsShortcuts } from "./shortcuts.js";
|
|
5
|
+
import { Extension } from "@tiptap/core";
|
|
6
|
+
//#region src/features/comments/feature.ts
|
|
7
|
+
/**
|
|
8
|
+
* Google-Docs-style comments on a collaborative document: select text, „Kommentar“ in the selection bubble, others
|
|
9
|
+
* reply, anyone resolves or reopens a thread. Threads live in the Y.Doc (a `Y.Map` named `comments`, `createCommentsModel`), so
|
|
10
|
+
* they sync live and persist with the document; the text range is the `comment` mark, highlighted by the `Comments`
|
|
11
|
+
* plugin from the thread state. The user chooses per setting (`editing.commentsLayout`) between the margin column
|
|
12
|
+
* (`CommentsMargin`, which the host places in the editor's scroll container and shows while the surface's
|
|
13
|
+
* `commentsOpen` model is true; Mod-Shift-m or the toolbar button toggle it, and it excludes the AI sidebar) and the
|
|
14
|
+
* inline popover plus the toolbar's list. Needs a collaborative surface with a `collaboration.user`: without one the
|
|
15
|
+
* UI says so and nothing can be written (the schema mark stays registered, so stored comment marks round-trip). With
|
|
16
|
+
* `options.model` the threads live wherever the host's model keeps them and no collaboration is needed.
|
|
17
|
+
*/
|
|
18
|
+
function commentsFeatureCore(ui, options = {}) {
|
|
19
|
+
const { model: factory } = options;
|
|
20
|
+
return {
|
|
21
|
+
id: "comments",
|
|
22
|
+
requires: factory ? [] : ["collab"],
|
|
23
|
+
extensions: (ctx) => {
|
|
24
|
+
if (!factory) return [
|
|
25
|
+
CommentMark,
|
|
26
|
+
Comments.configure({
|
|
27
|
+
user: () => ctx.collaboration?.user ?? null,
|
|
28
|
+
doc: () => ctx.collaboration?.ydoc ?? null
|
|
29
|
+
}),
|
|
30
|
+
commentsShortcuts(ctx)
|
|
31
|
+
];
|
|
32
|
+
provideCommentsModel(ctx, factory);
|
|
33
|
+
const { configured, bridge } = modelExtensions(factory, ctx.getEditor);
|
|
34
|
+
return [
|
|
35
|
+
CommentMark,
|
|
36
|
+
configured,
|
|
37
|
+
bridge,
|
|
38
|
+
commentsShortcuts(ctx)
|
|
39
|
+
];
|
|
40
|
+
},
|
|
41
|
+
toolbar: (ctx) => [{
|
|
42
|
+
id: "collaboration",
|
|
43
|
+
order: 1010,
|
|
44
|
+
items: [{
|
|
45
|
+
id: "comments",
|
|
46
|
+
order: 10,
|
|
47
|
+
icon: "i-lucide-message-square-text",
|
|
48
|
+
label: ctx.t("comments.title"),
|
|
49
|
+
component: ui.toolbarButton
|
|
50
|
+
}]
|
|
51
|
+
}],
|
|
52
|
+
overlays: [ui.overlay],
|
|
53
|
+
settingsTabs: (ctx) => [{
|
|
54
|
+
id: "comments",
|
|
55
|
+
label: ctx.t("comments.tab"),
|
|
56
|
+
icon: "i-lucide-message-square-text",
|
|
57
|
+
component: ui.settingsTab
|
|
58
|
+
}]
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The `Comments` plugin and its feed for a host model: the plugin reads user, availability and `canComment` from the
|
|
63
|
+
* model's snapshot; the bridge extension refreshes the model once the editor exists, mirrors the snapshot's thread ids
|
|
64
|
+
* and ranges into the plugin state (queued, never from inside a transaction) and disposes the model with the editor.
|
|
65
|
+
*/
|
|
66
|
+
function modelExtensions(factory, getEditor) {
|
|
67
|
+
let created;
|
|
68
|
+
const model = factory(() => created ?? getEditor());
|
|
69
|
+
const snapshot = () => model.state.get();
|
|
70
|
+
let stop;
|
|
71
|
+
let queued = false;
|
|
72
|
+
let told;
|
|
73
|
+
let toldRanges;
|
|
74
|
+
function push() {
|
|
75
|
+
queued = false;
|
|
76
|
+
const editor = created;
|
|
77
|
+
const value = editor && !editor.isDestroyed ? commentsKey.getState(editor.state) : void 0;
|
|
78
|
+
if (!editor || !value) return;
|
|
79
|
+
const { threads, ranges } = snapshot();
|
|
80
|
+
if (threads === told && ranges === toldRanges) return;
|
|
81
|
+
const known = new Set(threads.map((t) => t.id));
|
|
82
|
+
const hidden = new Set(threads.filter((t) => t.resolved).map((t) => t.id));
|
|
83
|
+
const meta = {
|
|
84
|
+
known,
|
|
85
|
+
hidden,
|
|
86
|
+
modelRanges: ranges
|
|
87
|
+
};
|
|
88
|
+
const before = value.active ? told?.find((t) => t.id === value.active) : void 0;
|
|
89
|
+
if (value.active && before && !before.resolved && (!known.has(value.active) || hidden.has(value.active))) meta.active = null;
|
|
90
|
+
told = threads;
|
|
91
|
+
toldRanges = ranges;
|
|
92
|
+
editor.view.dispatch(editor.state.tr.setMeta(commentsKey, meta).setMeta("addToHistory", false));
|
|
93
|
+
}
|
|
94
|
+
function queue() {
|
|
95
|
+
if (queued) return;
|
|
96
|
+
queued = true;
|
|
97
|
+
queueMicrotask(push);
|
|
98
|
+
}
|
|
99
|
+
return {
|
|
100
|
+
configured: Comments.configure({
|
|
101
|
+
user: () => snapshot().user,
|
|
102
|
+
doc: () => null,
|
|
103
|
+
available: () => snapshot().available,
|
|
104
|
+
canComment: () => snapshot().canComment
|
|
105
|
+
}),
|
|
106
|
+
bridge: Extension.create({
|
|
107
|
+
name: "commentsModelBridge",
|
|
108
|
+
onCreate() {
|
|
109
|
+
created = this.editor;
|
|
110
|
+
model.refresh();
|
|
111
|
+
stop = model.state.subscribe(queue);
|
|
112
|
+
queue();
|
|
113
|
+
},
|
|
114
|
+
onDestroy() {
|
|
115
|
+
stop?.();
|
|
116
|
+
stop = void 0;
|
|
117
|
+
model.dispose();
|
|
118
|
+
created = void 0;
|
|
119
|
+
told = void 0;
|
|
120
|
+
toldRanges = void 0;
|
|
121
|
+
}
|
|
122
|
+
})
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
export { commentsFeatureCore };
|
|
127
|
+
|
|
128
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature.js","names":[],"sources":["../../../src/features/comments/feature.ts"],"sourcesContent":["import { type AnyExtension, type Editor, Extension } from '@tiptap/core'\nimport type { EditorFeature } from '../../core'\nimport { Comments, type CommentsMeta, commentsKey } from './comments-plugin'\nimport { type CommentsModelFactory, type CommentsSnapshot, provideCommentsModel } from './model'\nimport { CommentMark } from './schema'\nimport { commentsShortcuts } from './shortcuts'\n\n/** What a framework binding supplies to the comments feature. */\nexport interface CommentsUi<C> {\n /** The toolbar entry: the margin toggle or the list menu, by the user's comments layout. */\n toolbarButton: C\n /** Mounted beside the editor content: the selection bubble, the inline popover and the layout glue. */\n overlay: C\n /** The „Kommentare“ settings tab component of the framework. */\n settingsTab: C\n}\n\n/** Options of `commentsFeatureCore`. */\nexport interface CommentsFeatureOptions {\n /**\n * Backs the comments with the host's own model (REST threads, a database) instead of the document's Y.Doc: the feature\n * then requires no `collab` feature, the `Comments` plugin reads the user from the model, gets the thread ids\n * (`known`/`hidden`) and the text ranges from its snapshot, and the framework `useComments` hooks use the model of\n * the surface (`commentsModelOf(ctx)`) instead of `createCommentsModel`. The factory runs once for the plugin and once\n * per `useComments` consumer, so a model that shares state between them keeps it outside the factory. The model\n * itself drives the active thread and the draft through the `comments-plugin` helpers.\n */\n model?: CommentsModelFactory\n}\n\n/**\n * Google-Docs-style comments on a collaborative document: select text, „Kommentar“ in the selection bubble, others\n * reply, anyone resolves or reopens a thread. Threads live in the Y.Doc (a `Y.Map` named `comments`, `createCommentsModel`), so\n * they sync live and persist with the document; the text range is the `comment` mark, highlighted by the `Comments`\n * plugin from the thread state. The user chooses per setting (`editing.commentsLayout`) between the margin column\n * (`CommentsMargin`, which the host places in the editor's scroll container and shows while the surface's\n * `commentsOpen` model is true; Mod-Shift-m or the toolbar button toggle it, and it excludes the AI sidebar) and the\n * inline popover plus the toolbar's list. Needs a collaborative surface with a `collaboration.user`: without one the\n * UI says so and nothing can be written (the schema mark stays registered, so stored comment marks round-trip). With\n * `options.model` the threads live wherever the host's model keeps them and no collaboration is needed.\n */\nexport function commentsFeatureCore<C>(ui: CommentsUi<C>, options: CommentsFeatureOptions = {}): EditorFeature<C> {\n const { model: factory } = options\n return {\n id: 'comments',\n requires: factory ? [] : ['collab'],\n extensions: (ctx) => {\n if (!factory) {\n return [\n CommentMark,\n Comments.configure({\n user: () => ctx.collaboration?.user ?? null,\n doc: () => ctx.collaboration?.ydoc ?? null,\n }),\n commentsShortcuts(ctx),\n ]\n }\n provideCommentsModel(ctx, factory)\n const { configured, bridge } = modelExtensions(factory, ctx.getEditor)\n return [CommentMark, configured, bridge, commentsShortcuts(ctx)]\n },\n toolbar: ctx => [{\n id: 'collaboration',\n order: 1010,\n items: [{ id: 'comments', order: 10, icon: 'i-lucide-message-square-text', label: ctx.t('comments.title'), component: ui.toolbarButton }],\n }],\n overlays: [ui.overlay],\n settingsTabs: ctx => [{ id: 'comments', label: ctx.t('comments.tab'), icon: 'i-lucide-message-square-text', component: ui.settingsTab }],\n }\n}\n\n/**\n * The `Comments` plugin and its feed for a host model: the plugin reads user, availability and `canComment` from the\n * model's snapshot; the bridge extension refreshes the model once the editor exists, mirrors the snapshot's thread ids\n * and ranges into the plugin state (queued, never from inside a transaction) and disposes the model with the editor.\n */\nfunction modelExtensions(factory: CommentsModelFactory, getEditor: Parameters<CommentsModelFactory>[0]): { configured: AnyExtension, bridge: AnyExtension } {\n let created: Editor | undefined\n const model = factory(() => created ?? getEditor())\n const snapshot = () => model.state.get()\n\n let stop: (() => void) | undefined\n let queued = false\n // What the plugin was last told, to skip no-op dispatches and to apply the deactivation rule.\n let told: CommentsSnapshot['threads'] | undefined\n let toldRanges: CommentsSnapshot['ranges'] | undefined\n\n function push() {\n queued = false\n const editor = created\n const value = editor && !editor.isDestroyed ? commentsKey.getState(editor.state) : undefined\n if (!editor || !value) return\n const { threads, ranges } = snapshot()\n if (threads === told && ranges === toldRanges) return\n const known = new Set(threads.map(t => t.id))\n const hidden = new Set(threads.filter(t => t.resolved).map(t => t.id))\n const meta: CommentsMeta = { known, hidden, modelRanges: ranges }\n const before = value.active ? told?.find(t => t.id === value.active) : undefined\n if (value.active && before && !before.resolved && (!known.has(value.active) || hidden.has(value.active))) meta.active = null\n told = threads\n toldRanges = ranges\n editor.view.dispatch(editor.state.tr.setMeta(commentsKey, meta).setMeta('addToHistory', false))\n }\n\n function queue() {\n if (queued) return\n queued = true\n queueMicrotask(push)\n }\n\n return {\n configured: Comments.configure({\n user: () => snapshot().user,\n doc: () => null,\n available: () => snapshot().available,\n canComment: () => snapshot().canComment,\n }),\n bridge: Extension.create({\n name: 'commentsModelBridge',\n onCreate() {\n created = this.editor\n model.refresh()\n stop = model.state.subscribe(queue)\n queue()\n },\n onDestroy() {\n stop?.()\n stop = undefined\n model.dispose()\n created = undefined\n told = undefined\n toldRanges = undefined\n },\n }),\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAyCA,SAAgB,oBAAuB,IAAmB,UAAkC,CAAC,GAAqB;CAChH,MAAM,EAAE,OAAO,YAAY;CAC3B,OAAO;EACL,IAAI;EACJ,UAAU,UAAU,CAAC,IAAI,CAAC,QAAQ;EAClC,aAAa,QAAQ;GACnB,IAAI,CAAC,SACH,OAAO;IACL;IACA,SAAS,UAAU;KACjB,YAAY,IAAI,eAAe,QAAQ;KACvC,WAAW,IAAI,eAAe,QAAQ;IACxC,CAAC;IACD,kBAAkB,GAAG;GACvB;GAEF,qBAAqB,KAAK,OAAO;GACjC,MAAM,EAAE,YAAY,WAAW,gBAAgB,SAAS,IAAI,SAAS;GACrE,OAAO;IAAC;IAAa;IAAY;IAAQ,kBAAkB,GAAG;GAAC;EACjE;EACA,UAAS,QAAO,CAAC;GACf,IAAI;GACJ,OAAO;GACP,OAAO,CAAC;IAAE,IAAI;IAAY,OAAO;IAAI,MAAM;IAAgC,OAAO,IAAI,EAAE,gBAAgB;IAAG,WAAW,GAAG;GAAc,CAAC;EAC1I,CAAC;EACD,UAAU,CAAC,GAAG,OAAO;EACrB,eAAc,QAAO,CAAC;GAAE,IAAI;GAAY,OAAO,IAAI,EAAE,cAAc;GAAG,MAAM;GAAgC,WAAW,GAAG;EAAY,CAAC;CACzI;AACF;;;;;;AAOA,SAAS,gBAAgB,SAA+B,WAAoG;CAC1J,IAAI;CACJ,MAAM,QAAQ,cAAc,WAAW,UAAU,CAAC;CAClD,MAAM,iBAAiB,MAAM,MAAM,IAAI;CAEvC,IAAI;CACJ,IAAI,SAAS;CAEb,IAAI;CACJ,IAAI;CAEJ,SAAS,OAAO;EACd,SAAS;EACT,MAAM,SAAS;EACf,MAAM,QAAQ,UAAU,CAAC,OAAO,cAAc,YAAY,SAAS,OAAO,KAAK,IAAI,KAAA;EACnF,IAAI,CAAC,UAAU,CAAC,OAAO;EACvB,MAAM,EAAE,SAAS,WAAW,SAAS;EACrC,IAAI,YAAY,QAAQ,WAAW,YAAY;EAC/C,MAAM,QAAQ,IAAI,IAAI,QAAQ,KAAI,MAAK,EAAE,EAAE,CAAC;EAC5C,MAAM,SAAS,IAAI,IAAI,QAAQ,QAAO,MAAK,EAAE,QAAQ,CAAC,CAAC,KAAI,MAAK,EAAE,EAAE,CAAC;EACrE,MAAM,OAAqB;GAAE;GAAO;GAAQ,aAAa;EAAO;EAChE,MAAM,SAAS,MAAM,SAAS,MAAM,MAAK,MAAK,EAAE,OAAO,MAAM,MAAM,IAAI,KAAA;EACvE,IAAI,MAAM,UAAU,UAAU,CAAC,OAAO,aAAa,CAAC,MAAM,IAAI,MAAM,MAAM,KAAK,OAAO,IAAI,MAAM,MAAM,IAAI,KAAK,SAAS;EACxH,OAAO;EACP,aAAa;EACb,OAAO,KAAK,SAAS,OAAO,MAAM,GAAG,QAAQ,aAAa,IAAI,CAAC,CAAC,QAAQ,gBAAgB,KAAK,CAAC;CAChG;CAEA,SAAS,QAAQ;EACf,IAAI,QAAQ;EACZ,SAAS;EACT,eAAe,IAAI;CACrB;CAEA,OAAO;EACL,YAAY,SAAS,UAAU;GAC7B,YAAY,SAAS,CAAC,CAAC;GACvB,WAAW;GACX,iBAAiB,SAAS,CAAC,CAAC;GAC5B,kBAAkB,SAAS,CAAC,CAAC;EAC/B,CAAC;EACD,QAAQ,UAAU,OAAO;GACvB,MAAM;GACN,WAAW;IACT,UAAU,KAAK;IACf,MAAM,QAAQ;IACd,OAAO,MAAM,MAAM,UAAU,KAAK;IAClC,MAAM;GACR;GACA,YAAY;IACV,OAAO;IACP,OAAO,KAAA;IACP,MAAM,QAAQ;IACd,UAAU,KAAA;IACV,OAAO,KAAA;IACP,aAAa,KAAA;GACf;EACF,CAAC;CACH;AACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { COMMENTS_LAYOUTS, CommentsLayout } from "../../settings/values.js";
|
|
2
|
+
import { COMMENTS_FIELD, COMMENT_LIMITS, CommentAuthor, CommentMark, CommentReply, CommentThread, commentsSchemaExtensions } from "./schema.js";
|
|
3
|
+
import { CommentsActions, CommentsModel, CommentsModelFactory, CommentsSnapshot, DocRange, commentsModelOf, createCommentsModel, createEditorCommentsModel } from "./model.js";
|
|
4
|
+
import { CommentsFeatureOptions, CommentsUi, commentsFeatureCore } from "./feature.js";
|
|
5
|
+
import { Comments, CommentsMeta, CommentsOptions, CommentsState, cancelCommentDraft, commentsAvailable, commentsCanComment, commentsDoc, commentsKey, commentsState, commentsUser, setActiveComment, startCommentDraft } from "./comments-plugin.js";
|
|
6
|
+
export { COMMENTS_FIELD, COMMENTS_LAYOUTS, COMMENT_LIMITS, type CommentAuthor, CommentMark, type CommentReply, type CommentThread, Comments, type CommentsActions, type CommentsFeatureOptions, type CommentsLayout, type CommentsMeta, type CommentsModel, type CommentsModelFactory, type CommentsOptions, type CommentsSnapshot, type CommentsState, type CommentsUi, type DocRange, cancelCommentDraft, commentsAvailable, commentsCanComment, commentsDoc, commentsFeatureCore, commentsKey, commentsModelOf, commentsSchemaExtensions, commentsState, commentsUser, createCommentsModel, createEditorCommentsModel, setActiveComment, startCommentDraft };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { COMMENTS_LAYOUTS } from "../../settings/values.js";
|
|
2
|
+
import { Comments, cancelCommentDraft, commentsAvailable, commentsCanComment, commentsDoc, commentsKey, commentsState, commentsUser, setActiveComment, startCommentDraft } from "./comments-plugin.js";
|
|
3
|
+
import { COMMENTS_FIELD, COMMENT_LIMITS, CommentMark, commentsSchemaExtensions } from "./schema.js";
|
|
4
|
+
import { commentsModelOf, createCommentsModel, createEditorCommentsModel } from "./model.js";
|
|
5
|
+
import { commentsFeatureCore } from "./feature.js";
|
|
6
|
+
export { COMMENTS_FIELD, COMMENTS_LAYOUTS, COMMENT_LIMITS, CommentMark, Comments, cancelCommentDraft, commentsAvailable, commentsCanComment, commentsDoc, commentsFeatureCore, commentsKey, commentsModelOf, commentsSchemaExtensions, commentsState, commentsUser, createCommentsModel, createEditorCommentsModel, setActiveComment, startCommentDraft };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ReadonlyStore } from "../../core/store.js";
|
|
2
|
+
import { AuthorIdentity, FeatureContext } from "../../core/feature.js";
|
|
3
|
+
import "../../core/index.js";
|
|
4
|
+
import { CommentThread } from "./schema.js";
|
|
5
|
+
import { Editor } from "@tiptap/core";
|
|
6
|
+
//#region src/features/comments/model.d.ts
|
|
7
|
+
export type DocRange = {
|
|
8
|
+
from: number;
|
|
9
|
+
to: number;
|
|
10
|
+
};
|
|
11
|
+
/** What a comments UI renders: replaced (a new object) whenever any part of it changes, so a store subscriber re-renders only then. */
|
|
12
|
+
export interface CommentsSnapshot {
|
|
13
|
+
/** Comments need a collaborative editor whose `Comments` extension has a user (a host model decides for itself). */
|
|
14
|
+
available: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Whether the user may compose a comment now: the default model says `available` and the editor is editable, a host
|
|
17
|
+
* model may allow readers of a read-only document to comment.
|
|
18
|
+
*/
|
|
19
|
+
canComment: boolean;
|
|
20
|
+
user: AuthorIdentity | null;
|
|
21
|
+
/** Plain snapshots of all threads in the Y.Doc, replaced on every change. */
|
|
22
|
+
threads: readonly CommentThread[];
|
|
23
|
+
/** Current text range per thread id (threads without one are orphans). */
|
|
24
|
+
ranges: ReadonlyMap<string, DocRange>;
|
|
25
|
+
active: string | null;
|
|
26
|
+
/** Current range of the draft a new comment is being written for. */
|
|
27
|
+
draft: DocRange | null;
|
|
28
|
+
/** The draft's text as the new thread will keep it (`quote`). */
|
|
29
|
+
draftQuote: string;
|
|
30
|
+
/** Unresolved threads in document order, orphans last; resolved ones newest first. */
|
|
31
|
+
open: readonly CommentThread[];
|
|
32
|
+
resolved: readonly CommentThread[];
|
|
33
|
+
}
|
|
34
|
+
/** The mutations of the comments of one editor; no-ops without collaboration or a user. */
|
|
35
|
+
export interface CommentsActions {
|
|
36
|
+
/** Creates a thread on the draft range; its id, or null without a (non-empty) draft or text. */
|
|
37
|
+
add: (text: string) => string | null;
|
|
38
|
+
reply: (threadId: string, text: string) => void;
|
|
39
|
+
/** Changes the text of the user's own thread (`replyId` null) or reply. */
|
|
40
|
+
edit: (threadId: string, replyId: string | null, text: string) => void;
|
|
41
|
+
/** Resolves or reopens a thread (anyone may). */
|
|
42
|
+
setResolved: (threadId: string, resolved: boolean) => void;
|
|
43
|
+
/** Deletes the user's own thread with its marks / the user's own reply. */
|
|
44
|
+
remove: (threadId: string) => void;
|
|
45
|
+
removeReply: (threadId: string, replyId: string) => void;
|
|
46
|
+
/** Activates a thread (`null`: none); `reveal` selects and scrolls to its text. */
|
|
47
|
+
activate: (id: string | null, options?: {
|
|
48
|
+
reveal?: boolean;
|
|
49
|
+
}) => void;
|
|
50
|
+
/** Starts a comment on the current selection (the layout shows the composer while `draft` is set). */
|
|
51
|
+
startDraft: () => void;
|
|
52
|
+
cancelDraft: () => void;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The comments of one editor, framework-free: `state` is the observable snapshot, `refresh()` brings it up to date
|
|
56
|
+
* (the framework hook calls it when the editor it watches changes; the model itself listens to that editor's
|
|
57
|
+
* transactions from then on), `dispose()` detaches the editor and Y.Doc listeners and may be followed by `refresh()` again
|
|
58
|
+
* (StrictMode mounts twice).
|
|
59
|
+
*/
|
|
60
|
+
export interface CommentsModel extends CommentsActions {
|
|
61
|
+
readonly state: ReadonlyStore<CommentsSnapshot>;
|
|
62
|
+
refresh: () => void;
|
|
63
|
+
dispose: () => void;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The comment threads of a collaborative editor, stored in its Y.Doc (`COMMENTS_FIELD`, one nested `Y.Map` per thread,
|
|
67
|
+
* replies in a nested `Y.Array`), so they sync live with the document and persist with its Yjs state. Keeps the
|
|
68
|
+
* `Comments` plugin's `known`/`hidden` thread ids in step with the store (highlights), exposes the plugin's ranges,
|
|
69
|
+
* active thread and draft, and the mutations. Mutations are no-ops without collaboration or user; editing and
|
|
70
|
+
* deleting are limited to the user's own comments and replies (a client-side rule: the Y.Doc itself has no ACL).
|
|
71
|
+
* `getEditor` names the editor to work on (it may change over time and may return a destroyed or no editor).
|
|
72
|
+
*/
|
|
73
|
+
export declare function createCommentsModel(getEditor: () => Editor | undefined): CommentsModel;
|
|
74
|
+
/** Creates the comments model of one editor, as a host supplies it to `commentsFeatureCore`. */
|
|
75
|
+
export type CommentsModelFactory = (getEditor: () => Editor | undefined) => CommentsModel;
|
|
76
|
+
/** The host model factory the comments feature of `ctx` was configured with; undefined for the default Y.Doc model. */
|
|
77
|
+
export declare function commentsModelOf(ctx: FeatureContext): CommentsModelFactory | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* The comments model the framework hooks (`useComments`) use: the model of the surface `getEditor` belongs to
|
|
80
|
+
* (`commentsModelOf` of its feature context: the host's `model` factory) and `createCommentsModel` for every other
|
|
81
|
+
* editor. It follows the editor over time: when the editor changes to one of a surface with another model, the inner
|
|
82
|
+
* model is replaced (disposed, created, refreshed) and `state` carries on with the new one. The factory runs once per
|
|
83
|
+
* consumer of this function, so a host model that must share state across them keeps it outside the factory.
|
|
84
|
+
*/
|
|
85
|
+
export declare function createEditorCommentsModel(getEditor: () => Editor | undefined): CommentsModel;
|
|
86
|
+
//#endregion
|
|
87
|
+
//# sourceMappingURL=model.d.ts.map
|