@ecsplico/editor 0.0.0-stage → 1.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/LICENSE +21 -0
- package/README.md +233 -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 +11 -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 +503 -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 +11 -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 +68 -0
- package/dist/nuxt/module.js +103 -0
- package/dist/nuxt/module.js.map +1 -0
- package/dist/nuxt/runtime/install-context.d.ts +17 -0
- package/dist/nuxt/runtime/install-context.js +26 -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/plugins/editor-context-primevue.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 +41 -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/primevue/Alert.js +49 -0
- package/dist/vue/kit/primevue/Alert.js.map +1 -0
- package/dist/vue/kit/primevue/Avatar.js +54 -0
- package/dist/vue/kit/primevue/Avatar.js.map +1 -0
- package/dist/vue/kit/primevue/Badge.js +41 -0
- package/dist/vue/kit/primevue/Badge.js.map +1 -0
- package/dist/vue/kit/primevue/Button.js +112 -0
- package/dist/vue/kit/primevue/Button.js.map +1 -0
- package/dist/vue/kit/primevue/Chip.js +38 -0
- package/dist/vue/kit/primevue/Chip.js.map +1 -0
- package/dist/vue/kit/primevue/DropdownMenu.js +98 -0
- package/dist/vue/kit/primevue/DropdownMenu.js.map +1 -0
- package/dist/vue/kit/primevue/FieldGroup.js +22 -0
- package/dist/vue/kit/primevue/FieldGroup.js.map +1 -0
- package/dist/vue/kit/primevue/FormField.js +56 -0
- package/dist/vue/kit/primevue/FormField.js.map +1 -0
- package/dist/vue/kit/primevue/Icon.js +23 -0
- package/dist/vue/kit/primevue/Icon.js.map +1 -0
- package/dist/vue/kit/primevue/Input.js +96 -0
- package/dist/vue/kit/primevue/Input.js.map +1 -0
- package/dist/vue/kit/primevue/InputMenu.js +122 -0
- package/dist/vue/kit/primevue/InputMenu.js.map +1 -0
- package/dist/vue/kit/primevue/Modal.js +59 -0
- package/dist/vue/kit/primevue/Modal.js.map +1 -0
- package/dist/vue/kit/primevue/Popover.js +135 -0
- package/dist/vue/kit/primevue/Popover.js.map +1 -0
- package/dist/vue/kit/primevue/RadioGroup.js +58 -0
- package/dist/vue/kit/primevue/RadioGroup.js.map +1 -0
- package/dist/vue/kit/primevue/Select.js +68 -0
- package/dist/vue/kit/primevue/Select.js.map +1 -0
- package/dist/vue/kit/primevue/SelectMenu.js +94 -0
- package/dist/vue/kit/primevue/SelectMenu.js.map +1 -0
- package/dist/vue/kit/primevue/Separator.js +16 -0
- package/dist/vue/kit/primevue/Separator.js.map +1 -0
- package/dist/vue/kit/primevue/Switch.js +46 -0
- package/dist/vue/kit/primevue/Switch.js.map +1 -0
- package/dist/vue/kit/primevue/Table.js +54 -0
- package/dist/vue/kit/primevue/Table.js.map +1 -0
- package/dist/vue/kit/primevue/Tabs.js +49 -0
- package/dist/vue/kit/primevue/Tabs.js.map +1 -0
- package/dist/vue/kit/primevue/Textarea.js +55 -0
- package/dist/vue/kit/primevue/Textarea.js.map +1 -0
- package/dist/vue/kit/primevue/Tooltip.js +43 -0
- package/dist/vue/kit/primevue/Tooltip.js.map +1 -0
- package/dist/vue/kit/primevue/Tree.js +75 -0
- package/dist/vue/kit/primevue/Tree.js.map +1 -0
- package/dist/vue/kit/primevue/select-options.js +55 -0
- package/dist/vue/kit/primevue/select-options.js.map +1 -0
- package/dist/vue/kit/primevue/shared.js +49 -0
- package/dist/vue/kit/primevue/shared.js.map +1 -0
- package/dist/vue/kit/primevue/trigger.js +25 -0
- package/dist/vue/kit/primevue/trigger.js.map +1 -0
- package/dist/vue/kit/primevue.css +86 -0
- package/dist/vue/kit/primevue.d.ts +33 -0
- package/dist/vue/kit/primevue.js +96 -0
- package/dist/vue/kit/primevue.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 +634 -4
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { COMMENTS_LAYOUTS } from "../../../settings/values.js";
|
|
2
|
+
import { useEditorI18n } from "../../../react/use-editor-i18n.js";
|
|
3
|
+
import { useEditorSettings } from "../../../react/settings.js";
|
|
4
|
+
import { SettingsSection } from "../../../react/SettingsSection.js";
|
|
5
|
+
import { Label } from "../../../react/ui/label.js";
|
|
6
|
+
import { RadioGroup, RadioGroupItem } from "../../../react/ui/radio-group.js";
|
|
7
|
+
import { useId } from "react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
//#region src/features/comments/react/SettingsCommentsTab.tsx
|
|
10
|
+
function layoutItems(t) {
|
|
11
|
+
return [{
|
|
12
|
+
label: t("comments.layout.margin.label"),
|
|
13
|
+
description: t("comments.layout.margin.description"),
|
|
14
|
+
value: "margin"
|
|
15
|
+
}, {
|
|
16
|
+
label: t("comments.layout.inline.label"),
|
|
17
|
+
description: t("comments.layout.inline.description"),
|
|
18
|
+
value: "inline"
|
|
19
|
+
}];
|
|
20
|
+
}
|
|
21
|
+
/** „Kommentare“: where the comments of a shared document are shown. */
|
|
22
|
+
function SettingsCommentsTab() {
|
|
23
|
+
const { settings, update } = useEditorSettings();
|
|
24
|
+
const { t } = useEditorI18n();
|
|
25
|
+
const legend = useId();
|
|
26
|
+
return /* @__PURE__ */ jsx("div", {
|
|
27
|
+
className: "flex flex-col gap-8",
|
|
28
|
+
children: /* @__PURE__ */ jsx(SettingsSection, {
|
|
29
|
+
title: t("comments.tab"),
|
|
30
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
31
|
+
className: "py-3",
|
|
32
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
33
|
+
id: legend,
|
|
34
|
+
className: "mb-2 text-sm font-medium text-foreground",
|
|
35
|
+
children: t("comments.layout.legend")
|
|
36
|
+
}), /* @__PURE__ */ jsx(RadioGroup, {
|
|
37
|
+
"aria-labelledby": legend,
|
|
38
|
+
orientation: "horizontal",
|
|
39
|
+
className: "flex flex-wrap gap-4",
|
|
40
|
+
value: settings.editing.commentsLayout,
|
|
41
|
+
onValueChange: (value) => {
|
|
42
|
+
const layout = COMMENTS_LAYOUTS.find((candidate) => candidate === value);
|
|
43
|
+
if (layout) update((draft) => {
|
|
44
|
+
draft.editing.commentsLayout = layout;
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
children: layoutItems(t).map((item) => /* @__PURE__ */ jsx(LayoutOption, { item }, item.value))
|
|
48
|
+
})]
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function LayoutOption({ item }) {
|
|
54
|
+
const id = useId();
|
|
55
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
56
|
+
className: "flex items-start gap-2",
|
|
57
|
+
children: [/* @__PURE__ */ jsx(RadioGroupItem, {
|
|
58
|
+
id,
|
|
59
|
+
value: item.value,
|
|
60
|
+
className: "mt-0.5"
|
|
61
|
+
}), /* @__PURE__ */ jsxs(Label, {
|
|
62
|
+
htmlFor: id,
|
|
63
|
+
className: "flex-col items-start gap-0.5",
|
|
64
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
65
|
+
className: "text-sm font-medium text-foreground",
|
|
66
|
+
children: item.label
|
|
67
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
68
|
+
className: "text-sm font-normal text-muted-foreground",
|
|
69
|
+
children: item.description
|
|
70
|
+
})]
|
|
71
|
+
})]
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
export { SettingsCommentsTab };
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=SettingsCommentsTab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SettingsCommentsTab.js","names":[],"sources":["../../../../src/features/comments/react/SettingsCommentsTab.tsx"],"sourcesContent":["import { useId } from 'react'\nimport { useEditorSettings } from '../../../react/settings'\nimport { SettingsSection } from '../../../react/SettingsSection'\nimport { Label } from '../../../react/ui/label'\nimport { RadioGroup, RadioGroupItem } from '../../../react/ui/radio-group'\nimport { useEditorI18n } from '../../../react/use-editor-i18n'\nimport type { Translate } from '../../../i18n'\nimport { COMMENTS_LAYOUTS, type CommentsLayout } from '../schema'\n\nfunction layoutItems(t: Translate): { label: string, description: string, value: CommentsLayout }[] {\n return [\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}\n\n/** „Kommentare“: where the comments of a shared document are shown. */\nexport function SettingsCommentsTab() {\n const { settings, update } = useEditorSettings()\n const { t } = useEditorI18n()\n const legend = useId()\n return (\n <div className=\"flex flex-col gap-8\">\n <SettingsSection title={t('comments.tab')}>\n <div className=\"py-3\">\n <p id={legend} className=\"mb-2 text-sm font-medium text-foreground\">{t('comments.layout.legend')}</p>\n <RadioGroup\n aria-labelledby={legend}\n orientation=\"horizontal\"\n className=\"flex flex-wrap gap-4\"\n value={settings.editing.commentsLayout}\n onValueChange={(value) => {\n const layout = COMMENTS_LAYOUTS.find(candidate => candidate === value)\n if (layout) update((draft) => { draft.editing.commentsLayout = layout })\n }}\n >\n {layoutItems(t).map(item => <LayoutOption key={item.value} item={item} />)}\n </RadioGroup>\n </div>\n </SettingsSection>\n </div>\n )\n}\n\nfunction LayoutOption({ item }: { item: ReturnType<typeof layoutItems>[number] }) {\n const id = useId()\n return (\n <div className=\"flex items-start gap-2\">\n <RadioGroupItem id={id} value={item.value} className=\"mt-0.5\" />\n <Label htmlFor={id} className=\"flex-col items-start gap-0.5\">\n <span className=\"text-sm font-medium text-foreground\">{item.label}</span>\n <span className=\"text-sm font-normal text-muted-foreground\">{item.description}</span>\n </Label>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;AASA,SAAS,YAAY,GAA+E;CAClG,OAAO,CACL;EAAE,OAAO,EAAE,8BAA8B;EAAG,aAAa,EAAE,oCAAoC;EAAG,OAAO;CAAS,GAClH;EAAE,OAAO,EAAE,8BAA8B;EAAG,aAAa,EAAE,oCAAoC;EAAG,OAAO;CAAS,CACpH;AACF;;AAGA,SAAgB,sBAAsB;CACpC,MAAM,EAAE,UAAU,WAAW,kBAAkB;CAC/C,MAAM,EAAE,MAAM,cAAc;CAC5B,MAAM,SAAS,MAAM;CACrB,OACE,oBAAC,OAAD;EAAK,WAAU;EACb,UAAA,oBAAC,iBAAD;GAAiB,OAAO,EAAE,cAAc;GACtC,UAAA,qBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACE,oBAAC,KAAD;KAAG,IAAI;KAAQ,WAAU;KAA4C,UAAA,EAAE,wBAAwB;IAAK,CAAA,GACpG,oBAAC,YAAD;KACE,mBAAiB;KACjB,aAAY;KACZ,WAAU;KACV,OAAO,SAAS,QAAQ;KACxB,gBAAgB,UAAU;MACxB,MAAM,SAAS,iBAAiB,MAAK,cAAa,cAAc,KAAK;MACrE,IAAI,QAAQ,QAAQ,UAAU;OAAE,MAAM,QAAQ,iBAAiB;MAAO,CAAC;KACzE;KAEC,UAAA,YAAY,CAAC,CAAC,CAAC,KAAI,SAAQ,oBAAC,cAAD,EAAqC,KAAO,GAAzB,KAAK,KAAoB,CAAC;IAC/D,CAAA,CACT;;EACU,CAAA;CACd,CAAA;AAET;AAEA,SAAS,aAAa,EAAE,QAA0D;CAChF,MAAM,KAAK,MAAM;CACjB,OACE,qBAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CACE,oBAAC,gBAAD;GAAoB;GAAI,OAAO,KAAK;GAAO,WAAU;EAAU,CAAA,GAC/D,qBAAC,OAAD;GAAO,SAAS;GAAI,WAAU;GAA9B,UAAA,CACE,oBAAC,QAAD;IAAM,WAAU;IAAuC,UAAA,KAAK;GAAY,CAAA,GACxE,oBAAC,QAAD;IAAM,WAAU;IAA6C,UAAA,KAAK;GAAkB,CAAA,CAC/E;EACJ,CAAA,CAAA;;AAET"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CommentsActions, CommentsSnapshot } from "../model.js";
|
|
2
|
+
import { Editor } from "@tiptap/core";
|
|
3
|
+
//#region src/features/comments/react/use-comments.d.ts
|
|
4
|
+
/** What `useComments` returns; layouts pass it on to `CommentThreadView`. */
|
|
5
|
+
export interface CommentsApi extends CommentsSnapshot, CommentsActions {
|
|
6
|
+
/** The thread's text was deleted (no `comment` mark left). */
|
|
7
|
+
isOrphan: (id: string) => boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The comment threads of an editor for React: a thin hook over the comments model of the editor's surface (the host's
|
|
11
|
+
* `model` of `commentsFeature`, else `createCommentsModel`: see there for storage and rules); re-renders when the
|
|
12
|
+
* comments change. `editor` may change or be `undefined` (the hook is then
|
|
13
|
+
* idle: no Y.Doc observer).
|
|
14
|
+
*/
|
|
15
|
+
export declare function useComments(editor: Editor | undefined): CommentsApi;
|
|
16
|
+
//#endregion
|
|
17
|
+
//# sourceMappingURL=use-comments.d.ts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { useStore } from "../../../react/use-store.js";
|
|
2
|
+
import { createEditorCommentsModel } from "../model.js";
|
|
3
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
4
|
+
//#region src/features/comments/react/use-comments.ts
|
|
5
|
+
/**
|
|
6
|
+
* The comment threads of an editor for React: a thin hook over the comments model of the editor's surface (the host's
|
|
7
|
+
* `model` of `commentsFeature`, else `createCommentsModel`: see there for storage and rules); re-renders when the
|
|
8
|
+
* comments change. `editor` may change or be `undefined` (the hook is then
|
|
9
|
+
* idle: no Y.Doc observer).
|
|
10
|
+
*/
|
|
11
|
+
function useComments(editor) {
|
|
12
|
+
const latest = useRef(editor);
|
|
13
|
+
latest.current = editor;
|
|
14
|
+
const [model] = useState(() => createEditorCommentsModel(() => latest.current));
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
model.refresh();
|
|
17
|
+
return () => model.dispose();
|
|
18
|
+
}, [model, editor]);
|
|
19
|
+
const snapshot = useStore(model.state);
|
|
20
|
+
return useMemo(() => ({
|
|
21
|
+
...snapshot,
|
|
22
|
+
isOrphan: (id) => !snapshot.ranges.has(id),
|
|
23
|
+
add: model.add,
|
|
24
|
+
reply: model.reply,
|
|
25
|
+
edit: model.edit,
|
|
26
|
+
setResolved: model.setResolved,
|
|
27
|
+
remove: model.remove,
|
|
28
|
+
removeReply: model.removeReply,
|
|
29
|
+
activate: model.activate,
|
|
30
|
+
startDraft: model.startDraft,
|
|
31
|
+
cancelDraft: model.cancelDraft
|
|
32
|
+
}), [snapshot, model]);
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
export { useComments };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=use-comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-comments.js","names":[],"sources":["../../../../src/features/comments/react/use-comments.ts"],"sourcesContent":["import type { Editor } from '@tiptap/core'\nimport { useEffect, useMemo, useRef, useState } from 'react'\nimport { useStore } from '../../../react/use-store'\nimport { type CommentsActions, type CommentsSnapshot, createEditorCommentsModel } from '../model'\n\n/** What `useComments` returns; layouts pass it on to `CommentThreadView`. */\nexport interface CommentsApi extends CommentsSnapshot, CommentsActions {\n /** The thread's text was deleted (no `comment` mark left). */\n isOrphan: (id: string) => boolean\n}\n\n/**\n * The comment threads of an editor for React: a thin hook over the comments model of the editor's surface (the host's\n * `model` of `commentsFeature`, else `createCommentsModel`: see there for storage and rules); re-renders when the\n * comments change. `editor` may change or be `undefined` (the hook is then\n * idle: no Y.Doc observer).\n */\nexport function useComments(editor: Editor | undefined): CommentsApi {\n const latest = useRef(editor)\n latest.current = editor\n const [model] = useState(() => createEditorCommentsModel(() => latest.current))\n\n // Paired attach and detach, so StrictMode's mount, cleanup, mount leaves exactly one observer.\n useEffect(() => {\n model.refresh()\n return () => model.dispose()\n }, [model, editor])\n\n const snapshot = useStore(model.state)\n return useMemo(() => ({\n ...snapshot,\n isOrphan: (id: string) => !snapshot.ranges.has(id),\n add: model.add,\n reply: model.reply,\n edit: model.edit,\n setResolved: model.setResolved,\n remove: model.remove,\n removeReply: model.removeReply,\n activate: model.activate,\n startDraft: model.startDraft,\n cancelDraft: model.cancelDraft,\n }), [snapshot, model])\n}\n"],"mappings":";;;;;;;;;;AAiBA,SAAgB,YAAY,QAAyC;CACnE,MAAM,SAAS,OAAO,MAAM;CAC5B,OAAO,UAAU;CACjB,MAAM,CAAC,SAAS,eAAe,gCAAgC,OAAO,OAAO,CAAC;CAG9E,gBAAgB;EACd,MAAM,QAAQ;EACd,aAAa,MAAM,QAAQ;CAC7B,GAAG,CAAC,OAAO,MAAM,CAAC;CAElB,MAAM,WAAW,SAAS,MAAM,KAAK;CACrC,OAAO,eAAe;EACpB,GAAG;EACH,WAAW,OAAe,CAAC,SAAS,OAAO,IAAI,EAAE;EACjD,KAAK,MAAM;EACX,OAAO,MAAM;EACb,MAAM,MAAM;EACZ,aAAa,MAAM;EACnB,QAAQ,MAAM;EACd,aAAa,MAAM;EACnB,UAAU,MAAM;EAChB,YAAY,MAAM;EAClB,aAAa,MAAM;CACrB,IAAI,CAAC,UAAU,KAAK,CAAC;AACvB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ReactFeature } from "../../react/EditorSurface.js";
|
|
2
|
+
import "../../react/index.js";
|
|
3
|
+
import { CommentsFeatureOptions } from "./feature.js";
|
|
4
|
+
import { CommentBubble } from "./react/CommentBubble.js";
|
|
5
|
+
import { CommentComposer } from "./react/CommentComposer.js";
|
|
6
|
+
import { CommentsListMenu } from "./react/CommentsListMenu.js";
|
|
7
|
+
import { CommentsMargin } from "./react/CommentsMargin.js";
|
|
8
|
+
import { CommentsOverlay } from "./react/CommentsOverlay.js";
|
|
9
|
+
import { CommentsPopover } from "./react/CommentsPopover.js";
|
|
10
|
+
import { CommentThreadView } from "./react/CommentThreadView.js";
|
|
11
|
+
import { CommentsToolbarButton } from "./react/CommentsToolbarButton.js";
|
|
12
|
+
import { SettingsCommentsTab } from "./react/SettingsCommentsTab.js";
|
|
13
|
+
import { CommentsApi, useComments } from "./react/use-comments.js";
|
|
14
|
+
//#region src/features/comments/react.d.ts
|
|
15
|
+
/**
|
|
16
|
+
* The React comments feature (shadcn): see `commentsFeatureCore`. The host places `CommentsMargin` beside the editor's
|
|
17
|
+
* scroll container and binds the surface's `commentsOpen` state to its `open` prop. `options.model` backs the comments
|
|
18
|
+
* with the host's own model instead of the Y.Doc (no `collab` feature needed).
|
|
19
|
+
*/
|
|
20
|
+
export declare function commentsFeature(options?: CommentsFeatureOptions): ReactFeature;
|
|
21
|
+
//#endregion
|
|
22
|
+
export { CommentBubble, CommentComposer, CommentThreadView, type CommentsApi, CommentsListMenu, CommentsMargin, CommentsOverlay, CommentsPopover, CommentsToolbarButton, SettingsCommentsTab, useComments };
|
|
23
|
+
//# sourceMappingURL=react.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { commentsFeatureCore } from "./feature.js";
|
|
2
|
+
import { CommentBubble } from "./react/CommentBubble.js";
|
|
3
|
+
import { CommentComposer } from "./react/CommentComposer.js";
|
|
4
|
+
import { CommentThreadView } from "./react/CommentThreadView.js";
|
|
5
|
+
import { useComments } from "./react/use-comments.js";
|
|
6
|
+
import { CommentsPopover } from "./react/CommentsPopover.js";
|
|
7
|
+
import { CommentsOverlay } from "./react/CommentsOverlay.js";
|
|
8
|
+
import { CommentsListMenu } from "./react/CommentsListMenu.js";
|
|
9
|
+
import { CommentsToolbarButton } from "./react/CommentsToolbarButton.js";
|
|
10
|
+
import { SettingsCommentsTab } from "./react/SettingsCommentsTab.js";
|
|
11
|
+
import { CommentsMargin } from "./react/CommentsMargin.js";
|
|
12
|
+
//#region src/features/comments/react.ts
|
|
13
|
+
/**
|
|
14
|
+
* The React comments feature (shadcn): see `commentsFeatureCore`. The host places `CommentsMargin` beside the editor's
|
|
15
|
+
* scroll container and binds the surface's `commentsOpen` state to its `open` prop. `options.model` backs the comments
|
|
16
|
+
* with the host's own model instead of the Y.Doc (no `collab` feature needed).
|
|
17
|
+
*/
|
|
18
|
+
function commentsFeature(options) {
|
|
19
|
+
return commentsFeatureCore({
|
|
20
|
+
toolbarButton: CommentsToolbarButton,
|
|
21
|
+
overlay: CommentsOverlay,
|
|
22
|
+
settingsTab: SettingsCommentsTab
|
|
23
|
+
}, options);
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { CommentBubble, CommentComposer, CommentThreadView, CommentsListMenu, CommentsMargin, CommentsOverlay, CommentsPopover, CommentsToolbarButton, SettingsCommentsTab, commentsFeature, useComments };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=react.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react.js","names":[],"sources":["../../../src/features/comments/react.ts"],"sourcesContent":["import type { ReactFeature } from '../../react'\nimport { type CommentsFeatureOptions, commentsFeatureCore } from './feature'\nimport { CommentsOverlay } from './react/CommentsOverlay'\nimport { CommentsToolbarButton } from './react/CommentsToolbarButton'\nimport { SettingsCommentsTab } from './react/SettingsCommentsTab'\n\nexport { CommentBubble } from './react/CommentBubble'\nexport { CommentComposer } from './react/CommentComposer'\nexport { CommentsListMenu } from './react/CommentsListMenu'\nexport { CommentsMargin } from './react/CommentsMargin'\nexport { CommentsOverlay } from './react/CommentsOverlay'\nexport { CommentsPopover } from './react/CommentsPopover'\nexport { CommentThreadView } from './react/CommentThreadView'\nexport { CommentsToolbarButton } from './react/CommentsToolbarButton'\nexport { SettingsCommentsTab } from './react/SettingsCommentsTab'\nexport { type CommentsApi, useComments } from './react/use-comments'\n\n/**\n * The React comments feature (shadcn): see `commentsFeatureCore`. The host places `CommentsMargin` beside the editor's\n * scroll container and binds the surface's `commentsOpen` state to its `open` prop. `options.model` backs the comments\n * with the host's own model instead of the Y.Doc (no `collab` feature needed).\n */\nexport function commentsFeature(options?: CommentsFeatureOptions): ReactFeature {\n return commentsFeatureCore({\n toolbarButton: CommentsToolbarButton,\n overlay: CommentsOverlay,\n settingsTab: SettingsCommentsTab,\n }, options)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAsBA,SAAgB,gBAAgB,SAAgD;CAC9E,OAAO,oBAAoB;EACzB,eAAe;EACf,SAAS;EACT,aAAa;CACf,GAAG,OAAO;AACZ"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { COMMENTS_LAYOUTS, CommentsLayout } from "../../settings/values.js";
|
|
2
|
+
import { AuthorIdentity } from "../../core/feature.js";
|
|
3
|
+
import "../../core/schema/mark-flags.js";
|
|
4
|
+
import { AnyExtension, Mark } from "@tiptap/core";
|
|
5
|
+
//#region src/features/comments/schema.d.ts
|
|
6
|
+
/** Name of the `Y.Map` holding the comment threads in the Y.Doc, beside the document's 'default' XmlFragment. */
|
|
7
|
+
export declare const COMMENTS_FIELD = "comments";
|
|
8
|
+
/** Maximum lengths of a comment's or reply's text and of the quoted text a thread keeps of its range. */
|
|
9
|
+
export declare const COMMENT_LIMITS: {
|
|
10
|
+
readonly text: 5000;
|
|
11
|
+
readonly quote: 200;
|
|
12
|
+
};
|
|
13
|
+
/** Who wrote a comment or reply: the writing user's identity, copied in when writing. */
|
|
14
|
+
export type CommentAuthor = AuthorIdentity;
|
|
15
|
+
export interface CommentReply {
|
|
16
|
+
id: string;
|
|
17
|
+
author: CommentAuthor;
|
|
18
|
+
text: string;
|
|
19
|
+
/** ISO timestamps; `editedAt` once the author changed the text. */
|
|
20
|
+
createdAt: string;
|
|
21
|
+
editedAt?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A comment thread: the root comment plus its replies. Stored as a nested `Y.Map` in `ydoc.getMap(COMMENTS_FIELD)`
|
|
25
|
+
* (replies as a nested `Y.Array`), so concurrent replies and edits of different users merge. Its text range is the
|
|
26
|
+
* `comment` mark with the thread's `id`.
|
|
27
|
+
*/
|
|
28
|
+
export interface CommentThread {
|
|
29
|
+
id: string;
|
|
30
|
+
author: CommentAuthor;
|
|
31
|
+
text: string;
|
|
32
|
+
createdAt: string;
|
|
33
|
+
editedAt?: string;
|
|
34
|
+
/** The commented text when the thread was created, cut to `COMMENT_LIMITS.quote`. */
|
|
35
|
+
quote: string;
|
|
36
|
+
/** Resolved threads are kept, without highlight, until reopened. */
|
|
37
|
+
resolved: boolean;
|
|
38
|
+
replies: CommentReply[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Anchors a comment thread to text (attribute `id` = the thread's id). Storage only: the visible highlight is a
|
|
42
|
+
* client-side decoration driven by the thread's state (`Comments` extension). `excludes: ''` lets the marks of
|
|
43
|
+
* overlapping threads coexist on the same text; `inclusive: false` keeps text typed at the end of a range outside it.
|
|
44
|
+
* No Markdown form (`markdownInvisible`).
|
|
45
|
+
*/
|
|
46
|
+
export declare const CommentMark: Mark<any, any>;
|
|
47
|
+
/** The comment mark of the document schema. */
|
|
48
|
+
export declare const commentsSchemaExtensions: () => AnyExtension[];
|
|
49
|
+
//#endregion
|
|
50
|
+
export { COMMENTS_LAYOUTS, type CommentsLayout };
|
|
51
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { COMMENTS_LAYOUTS } from "../../settings/values.js";
|
|
2
|
+
import { Mark, mergeAttributes } from "@tiptap/core";
|
|
3
|
+
//#region src/features/comments/schema.ts
|
|
4
|
+
/** Name of the `Y.Map` holding the comment threads in the Y.Doc, beside the document's 'default' XmlFragment. */
|
|
5
|
+
const COMMENTS_FIELD = "comments";
|
|
6
|
+
/** Maximum lengths of a comment's or reply's text and of the quoted text a thread keeps of its range. */
|
|
7
|
+
const COMMENT_LIMITS = {
|
|
8
|
+
text: 5e3,
|
|
9
|
+
quote: 200
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Anchors a comment thread to text (attribute `id` = the thread's id). Storage only: the visible highlight is a
|
|
13
|
+
* client-side decoration driven by the thread's state (`Comments` extension). `excludes: ''` lets the marks of
|
|
14
|
+
* overlapping threads coexist on the same text; `inclusive: false` keeps text typed at the end of a range outside it.
|
|
15
|
+
* No Markdown form (`markdownInvisible`).
|
|
16
|
+
*/
|
|
17
|
+
const CommentMark = Mark.create({
|
|
18
|
+
name: "comment",
|
|
19
|
+
excludes: "",
|
|
20
|
+
inclusive: false,
|
|
21
|
+
markdownInvisible: true,
|
|
22
|
+
addAttributes() {
|
|
23
|
+
return { id: {
|
|
24
|
+
default: null,
|
|
25
|
+
parseHTML: (el) => el.getAttribute("data-comment-id"),
|
|
26
|
+
renderHTML: (attrs) => ({ "data-comment-id": attrs.id })
|
|
27
|
+
} };
|
|
28
|
+
},
|
|
29
|
+
parseHTML: () => [{ tag: "span[data-comment-id]" }],
|
|
30
|
+
renderHTML: ({ HTMLAttributes }) => [
|
|
31
|
+
"span",
|
|
32
|
+
mergeAttributes(HTMLAttributes, { class: "comment" }),
|
|
33
|
+
0
|
|
34
|
+
]
|
|
35
|
+
});
|
|
36
|
+
/** The comment mark of the document schema. */
|
|
37
|
+
const commentsSchemaExtensions = () => [CommentMark];
|
|
38
|
+
//#endregion
|
|
39
|
+
export { COMMENTS_FIELD, COMMENTS_LAYOUTS, COMMENT_LIMITS, CommentMark, commentsSchemaExtensions };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","names":[],"sources":["../../../src/features/comments/schema.ts"],"sourcesContent":["import { type AnyExtension, Mark, mergeAttributes } from '@tiptap/core'\nimport type { AuthorIdentity } from '../../core/feature'\nimport '../../core/schema/mark-flags'\n\n// Vue-free and server-importable (`@ecsplico/editor/comments/schema`): the comment mark that anchors a thread to\n// text, the thread data model and the limits. The Y.Map store, the highlights and the UI live in the feature.\n\nexport { COMMENTS_LAYOUTS, type CommentsLayout } from '../../settings/values'\n\n/** Name of the `Y.Map` holding the comment threads in the Y.Doc, beside the document's 'default' XmlFragment. */\nexport const COMMENTS_FIELD = 'comments'\n\n/** Maximum lengths of a comment's or reply's text and of the quoted text a thread keeps of its range. */\nexport const COMMENT_LIMITS = { text: 5000, quote: 200 } as const\n\n/** Who wrote a comment or reply: the writing user's identity, copied in when writing. */\nexport type CommentAuthor = AuthorIdentity\n\nexport interface CommentReply {\n id: string\n author: CommentAuthor\n text: string\n /** ISO timestamps; `editedAt` once the author changed the text. */\n createdAt: string\n editedAt?: string\n}\n\n/**\n * A comment thread: the root comment plus its replies. Stored as a nested `Y.Map` in `ydoc.getMap(COMMENTS_FIELD)`\n * (replies as a nested `Y.Array`), so concurrent replies and edits of different users merge. Its text range is the\n * `comment` mark with the thread's `id`.\n */\nexport interface CommentThread {\n id: string\n author: CommentAuthor\n text: string\n createdAt: string\n editedAt?: string\n /** The commented text when the thread was created, cut to `COMMENT_LIMITS.quote`. */\n quote: string\n /** Resolved threads are kept, without highlight, until reopened. */\n resolved: boolean\n replies: CommentReply[]\n}\n\n/**\n * Anchors a comment thread to text (attribute `id` = the thread's id). Storage only: the visible highlight is a\n * client-side decoration driven by the thread's state (`Comments` extension). `excludes: ''` lets the marks of\n * overlapping threads coexist on the same text; `inclusive: false` keeps text typed at the end of a range outside it.\n * No Markdown form (`markdownInvisible`).\n */\nexport const CommentMark = Mark.create({\n name: 'comment',\n excludes: '',\n inclusive: false,\n markdownInvisible: true,\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: el => el.getAttribute('data-comment-id'),\n renderHTML: attrs => ({ 'data-comment-id': attrs.id }),\n },\n }\n },\n parseHTML: () => [{ tag: 'span[data-comment-id]' }],\n renderHTML: ({ HTMLAttributes }) => ['span', mergeAttributes(HTMLAttributes, { class: 'comment' }), 0],\n})\n\n/** The comment mark of the document schema. */\nexport const commentsSchemaExtensions = (): AnyExtension[] => [CommentMark]\n"],"mappings":";;;;AAUA,MAAa,iBAAiB;;AAG9B,MAAa,iBAAiB;CAAE,MAAM;CAAM,OAAO;AAAI;;;;;;;AAsCvD,MAAa,cAAc,KAAK,OAAO;CACrC,MAAM;CACN,UAAU;CACV,WAAW;CACX,mBAAmB;CACnB,gBAAgB;EACd,OAAO,EACL,IAAI;GACF,SAAS;GACT,YAAW,OAAM,GAAG,aAAa,iBAAiB;GAClD,aAAY,WAAU,EAAE,mBAAmB,MAAM,GAAG;EACtD,EACF;CACF;CACA,iBAAiB,CAAC,EAAE,KAAK,wBAAwB,CAAC;CAClD,aAAa,EAAE,qBAAqB;EAAC;EAAQ,gBAAgB,gBAAgB,EAAE,OAAO,UAAU,CAAC;EAAG;CAAC;AACvG,CAAC;;AAGD,MAAa,iCAAiD,CAAC,WAAW"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { cancelCommentDraft, commentsAvailable, commentsKey, setActiveComment } from "./comments-plugin.js";
|
|
2
|
+
import { Extension } from "@tiptap/core";
|
|
3
|
+
//#region src/features/comments/shortcuts.ts
|
|
4
|
+
/**
|
|
5
|
+
* Mod-Shift-m toggles this editor's comments margin while the editor has focus (margin layout of a collaborative
|
|
6
|
+
* editor only; otherwise the key is left to others, shown on the toolbar's „Kommentare“). Esc closes the inline
|
|
7
|
+
* comments popover; it has to be an editor binding because ProseMirror marks every Esc in the editor as handled, which
|
|
8
|
+
* a document listener (and the popover's own dismiss) then skips. Lower priority than ghost autocomplete, so Esc
|
|
9
|
+
* dismisses a suggestion first.
|
|
10
|
+
*/
|
|
11
|
+
function commentsShortcuts(ctx) {
|
|
12
|
+
return Extension.create({
|
|
13
|
+
name: "commentsShortcuts",
|
|
14
|
+
addKeyboardShortcuts: () => ({
|
|
15
|
+
"Mod-Shift-m": ({ editor }) => {
|
|
16
|
+
if (ctx.settings.get().editing.commentsLayout !== "margin" || !commentsAvailable(editor)) return false;
|
|
17
|
+
ctx.ui.toggleComments();
|
|
18
|
+
return true;
|
|
19
|
+
},
|
|
20
|
+
Escape: ({ editor }) => {
|
|
21
|
+
if (ctx.settings.get().editing.commentsLayout !== "inline") return false;
|
|
22
|
+
const state = commentsKey.getState(editor.state);
|
|
23
|
+
if (state?.draft) cancelCommentDraft(editor);
|
|
24
|
+
else if (state?.active) setActiveComment(editor, null);
|
|
25
|
+
else return false;
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
})
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { commentsShortcuts };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=shortcuts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shortcuts.js","names":[],"sources":["../../../src/features/comments/shortcuts.ts"],"sourcesContent":["import { type AnyExtension, Extension } from '@tiptap/core'\nimport type { FeatureContext } from '../../core'\nimport { cancelCommentDraft, commentsAvailable, commentsKey, setActiveComment } from './comments-plugin'\n\n/**\n * Mod-Shift-m toggles this editor's comments margin while the editor has focus (margin layout of a collaborative\n * editor only; otherwise the key is left to others, shown on the toolbar's „Kommentare“). Esc closes the inline\n * comments popover; it has to be an editor binding because ProseMirror marks every Esc in the editor as handled, which\n * a document listener (and the popover's own dismiss) then skips. Lower priority than ghost autocomplete, so Esc\n * dismisses a suggestion first.\n */\nexport function commentsShortcuts(ctx: FeatureContext): AnyExtension {\n return Extension.create({\n name: 'commentsShortcuts',\n addKeyboardShortcuts: () => ({\n 'Mod-Shift-m': ({ editor }) => {\n if (ctx.settings.get().editing.commentsLayout !== 'margin' || !commentsAvailable(editor)) return false\n ctx.ui.toggleComments()\n return true\n },\n Escape: ({ editor }) => {\n if (ctx.settings.get().editing.commentsLayout !== 'inline') return false\n const state = commentsKey.getState(editor.state)\n if (state?.draft) cancelCommentDraft(editor)\n else if (state?.active) setActiveComment(editor, null)\n else return false\n return true\n },\n }),\n })\n}\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,kBAAkB,KAAmC;CACnE,OAAO,UAAU,OAAO;EACtB,MAAM;EACN,6BAA6B;GAC3B,gBAAgB,EAAE,aAAa;IAC7B,IAAI,IAAI,SAAS,IAAI,CAAC,CAAC,QAAQ,mBAAmB,YAAY,CAAC,kBAAkB,MAAM,GAAG,OAAO;IACjG,IAAI,GAAG,eAAe;IACtB,OAAO;GACT;GACA,SAAS,EAAE,aAAa;IACtB,IAAI,IAAI,SAAS,IAAI,CAAC,CAAC,QAAQ,mBAAmB,UAAU,OAAO;IACnE,MAAM,QAAQ,YAAY,SAAS,OAAO,KAAK;IAC/C,IAAI,OAAO,OAAO,mBAAmB,MAAM;SACtC,IAAI,OAAO,QAAQ,iBAAiB,QAAQ,IAAI;SAChD,OAAO;IACZ,OAAO;GACT;EACF;CACF,CAAC;AACH"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { AuthorIdentity } from "../../core/feature.js";
|
|
2
|
+
import "../../core/index.js";
|
|
3
|
+
import { CommentThread } from "./schema.js";
|
|
4
|
+
import { CommentsActions, DocRange } from "./model.js";
|
|
5
|
+
import { ComputedRef, MaybeRefOrGetter, Ref } from "vue";
|
|
6
|
+
import { Editor } from "@tiptap/core";
|
|
7
|
+
//#region src/features/comments/use-comments.d.ts
|
|
8
|
+
/** What `useComments` returns; layouts pass it on to `CommentThreadView`. */
|
|
9
|
+
export interface CommentsStore extends CommentsActions {
|
|
10
|
+
/** Comments need a collaborative editor whose `Comments` extension has a user. */
|
|
11
|
+
available: ComputedRef<boolean>;
|
|
12
|
+
/** The user may compose a comment now: the default model needs an editable editor, a host model may allow readers. */
|
|
13
|
+
canComment: ComputedRef<boolean>;
|
|
14
|
+
user: ComputedRef<AuthorIdentity | null>;
|
|
15
|
+
/** Plain snapshots of all threads in the Y.Doc, replaced on every change. */
|
|
16
|
+
threads: Readonly<Ref<readonly CommentThread[]>>;
|
|
17
|
+
/** Current text range per thread id (threads without one are orphans). */
|
|
18
|
+
ranges: ComputedRef<ReadonlyMap<string, DocRange>>;
|
|
19
|
+
active: ComputedRef<string | null>;
|
|
20
|
+
/** Current range of the draft a new comment is being written for. */
|
|
21
|
+
draft: ComputedRef<DocRange | null>;
|
|
22
|
+
/** The draft's text as the new thread will keep it (`quote`). */
|
|
23
|
+
draftQuote: ComputedRef<string>;
|
|
24
|
+
/** Unresolved threads in document order, orphans last; resolved ones newest first. */
|
|
25
|
+
open: ComputedRef<readonly CommentThread[]>;
|
|
26
|
+
resolved: ComputedRef<readonly CommentThread[]>;
|
|
27
|
+
/** The thread's text was deleted (no `comment` mark left). */
|
|
28
|
+
isOrphan: (id: string) => boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The comment threads of an editor as Vue refs: a thin hook over the comments model of the editor's surface (the host's
|
|
32
|
+
* `model` of `commentsFeature`, else `createCommentsModel`: see there for storage and rules). `editor` may be a ref or getter that changes or turns `undefined` (the hook is then idle: no Y.Doc
|
|
33
|
+
* observer). Stops with the current effect scope.
|
|
34
|
+
*/
|
|
35
|
+
export declare function useComments(editor: MaybeRefOrGetter<Editor | undefined>): CommentsStore;
|
|
36
|
+
//#endregion
|
|
37
|
+
//# sourceMappingURL=use-comments.d.ts.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { createEditorCommentsModel } from "./model.js";
|
|
2
|
+
import { useStoreRef } from "../../vue/store-ref.js";
|
|
3
|
+
import { computed, getCurrentScope, onScopeDispose, toRaw, toValue, watch } from "vue";
|
|
4
|
+
//#region src/features/comments/use-comments.ts
|
|
5
|
+
/**
|
|
6
|
+
* The comment threads of an editor as Vue refs: a thin hook over the comments model of the editor's surface (the host's
|
|
7
|
+
* `model` of `commentsFeature`, else `createCommentsModel`: see there for storage and rules). `editor` may be a ref or getter that changes or turns `undefined` (the hook is then idle: no Y.Doc
|
|
8
|
+
* observer). Stops with the current effect scope.
|
|
9
|
+
*/
|
|
10
|
+
function useComments(editor) {
|
|
11
|
+
const model = createEditorCommentsModel(() => {
|
|
12
|
+
const value = toValue(editor);
|
|
13
|
+
return value && toRaw(value);
|
|
14
|
+
});
|
|
15
|
+
const snapshot = useStoreRef(model.state);
|
|
16
|
+
if (getCurrentScope()) onScopeDispose(model.dispose);
|
|
17
|
+
watch(() => toValue(editor), () => model.refresh(), { immediate: true });
|
|
18
|
+
const { add, reply, edit, setResolved, remove, removeReply, activate, startDraft, cancelDraft } = model;
|
|
19
|
+
return {
|
|
20
|
+
available: computed(() => snapshot.value.available),
|
|
21
|
+
canComment: computed(() => snapshot.value.canComment),
|
|
22
|
+
user: computed(() => snapshot.value.user),
|
|
23
|
+
threads: computed(() => snapshot.value.threads),
|
|
24
|
+
ranges: computed(() => snapshot.value.ranges),
|
|
25
|
+
active: computed(() => snapshot.value.active),
|
|
26
|
+
draft: computed(() => snapshot.value.draft),
|
|
27
|
+
draftQuote: computed(() => snapshot.value.draftQuote),
|
|
28
|
+
open: computed(() => snapshot.value.open),
|
|
29
|
+
resolved: computed(() => snapshot.value.resolved),
|
|
30
|
+
isOrphan: (id) => !snapshot.value.ranges.has(id),
|
|
31
|
+
add,
|
|
32
|
+
reply,
|
|
33
|
+
edit,
|
|
34
|
+
setResolved,
|
|
35
|
+
remove,
|
|
36
|
+
removeReply,
|
|
37
|
+
activate,
|
|
38
|
+
startDraft,
|
|
39
|
+
cancelDraft
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
export { useComments };
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=use-comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-comments.js","names":[],"sources":["../../../src/features/comments/use-comments.ts"],"sourcesContent":["import type { Editor } from '@tiptap/core'\nimport { computed, type ComputedRef, getCurrentScope, type MaybeRefOrGetter, onScopeDispose, type Ref, toRaw, toValue, watch } from 'vue'\nimport type { AuthorIdentity } from '../../core'\nimport { useStoreRef } from '../../vue/store-ref'\nimport { type CommentsActions, createEditorCommentsModel, type DocRange } from './model'\nimport type { CommentThread } from './schema'\n\n/** What `useComments` returns; layouts pass it on to `CommentThreadView`. */\nexport interface CommentsStore extends CommentsActions {\n /** Comments need a collaborative editor whose `Comments` extension has a user. */\n available: ComputedRef<boolean>\n /** The user may compose a comment now: the default model needs an editable editor, a host model may allow readers. */\n canComment: ComputedRef<boolean>\n user: ComputedRef<AuthorIdentity | null>\n /** Plain snapshots of all threads in the Y.Doc, replaced on every change. */\n threads: Readonly<Ref<readonly CommentThread[]>>\n /** Current text range per thread id (threads without one are orphans). */\n ranges: ComputedRef<ReadonlyMap<string, DocRange>>\n active: ComputedRef<string | null>\n /** Current range of the draft a new comment is being written for. */\n draft: ComputedRef<DocRange | null>\n /** The draft's text as the new thread will keep it (`quote`). */\n draftQuote: ComputedRef<string>\n /** Unresolved threads in document order, orphans last; resolved ones newest first. */\n open: ComputedRef<readonly CommentThread[]>\n resolved: ComputedRef<readonly CommentThread[]>\n /** The thread's text was deleted (no `comment` mark left). */\n isOrphan: (id: string) => boolean\n}\n\n/**\n * The comment threads of an editor as Vue refs: a thin hook over the comments model of the editor's surface (the host's\n * `model` of `commentsFeature`, else `createCommentsModel`: see there for storage and rules). `editor` may be a ref or getter that changes or turns `undefined` (the hook is then idle: no Y.Doc\n * observer). Stops with the current effect scope.\n */\nexport function useComments(editor: MaybeRefOrGetter<Editor | undefined>): CommentsStore {\n // The surface registry is keyed by the raw editor instance, not by a reactive proxy of it.\n const model = createEditorCommentsModel(() => {\n const value = toValue(editor)\n return value && toRaw(value)\n })\n const snapshot = useStoreRef(model.state)\n if (getCurrentScope()) onScopeDispose(model.dispose)\n watch(() => toValue(editor), () => model.refresh(), { immediate: true })\n\n const { add, reply, edit, setResolved, remove, removeReply, activate, startDraft, cancelDraft } = model\n return {\n available: computed(() => snapshot.value.available),\n canComment: computed(() => snapshot.value.canComment),\n user: computed(() => snapshot.value.user),\n threads: computed(() => snapshot.value.threads),\n ranges: computed(() => snapshot.value.ranges),\n active: computed(() => snapshot.value.active),\n draft: computed(() => snapshot.value.draft),\n draftQuote: computed(() => snapshot.value.draftQuote),\n open: computed(() => snapshot.value.open),\n resolved: computed(() => snapshot.value.resolved),\n isOrphan: id => !snapshot.value.ranges.has(id),\n add,\n reply,\n edit,\n setResolved,\n remove,\n removeReply,\n activate,\n startDraft,\n cancelDraft,\n }\n}\n"],"mappings":";;;;;;;;;AAmCA,SAAgB,YAAY,QAA6D;CAEvF,MAAM,QAAQ,gCAAgC;EAC5C,MAAM,QAAQ,QAAQ,MAAM;EAC5B,OAAO,SAAS,MAAM,KAAK;CAC7B,CAAC;CACD,MAAM,WAAW,YAAY,MAAM,KAAK;CACxC,IAAI,gBAAgB,GAAG,eAAe,MAAM,OAAO;CACnD,YAAY,QAAQ,MAAM,SAAS,MAAM,QAAQ,GAAG,EAAE,WAAW,KAAK,CAAC;CAEvE,MAAM,EAAE,KAAK,OAAO,MAAM,aAAa,QAAQ,aAAa,UAAU,YAAY,gBAAgB;CAClG,OAAO;EACL,WAAW,eAAe,SAAS,MAAM,SAAS;EAClD,YAAY,eAAe,SAAS,MAAM,UAAU;EACpD,MAAM,eAAe,SAAS,MAAM,IAAI;EACxC,SAAS,eAAe,SAAS,MAAM,OAAO;EAC9C,QAAQ,eAAe,SAAS,MAAM,MAAM;EAC5C,QAAQ,eAAe,SAAS,MAAM,MAAM;EAC5C,OAAO,eAAe,SAAS,MAAM,KAAK;EAC1C,YAAY,eAAe,SAAS,MAAM,UAAU;EACpD,MAAM,eAAe,SAAS,MAAM,IAAI;EACxC,UAAU,eAAe,SAAS,MAAM,QAAQ;EAChD,WAAU,OAAM,CAAC,SAAS,MAAM,OAAO,IAAI,EAAE;EAC7C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { VueFeature } from "../../vue/index.js";
|
|
2
|
+
import { CommentsFeatureOptions } from "./feature.js";
|
|
3
|
+
import _default from "./components/CommentBubble.vue.js";
|
|
4
|
+
import _default$1 from "./components/CommentComposer.vue.js";
|
|
5
|
+
import _default$3 from "./components/CommentsListMenu.vue.js";
|
|
6
|
+
import _default$4 from "./components/CommentsMargin.vue.js";
|
|
7
|
+
import _default$5 from "./components/CommentsPopover.vue.js";
|
|
8
|
+
import { CommentsStore, useComments } from "./use-comments.js";
|
|
9
|
+
import _default$2 from "./components/CommentThreadView.vue.js";
|
|
10
|
+
import _default$6 from "./components/SettingsCommentsTab.vue.js";
|
|
11
|
+
//#region src/features/comments/vue.d.ts
|
|
12
|
+
/**
|
|
13
|
+
* The Vue comments feature (Nuxt UI): see `commentsFeatureCore`. The host places `CommentsMargin` beside the editor's
|
|
14
|
+
* scroll container and binds the surface's `commentsOpen` model to its `open` prop. `options.model` backs the comments
|
|
15
|
+
* with the host's own model instead of the Y.Doc (no `collab` feature needed).
|
|
16
|
+
*/
|
|
17
|
+
export declare function commentsFeature(options?: CommentsFeatureOptions): VueFeature;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { _default as CommentBubble, _default$1 as CommentComposer, _default$2 as CommentThreadView, _default$3 as CommentsListMenu, _default$4 as CommentsMargin, _default$5 as CommentsPopover, type CommentsStore, _default$6 as SettingsCommentsTab, useComments };
|
|
20
|
+
//# sourceMappingURL=vue.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { commentsFeatureCore } from "./feature.js";
|
|
2
|
+
import { useComments } from "./use-comments.js";
|
|
3
|
+
import _sfc_main from "./components/CommentBubble.js";
|
|
4
|
+
import _sfc_main$1 from "./components/CommentComposer.js";
|
|
5
|
+
import _sfc_main$2 from "./components/CommentThreadView.js";
|
|
6
|
+
import _sfc_main$5 from "./components/CommentsPopover.js";
|
|
7
|
+
import _sfc_main$7 from "./components/CommentsOverlay.js";
|
|
8
|
+
import _sfc_main$3 from "./components/CommentsListMenu.js";
|
|
9
|
+
import _sfc_main$8 from "./components/CommentsToolbarButton.js";
|
|
10
|
+
import _sfc_main$6 from "./components/SettingsCommentsTab.js";
|
|
11
|
+
import _sfc_main$4 from "./components/CommentsMargin.js";
|
|
12
|
+
//#region src/features/comments/vue.ts
|
|
13
|
+
/**
|
|
14
|
+
* The Vue comments feature (Nuxt UI): see `commentsFeatureCore`. The host places `CommentsMargin` beside the editor's
|
|
15
|
+
* scroll container and binds the surface's `commentsOpen` model to its `open` prop. `options.model` backs the comments
|
|
16
|
+
* with the host's own model instead of the Y.Doc (no `collab` feature needed).
|
|
17
|
+
*/
|
|
18
|
+
function commentsFeature(options) {
|
|
19
|
+
return commentsFeatureCore({
|
|
20
|
+
toolbarButton: _sfc_main$8,
|
|
21
|
+
overlay: _sfc_main$7,
|
|
22
|
+
settingsTab: _sfc_main$6
|
|
23
|
+
}, options);
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { _sfc_main as CommentBubble, _sfc_main$1 as CommentComposer, _sfc_main$2 as CommentThreadView, _sfc_main$3 as CommentsListMenu, _sfc_main$4 as CommentsMargin, _sfc_main$5 as CommentsPopover, _sfc_main$6 as SettingsCommentsTab, commentsFeature, useComments };
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue.js","names":["CommentsToolbarButton","CommentsOverlay","SettingsCommentsTab"],"sources":["../../../src/features/comments/vue.ts"],"sourcesContent":["import type { Component } from 'vue'\nimport type { VueFeature } from '../../vue'\nimport CommentsOverlay from './components/CommentsOverlay.vue'\nimport CommentsToolbarButton from './components/CommentsToolbarButton.vue'\nimport SettingsCommentsTab from './components/SettingsCommentsTab.vue'\nimport { type CommentsFeatureOptions, commentsFeatureCore } from './feature'\n\nexport { default as CommentBubble } from './components/CommentBubble.vue'\nexport { default as CommentComposer } from './components/CommentComposer.vue'\nexport { default as CommentsListMenu } from './components/CommentsListMenu.vue'\nexport { default as CommentsMargin } from './components/CommentsMargin.vue'\nexport { default as CommentsPopover } from './components/CommentsPopover.vue'\nexport { default as CommentThreadView } from './components/CommentThreadView.vue'\nexport { default as SettingsCommentsTab } from './components/SettingsCommentsTab.vue'\nexport { type CommentsStore, useComments } from './use-comments'\n\n/**\n * The Vue comments feature (Nuxt UI): see `commentsFeatureCore`. The host places `CommentsMargin` beside the editor's\n * scroll container and binds the surface's `commentsOpen` model to its `open` prop. `options.model` backs the comments\n * with the host's own model instead of the Y.Doc (no `collab` feature needed).\n */\nexport function commentsFeature(options?: CommentsFeatureOptions): VueFeature {\n return commentsFeatureCore<Component>({\n toolbarButton: CommentsToolbarButton,\n overlay: CommentsOverlay,\n settingsTab: SettingsCommentsTab,\n }, options)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAqBA,SAAgB,gBAAgB,SAA8C;CAC5E,OAAO,oBAA+B;EACpC,eAAeA;EACf,SAASC;EACT,aAAaC;CACf,GAAG,OAAO;AACZ"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Editor } from "@tiptap/core";
|
|
2
|
+
//#region src/features/composites/ai-brief.d.ts
|
|
3
|
+
/** What one Baustein tells the model: kind brief, place in the hierarchy, chrome, field values, resolved instruction and skeleton, body. */
|
|
4
|
+
export interface CompositeAiBrief {
|
|
5
|
+
kind: {
|
|
6
|
+
id: string;
|
|
7
|
+
label: string;
|
|
8
|
+
purpose?: string;
|
|
9
|
+
};
|
|
10
|
+
/** Titles of the enclosing composites, outermost first (empty at document level). */
|
|
11
|
+
path: string[];
|
|
12
|
+
title: string;
|
|
13
|
+
description: string;
|
|
14
|
+
tags: string[];
|
|
15
|
+
/** Declared fields with a non-empty value, `select` values as their option label. */
|
|
16
|
+
fields: {
|
|
17
|
+
key: string;
|
|
18
|
+
label: string;
|
|
19
|
+
value: string;
|
|
20
|
+
}[];
|
|
21
|
+
/** `meta[ai.instructionsField]` when non-empty, else `ai.instructions`, else ''. */
|
|
22
|
+
instructions: string;
|
|
23
|
+
/** `ai.skeleton` with `{key}` replaced by the string value of `meta[key]` (declared fields only); '' without a skeleton. */
|
|
24
|
+
skeleton: string;
|
|
25
|
+
/** Body blocks as Markdown ('' for a body without text). */
|
|
26
|
+
body: string;
|
|
27
|
+
}
|
|
28
|
+
/** The brief of the composite at `pos`; null unless the node there is a composite whose kind has `ai`. */
|
|
29
|
+
export declare function compositeAiBrief(editor: Editor, pos: number): CompositeAiBrief | null;
|
|
30
|
+
//#endregion
|
|
31
|
+
//# sourceMappingURL=ai-brief.d.ts.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { compositeKind } from "./kinds.js";
|
|
2
|
+
import { compositeKindsOf } from "./nodes.js";
|
|
3
|
+
//#region src/features/composites/ai-brief.ts
|
|
4
|
+
const PLACEHOLDER = /\{([\p{L}\p{N}_-]+)\}/gu;
|
|
5
|
+
const isFilled = (value) => typeof value === "string" && value !== "" || typeof value === "number";
|
|
6
|
+
/** The brief of the composite at `pos`; null unless the node there is a composite whose kind has `ai`. */
|
|
7
|
+
function compositeAiBrief(editor, pos) {
|
|
8
|
+
const node = editor.state.doc.nodeAt(pos);
|
|
9
|
+
if (node?.type.name !== "composite" || node.childCount < 3) return null;
|
|
10
|
+
const kind = compositeKind(compositeKindsOf(editor), String(node.attrs.kind));
|
|
11
|
+
const ai = kind.ai;
|
|
12
|
+
if (!ai) return null;
|
|
13
|
+
const $pos = editor.state.doc.resolve(pos);
|
|
14
|
+
const path = [];
|
|
15
|
+
for (let depth = 1; depth <= $pos.depth; depth++) {
|
|
16
|
+
const ancestor = $pos.node(depth);
|
|
17
|
+
if (ancestor.type.name === "composite") path.push(ancestor.child(0).textContent.trim());
|
|
18
|
+
}
|
|
19
|
+
const tags = node.child(2).attrs.tags;
|
|
20
|
+
const body = Array.from({ length: node.childCount - 3 }, (_, i) => node.child(3 + i));
|
|
21
|
+
const meta = node.attrs.meta ?? {};
|
|
22
|
+
const fields = kind.fields.flatMap((field) => {
|
|
23
|
+
const raw = meta[field.key];
|
|
24
|
+
if (!isFilled(raw)) return [];
|
|
25
|
+
const value = String(raw);
|
|
26
|
+
return [{
|
|
27
|
+
key: field.key,
|
|
28
|
+
label: field.label,
|
|
29
|
+
value: field.type === "select" ? field.options?.find((option) => option.value === value)?.label ?? value : value
|
|
30
|
+
}];
|
|
31
|
+
});
|
|
32
|
+
const keys = new Set(kind.fields.map((field) => field.key));
|
|
33
|
+
const own = ai.instructionsField ? String(meta[ai.instructionsField] ?? "").trim() : "";
|
|
34
|
+
return {
|
|
35
|
+
kind: {
|
|
36
|
+
id: kind.id,
|
|
37
|
+
label: kind.label,
|
|
38
|
+
...ai.purpose && { purpose: ai.purpose }
|
|
39
|
+
},
|
|
40
|
+
path,
|
|
41
|
+
title: node.child(0).textContent,
|
|
42
|
+
description: node.child(1).textContent,
|
|
43
|
+
tags: Array.isArray(tags) ? tags.filter((tag) => typeof tag === "string") : [],
|
|
44
|
+
fields,
|
|
45
|
+
instructions: own || ai.instructions?.trim() || "",
|
|
46
|
+
skeleton: ai.skeleton?.replace(PLACEHOLDER, (match, key) => keys.has(key) && isFilled(meta[key]) ? String(meta[key]) : match) ?? "",
|
|
47
|
+
body: body.some((child) => child.textContent.trim()) ? editor.markdown.serialize({
|
|
48
|
+
type: "doc",
|
|
49
|
+
content: body.map((child) => child.toJSON())
|
|
50
|
+
}).trim() : ""
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
export { compositeAiBrief };
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=ai-brief.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-brief.js","names":[],"sources":["../../../src/features/composites/ai-brief.ts"],"sourcesContent":["// Vue-free: what one Baustein tells the model (read by „Baustein füllen (KI)“, see `integrations/composite-ai`).\nimport type { Editor, JSONContent } from '@tiptap/core'\n// Types only: brings in the `editor.markdown` augmentation of `@tiptap/markdown` for contexts that do not otherwise load it.\nimport type {} from '@tiptap/markdown'\nimport { compositeKind } from './kinds'\nimport { COMPOSITE_CHROME_COUNT, compositeKindsOf } from './nodes'\n\n/** What one Baustein tells the model: kind brief, place in the hierarchy, chrome, field values, resolved instruction and skeleton, body. */\nexport interface CompositeAiBrief {\n kind: { id: string, label: string, purpose?: string }\n /** Titles of the enclosing composites, outermost first (empty at document level). */\n path: string[]\n title: string\n description: string\n tags: string[]\n /** Declared fields with a non-empty value, `select` values as their option label. */\n fields: { key: string, label: string, value: string }[]\n /** `meta[ai.instructionsField]` when non-empty, else `ai.instructions`, else ''. */\n instructions: string\n /** `ai.skeleton` with `{key}` replaced by the string value of `meta[key]` (declared fields only); '' without a skeleton. */\n skeleton: string\n /** Body blocks as Markdown ('' for a body without text). */\n body: string\n}\n\nconst PLACEHOLDER = /\\{([\\p{L}\\p{N}_-]+)\\}/gu\n\nconst isFilled = (value: unknown): value is string | number => (typeof value === 'string' && value !== '') || typeof value === 'number'\n\n/** The brief of the composite at `pos`; null unless the node there is a composite whose kind has `ai`. */\nexport function compositeAiBrief(editor: Editor, pos: number): CompositeAiBrief | null {\n const node = editor.state.doc.nodeAt(pos)\n if (node?.type.name !== 'composite' || node.childCount < COMPOSITE_CHROME_COUNT) return null\n const kind = compositeKind(compositeKindsOf(editor), String(node.attrs.kind))\n const ai = kind.ai\n if (!ai) return null\n\n const $pos = editor.state.doc.resolve(pos)\n const path: string[] = []\n for (let depth = 1; depth <= $pos.depth; depth++) {\n const ancestor = $pos.node(depth)\n if (ancestor.type.name === 'composite') path.push(ancestor.child(0).textContent.trim())\n }\n\n const tags: unknown = node.child(2).attrs.tags\n const body = Array.from({ length: node.childCount - COMPOSITE_CHROME_COUNT }, (_, i) => node.child(COMPOSITE_CHROME_COUNT + i))\n const meta: Record<string, unknown> = node.attrs.meta ?? {}\n\n const fields = kind.fields.flatMap((field) => {\n const raw = meta[field.key]\n if (!isFilled(raw)) return []\n const value = String(raw)\n return [{ key: field.key, label: field.label, value: field.type === 'select' ? (field.options?.find(option => option.value === value)?.label ?? value) : value }]\n })\n const keys = new Set(kind.fields.map(field => field.key))\n const own = ai.instructionsField ? String(meta[ai.instructionsField] ?? '').trim() : ''\n\n return {\n kind: { id: kind.id, label: kind.label, ...(ai.purpose && { purpose: ai.purpose }) },\n path,\n title: node.child(0).textContent,\n description: node.child(1).textContent,\n tags: Array.isArray(tags) ? tags.filter((tag): tag is string => typeof tag === 'string') : [],\n fields,\n instructions: own || ai.instructions?.trim() || '',\n skeleton: ai.skeleton?.replace(PLACEHOLDER, (match, key: string) => keys.has(key) && isFilled(meta[key]) ? String(meta[key]) : match) ?? '',\n body: body.some(child => child.textContent.trim())\n ? editor.markdown!.serialize({ type: 'doc', content: body.map(child => child.toJSON() as JSONContent) }).trim()\n : '',\n }\n}\n"],"mappings":";;;AAyBA,MAAM,cAAc;AAEpB,MAAM,YAAY,UAA8C,OAAO,UAAU,YAAY,UAAU,MAAO,OAAO,UAAU;;AAG/H,SAAgB,iBAAiB,QAAgB,KAAsC;CACrF,MAAM,OAAO,OAAO,MAAM,IAAI,OAAO,GAAG;CACxC,IAAI,MAAM,KAAK,SAAS,eAAe,KAAK,aAAA,GAAqC,OAAO;CACxF,MAAM,OAAO,cAAc,iBAAiB,MAAM,GAAG,OAAO,KAAK,MAAM,IAAI,CAAC;CAC5E,MAAM,KAAK,KAAK;CAChB,IAAI,CAAC,IAAI,OAAO;CAEhB,MAAM,OAAO,OAAO,MAAM,IAAI,QAAQ,GAAG;CACzC,MAAM,OAAiB,CAAC;CACxB,KAAK,IAAI,QAAQ,GAAG,SAAS,KAAK,OAAO,SAAS;EAChD,MAAM,WAAW,KAAK,KAAK,KAAK;EAChC,IAAI,SAAS,KAAK,SAAS,aAAa,KAAK,KAAK,SAAS,MAAM,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;CACxF;CAEA,MAAM,OAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM;CAC1C,MAAM,OAAO,MAAM,KAAK,EAAE,QAAQ,KAAK,aAAA,EAAoC,IAAI,GAAG,MAAM,KAAK,MAAA,IAA+B,CAAC,CAAC;CAC9H,MAAM,OAAgC,KAAK,MAAM,QAAQ,CAAC;CAE1D,MAAM,SAAS,KAAK,OAAO,SAAS,UAAU;EAC5C,MAAM,MAAM,KAAK,MAAM;EACvB,IAAI,CAAC,SAAS,GAAG,GAAG,OAAO,CAAC;EAC5B,MAAM,QAAQ,OAAO,GAAG;EACxB,OAAO,CAAC;GAAE,KAAK,MAAM;GAAK,OAAO,MAAM;GAAO,OAAO,MAAM,SAAS,WAAY,MAAM,SAAS,MAAK,WAAU,OAAO,UAAU,KAAK,CAAC,EAAE,SAAS,QAAS;EAAM,CAAC;CAClK,CAAC;CACD,MAAM,OAAO,IAAI,IAAI,KAAK,OAAO,KAAI,UAAS,MAAM,GAAG,CAAC;CACxD,MAAM,MAAM,GAAG,oBAAoB,OAAO,KAAK,GAAG,sBAAsB,EAAE,CAAC,CAAC,KAAK,IAAI;CAErF,OAAO;EACL,MAAM;GAAE,IAAI,KAAK;GAAI,OAAO,KAAK;GAAO,GAAI,GAAG,WAAW,EAAE,SAAS,GAAG,QAAQ;EAAG;EACnF;EACA,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC;EACrB,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC;EAC3B,MAAM,MAAM,QAAQ,IAAI,IAAI,KAAK,QAAQ,QAAuB,OAAO,QAAQ,QAAQ,IAAI,CAAC;EAC5F;EACA,cAAc,OAAO,GAAG,cAAc,KAAK,KAAK;EAChD,UAAU,GAAG,UAAU,QAAQ,cAAc,OAAO,QAAgB,KAAK,IAAI,GAAG,KAAK,SAAS,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,KAAK;EACzI,MAAM,KAAK,MAAK,UAAS,MAAM,YAAY,KAAK,CAAC,IAC7C,OAAO,SAAU,UAAU;GAAE,MAAM;GAAO,SAAS,KAAK,KAAI,UAAS,MAAM,OAAO,CAAgB;EAAE,CAAC,CAAC,CAAC,KAAK,IAC5G;CACN;AACF"}
|