gitextract_m6860ykr/ ├── .changeset/ │ ├── README.md │ └── config.json ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .github/ │ ├── CODEOWNERS │ ├── DISCUSSION_TEMPLATE/ │ │ ├── community-extensions.yml │ │ ├── feature-requests.yml │ │ └── showcase.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── bug_report_pro.yml │ │ ├── config.yml │ │ └── documentation.yml │ ├── dependabot.yml │ ├── instructions/ │ │ ├── PR.instructions.md │ │ ├── changeset.instructions.md │ │ └── tiptap.instructions.md │ ├── pull_request_template.md │ └── workflows/ │ ├── build.yml │ ├── notify-discord.yml │ └── publish.yml ├── .gitignore ├── .husky/ │ └── pre-commit ├── .npmrc ├── .prettierignore ├── .prettierrc ├── .vscode/ │ ├── launch.json │ └── settings.json ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── SECURITY.md ├── babel.config.js ├── commitlint.config.mjs ├── demos/ │ ├── CHANGELOG.md │ ├── dedupeDeps.txt │ ├── index.html │ ├── package.json │ ├── postcss.config.cjs │ ├── preview/ │ │ ├── Demo.vue │ │ ├── DemoFrame.vue │ │ ├── Shiki.vue │ │ ├── index.html │ │ ├── index.js │ │ ├── index.vue │ │ ├── shiki.worker.js │ │ └── style.css │ ├── public/ │ │ └── _redirects │ ├── setup/ │ │ ├── helper.ts │ │ ├── js.ts │ │ ├── react.ts │ │ ├── style.scss │ │ ├── svelte.ts │ │ └── vue.ts │ ├── src/ │ │ ├── Commands/ │ │ │ ├── Cut/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.jsx │ │ │ │ ├── index.spec.js │ │ │ │ └── styles.scss │ │ │ ├── InsertContent/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.jsx │ │ │ │ ├── index.spec.js │ │ │ │ └── styles.scss │ │ │ ├── InsertContentApplyingRules/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.jsx │ │ │ │ ├── index.spec.js │ │ │ │ └── styles.scss │ │ │ └── SetContent/ │ │ │ └── React/ │ │ │ ├── index.html │ │ │ ├── index.jsx │ │ │ ├── index.spec.js │ │ │ └── styles.scss │ │ ├── Demos/ │ │ │ ├── CollaborationSplitPane/ │ │ │ │ └── React/ │ │ │ │ ├── Editor.jsx │ │ │ │ ├── index.html │ │ │ │ ├── index.jsx │ │ │ │ ├── index.spec.js │ │ │ │ └── styles.scss │ │ │ └── SingleRoomCollab/ │ │ │ └── React/ │ │ │ ├── index.html │ │ │ ├── index.jsx │ │ │ ├── index.spec.js │ │ │ └── styles.scss │ │ ├── Dev/ │ │ │ └── .gitkeep │ │ ├── Examples/ │ │ │ ├── Accessibility/ │ │ │ │ └── React/ │ │ │ │ ├── InsertMenu.tsx │ │ │ │ ├── MenuBar.tsx │ │ │ │ ├── TextMenu.tsx │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ ├── index.tsx │ │ │ │ ├── styles.scss │ │ │ │ └── useMenubarNav.ts │ │ │ ├── AutolinkValidation/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Book/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ ├── Vue/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── index.vue │ │ │ │ └── content.js │ │ │ ├── CSSModules/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.module.css │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.module.css │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── CodeBlockLanguage/ │ │ │ │ ├── React/ │ │ │ │ │ ├── CodeBlockComponent.jsx │ │ │ │ │ ├── CodeBlockComponent.scss │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── CodeBlockComponent.vue │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── CollaborativeEditing/ │ │ │ │ ├── React/ │ │ │ │ │ ├── MenuBar.jsx │ │ │ │ │ ├── MenuBar.scss │ │ │ │ │ ├── MenuItem.jsx │ │ │ │ │ ├── MenuItem.scss │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── MenuBar.vue │ │ │ │ ├── MenuItem.vue │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Community/ │ │ │ │ ├── React/ │ │ │ │ │ ├── MentionList.jsx │ │ │ │ │ ├── MentionList.scss │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── styles.scss │ │ │ │ │ └── suggestion.js │ │ │ │ └── Vue/ │ │ │ │ ├── MentionList.vue │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ ├── index.vue │ │ │ │ └── suggestion.js │ │ │ ├── CustomDocument/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── CustomParagraph/ │ │ │ │ ├── React/ │ │ │ │ │ ├── Paragraph.jsx │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── Component.vue │ │ │ │ ├── Extension.js │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Default/ │ │ │ │ ├── React/ │ │ │ │ │ ├── MenuBar.tsx │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── menuBarState.ts │ │ │ │ │ └── styles.scss │ │ │ │ ├── Svelte/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── index.svelte │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Drawing/ │ │ │ │ └── Vue/ │ │ │ │ ├── Component.vue │ │ │ │ ├── Paper.js │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── EnterShortcuts/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Formatting/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Images/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── InteractivityComponent/ │ │ │ │ ├── React/ │ │ │ │ │ ├── Component.jsx │ │ │ │ │ ├── Extension.js │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── Component.vue │ │ │ │ ├── Extension.js │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── InteractivityComponentContent/ │ │ │ │ ├── React/ │ │ │ │ │ ├── Component.jsx │ │ │ │ │ ├── Extension.js │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── Component.vue │ │ │ │ ├── Extension.js │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── InteractivityComponentProvideInject/ │ │ │ │ └── Vue/ │ │ │ │ ├── Component.vue │ │ │ │ ├── Editor.vue │ │ │ │ ├── Extension.js │ │ │ │ ├── ValidateInject.vue │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── JSX/ │ │ │ │ ├── React/ │ │ │ │ │ ├── Paragraph.tsx │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── Paragraph.tsx │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── MarkdownShortcuts/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Menus/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Minimal/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── MultiMention/ │ │ │ │ ├── React/ │ │ │ │ │ ├── MentionList.jsx │ │ │ │ │ ├── MentionList.scss │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── styles.scss │ │ │ │ │ └── suggestions.js │ │ │ │ └── Vue/ │ │ │ │ ├── MentionList.vue │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ ├── index.vue │ │ │ │ └── suggestions.js │ │ │ ├── NodePos/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.jsx │ │ │ │ ├── index.spec.js │ │ │ │ └── styles.scss │ │ │ ├── Performance/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.jsx │ │ │ │ ├── index.spec.js │ │ │ │ └── styles.scss │ │ │ ├── ResizableImages/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── ResizableNodes/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── Savvy/ │ │ │ │ ├── React/ │ │ │ │ │ ├── ColorHighlighter.ts │ │ │ │ │ ├── SmilieReplacer.ts │ │ │ │ │ ├── findColors.ts │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── ColorHighlighter.ts │ │ │ │ ├── SmilieReplacer.ts │ │ │ │ ├── findColors.ts │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── StaticRendering/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ ├── index.tsx │ │ │ │ └── styles.scss │ │ │ ├── StaticRenderingAdvanced/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.tsx │ │ │ ├── Tables/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Tasks/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── TextDirection/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ ├── index.tsx │ │ │ │ └── styles.scss │ │ │ ├── TransformPastedHTML/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ └── Transition/ │ │ │ └── Vue/ │ │ │ ├── Extension.js │ │ │ ├── ParentComponent.vue │ │ │ ├── VueComponent.vue │ │ │ ├── index.html │ │ │ ├── index.spec.js │ │ │ └── index.vue │ │ ├── Experiments/ │ │ │ ├── All/ │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── CollaborationAnnotation/ │ │ │ │ └── Vue/ │ │ │ │ ├── extension/ │ │ │ │ │ ├── AnnotationItem.ts │ │ │ │ │ ├── AnnotationPlugin.ts │ │ │ │ │ ├── AnnotationState.ts │ │ │ │ │ ├── collaboration-annotation.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── CollaborationMappingPerformance/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.tsx │ │ │ │ └── styles.scss │ │ │ ├── Commands/ │ │ │ │ └── Vue/ │ │ │ │ ├── CommandsList.vue │ │ │ │ ├── commands.js │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ ├── index.vue │ │ │ │ └── suggestion.js │ │ │ ├── DestroyingEditor/ │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── Embeds/ │ │ │ │ └── Vue/ │ │ │ │ ├── iframe.ts │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── ExtensionStorage/ │ │ │ │ ├── React/ │ │ │ │ │ ├── CustomExtension.ts │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── CustomExtension.ts │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── Figure/ │ │ │ │ └── Vue/ │ │ │ │ ├── figure.ts │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── GenericFigure/ │ │ │ │ └── Vue/ │ │ │ │ ├── figcaption.ts │ │ │ │ ├── figure.ts │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── GlobalDragHandle/ │ │ │ │ └── Vue/ │ │ │ │ ├── DragHandle.js │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── IsolatingClear/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── content.ts │ │ │ ├── Linter/ │ │ │ │ └── Vue/ │ │ │ │ ├── extension/ │ │ │ │ │ ├── Linter.ts │ │ │ │ │ ├── LinterPlugin.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── plugins/ │ │ │ │ │ ├── BadWords.ts │ │ │ │ │ ├── HeadingLevel.ts │ │ │ │ │ └── Punctuation.ts │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── MultipleEditorStyles/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ └── index.tsx │ │ │ ├── MultipleEditors/ │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── OnDelete/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.tsx │ │ │ │ └── styles.scss │ │ │ ├── OnUpdateRerender/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── TiptapComponent.vue │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ └── Tailwind/ │ │ │ └── JS/ │ │ │ └── index.html │ │ ├── Extensions/ │ │ │ ├── BackgroundColor/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── BubbleMenu/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── CharacterCount/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── Collaboration/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── CollaborationCaret/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── CollaborationMapPositions/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.tsx │ │ │ │ └── styles.scss │ │ │ ├── CollaborationWithMenus/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Color/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── DragHandle/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.vue │ │ │ │ └── style.css │ │ │ ├── DragHandleWithNodeViews/ │ │ │ │ └── React/ │ │ │ │ ├── extensions/ │ │ │ │ │ └── recommendation/ │ │ │ │ │ ├── Recommendation.jsx │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── views/ │ │ │ │ │ ├── RecommendationView.jsx │ │ │ │ │ └── index.jsx │ │ │ │ ├── index.html │ │ │ │ ├── index.jsx │ │ │ │ └── styles.scss │ │ │ ├── Dropcursor/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── FileHandler/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── FloatingMenu/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── Focus/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── FontFamily/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── FontSize/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.spec.js │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Gapcursor/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── InvisibleCharacters/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── LineHeight/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ ├── index.vue │ │ │ │ └── styles.scss │ │ │ ├── ListKeymap/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.jsx │ │ │ │ └── styles.scss │ │ │ ├── Mathematics/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Placeholder/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── Selection/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── TableOfContents/ │ │ │ │ ├── React/ │ │ │ │ │ ├── ToC.jsx │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ ├── Vue/ │ │ │ │ │ ├── ToC.vue │ │ │ │ │ ├── ToCEmptyState.vue │ │ │ │ │ ├── ToCItem.vue │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── index.vue │ │ │ │ └── content.js │ │ │ ├── TextAlign/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── TrailingNode/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── Typography/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── TypographyWithOverrides/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.spec.js │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── UndoRedo/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── UniqueID/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ └── UniqueIDWithYdoc/ │ │ │ └── React/ │ │ │ ├── index.html │ │ │ ├── index.jsx │ │ │ ├── index.spec.js │ │ │ └── styles.scss │ │ ├── GuideContent/ │ │ │ ├── ExportHTML/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── ExportJSON/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── GenerateHTML/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── index.tsx │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── GenerateJSON/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.spec.js │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── GenerateText/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── index.spec.js │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── ReadOnly/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── StaticRenderHTML/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── index.tsx │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ └── StaticRenderReact/ │ │ │ └── React/ │ │ │ ├── index.html │ │ │ ├── index.spec.js │ │ │ └── index.tsx │ │ ├── GuideGettingStarted/ │ │ │ └── VModel/ │ │ │ └── Vue/ │ │ │ ├── Editor.vue │ │ │ ├── index.html │ │ │ ├── index.spec.js │ │ │ └── index.vue │ │ ├── GuideMarkViews/ │ │ │ ├── ReactComponent/ │ │ │ │ └── React/ │ │ │ │ ├── Component.tsx │ │ │ │ ├── Extension.ts │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ ├── index.tsx │ │ │ │ └── styles.scss │ │ │ └── VueComponent/ │ │ │ └── Vue/ │ │ │ ├── Component.vue │ │ │ ├── Extension.ts │ │ │ ├── index.html │ │ │ ├── index.spec.js │ │ │ └── index.vue │ │ ├── GuideNodeViews/ │ │ │ ├── DragHandle/ │ │ │ │ ├── React/ │ │ │ │ │ ├── Component.jsx │ │ │ │ │ ├── DraggableItem.js │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── Component.vue │ │ │ │ ├── DraggableItem.js │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── JavaScript/ │ │ │ │ └── Vue/ │ │ │ │ ├── Extension.js │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── JavaScriptContent/ │ │ │ │ └── Vue/ │ │ │ │ ├── Extension.js │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── ReactComponent/ │ │ │ │ └── React/ │ │ │ │ ├── Component.tsx │ │ │ │ ├── Extension.ts │ │ │ │ ├── index.html │ │ │ │ ├── index.tsx │ │ │ │ └── styles.scss │ │ │ ├── ReactComponentContent/ │ │ │ │ └── React/ │ │ │ │ ├── Component.jsx │ │ │ │ ├── Extension.js │ │ │ │ ├── index.html │ │ │ │ ├── index.jsx │ │ │ │ └── styles.scss │ │ │ ├── ReactComponentContext/ │ │ │ │ └── React/ │ │ │ │ ├── Component.tsx │ │ │ │ ├── Context.ts │ │ │ │ ├── Extension.ts │ │ │ │ ├── index.html │ │ │ │ ├── index.tsx │ │ │ │ └── styles.scss │ │ │ ├── VueComponent/ │ │ │ │ └── Vue/ │ │ │ │ ├── Component.vue │ │ │ │ ├── Extension.js │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ └── VueComponentContent/ │ │ │ └── Vue/ │ │ │ ├── Component.vue │ │ │ ├── Extension.js │ │ │ ├── index.html │ │ │ └── index.vue │ │ ├── Markdown/ │ │ │ ├── CustomSyntax/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.jsx │ │ │ │ └── styles.scss │ │ │ ├── Full/ │ │ │ │ └── React/ │ │ │ │ ├── content.ts │ │ │ │ ├── index.html │ │ │ │ ├── index.tsx │ │ │ │ └── styles.scss │ │ │ ├── Parse/ │ │ │ │ └── React/ │ │ │ │ ├── index.html │ │ │ │ └── index.jsx │ │ │ └── Serialize/ │ │ │ └── React/ │ │ │ ├── index.html │ │ │ ├── index.jsx │ │ │ └── styles.scss │ │ ├── Marks/ │ │ │ ├── Bold/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Code/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Highlight/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Italic/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Link/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Strike/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Subscript/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Superscript/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── TextStyle/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ └── Underline/ │ │ │ ├── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.jsx │ │ │ │ ├── index.spec.js │ │ │ │ └── styles.scss │ │ │ └── Vue/ │ │ │ ├── index.html │ │ │ ├── index.spec.js │ │ │ └── index.vue │ │ ├── Nodes/ │ │ │ ├── Audio/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── Blockquote/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── BulletList/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── CodeBlock/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── CodeBlockLowlight/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ ├── Details/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Document/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Emoji/ │ │ │ │ ├── React/ │ │ │ │ │ ├── EmojiList.jsx │ │ │ │ │ ├── EmojiList.scss │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── styles.scss │ │ │ │ │ └── suggestion.js │ │ │ │ └── Vue/ │ │ │ │ ├── EmojiList.vue │ │ │ │ ├── index.html │ │ │ │ ├── index.vue │ │ │ │ └── suggestion.js │ │ │ ├── HardBreak/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Heading/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── HorizontalRule/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Image/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── ListItem/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Mention/ │ │ │ │ ├── React/ │ │ │ │ │ ├── MentionList.jsx │ │ │ │ │ ├── MentionList.scss │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ ├── styles.scss │ │ │ │ │ └── suggestion.js │ │ │ │ └── Vue/ │ │ │ │ ├── MentionList.vue │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ ├── index.vue │ │ │ │ └── suggestion.js │ │ │ ├── OrderedList/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Paragraph/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Table/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── TaskItem/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── TaskList/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Text/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ ├── index.spec.js │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ ├── index.spec.js │ │ │ │ └── index.vue │ │ │ ├── Twitch/ │ │ │ │ ├── React/ │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.jsx │ │ │ │ │ └── styles.scss │ │ │ │ └── Vue/ │ │ │ │ ├── index.html │ │ │ │ └── index.vue │ │ │ └── Youtube/ │ │ │ ├── React/ │ │ │ │ ├── index.html │ │ │ │ ├── index.jsx │ │ │ │ ├── index.spec.js │ │ │ │ └── styles.scss │ │ │ └── Vue/ │ │ │ ├── index.html │ │ │ ├── index.spec.js │ │ │ └── index.vue │ │ ├── Overview/ │ │ │ └── Installation/ │ │ │ └── Vue/ │ │ │ ├── index.html │ │ │ └── index.vue │ │ ├── Tutorials/ │ │ │ ├── 1-1-textarea/ │ │ │ │ ├── React/ │ │ │ │ │ ├── Note.tsx │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── styles.scss │ │ │ │ │ └── types.ts │ │ │ │ └── Vue/ │ │ │ │ ├── Note.vue │ │ │ │ ├── index.html │ │ │ │ ├── index.vue │ │ │ │ ├── styles.scss │ │ │ │ └── types.ts │ │ │ ├── 1-2-tiptap/ │ │ │ │ ├── React/ │ │ │ │ │ ├── Note.tsx │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── styles.scss │ │ │ │ │ └── types.ts │ │ │ │ └── Vue/ │ │ │ │ ├── Note.vue │ │ │ │ ├── index.html │ │ │ │ ├── index.vue │ │ │ │ ├── styles.scss │ │ │ │ └── types.ts │ │ │ ├── 1-2-tiptap_lexical/ │ │ │ │ └── Lexical-React/ │ │ │ │ ├── Note.tsx │ │ │ │ ├── index.html │ │ │ │ ├── index.tsx │ │ │ │ ├── styles.css │ │ │ │ └── types.ts │ │ │ ├── 1-3-yjs/ │ │ │ │ ├── React/ │ │ │ │ │ ├── Note.tsx │ │ │ │ │ ├── index.html │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── styles.scss │ │ │ │ │ └── types.ts │ │ │ │ └── Vue/ │ │ │ │ ├── Note.vue │ │ │ │ ├── index.html │ │ │ │ ├── index.vue │ │ │ │ ├── styles.scss │ │ │ │ └── types.ts │ │ │ ├── 1-3-yjs_lexical/ │ │ │ │ └── Lexical-React/ │ │ │ │ ├── Note.tsx │ │ │ │ ├── index.html │ │ │ │ ├── index.tsx │ │ │ │ ├── styles.css │ │ │ │ └── types.ts │ │ │ └── 1-4-collab/ │ │ │ ├── React/ │ │ │ │ ├── Note.tsx │ │ │ │ ├── index.html │ │ │ │ ├── index.tsx │ │ │ │ ├── styles.scss │ │ │ │ └── types.ts │ │ │ └── Vue/ │ │ │ ├── Note.vue │ │ │ ├── index.html │ │ │ ├── index.vue │ │ │ ├── styles.scss │ │ │ └── types.ts │ │ └── variables.js │ ├── tailwind.config.js │ ├── tsconfig.json │ └── vite.config.ts ├── env.d.ts ├── package.json ├── packages/ │ ├── core/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ ├── can.spec.ts │ │ │ ├── createNodeFromContent.spec.ts │ │ │ ├── dispatchTransaction.spec.ts │ │ │ ├── editorProps.spec.ts │ │ │ ├── extendExtensions.spec.ts │ │ │ ├── extendMarkRange.spec.ts │ │ │ ├── extensionOptions.spec.ts │ │ │ ├── extensionStorage.spec.ts │ │ │ ├── fromString.spec.ts │ │ │ ├── generateHTML.spec.ts │ │ │ ├── generateJSON.spec.ts │ │ │ ├── generateText.spec.ts │ │ │ ├── getAttributesFromExtensions.spec.ts │ │ │ ├── getMarkRange.spec.ts │ │ │ ├── getTextContentFromNodes.spec.ts │ │ │ ├── isActive.spec.ts │ │ │ ├── isNodeEmpty.spec.ts │ │ │ ├── mergeAttributes.spec.ts │ │ │ ├── mergeDeep.spec.ts │ │ │ ├── nodePos.spec.ts │ │ │ ├── onContentError.spec.ts │ │ │ ├── requiredAttributes.spec.ts │ │ │ └── unmounted.spec.ts │ │ ├── jsx-dev-runtime/ │ │ │ ├── index.cjs │ │ │ ├── index.d.cts │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ ├── jsx-runtime/ │ │ │ ├── index.cjs │ │ │ ├── index.d.cts │ │ │ ├── index.d.ts │ │ │ └── index.js │ │ ├── package.json │ │ ├── src/ │ │ │ ├── CommandManager.ts │ │ │ ├── Editor.ts │ │ │ ├── EventEmitter.ts │ │ │ ├── Extendable.ts │ │ │ ├── Extension.ts │ │ │ ├── ExtensionManager.ts │ │ │ ├── InputRule.ts │ │ │ ├── Mark.ts │ │ │ ├── MarkView.ts │ │ │ ├── Node.ts │ │ │ ├── NodePos.ts │ │ │ ├── NodeView.ts │ │ │ ├── PasteRule.ts │ │ │ ├── Tracker.ts │ │ │ ├── __tests__/ │ │ │ │ └── transformPastedHTML.test.ts │ │ │ ├── commands/ │ │ │ │ ├── blur.ts │ │ │ │ ├── clearContent.ts │ │ │ │ ├── clearNodes.ts │ │ │ │ ├── command.ts │ │ │ │ ├── createParagraphNear.ts │ │ │ │ ├── cut.ts │ │ │ │ ├── deleteCurrentNode.ts │ │ │ │ ├── deleteNode.ts │ │ │ │ ├── deleteRange.ts │ │ │ │ ├── deleteSelection.ts │ │ │ │ ├── enter.ts │ │ │ │ ├── exitCode.ts │ │ │ │ ├── extendMarkRange.ts │ │ │ │ ├── first.ts │ │ │ │ ├── focus.ts │ │ │ │ ├── forEach.ts │ │ │ │ ├── index.ts │ │ │ │ ├── insertContent.ts │ │ │ │ ├── insertContentAt.ts │ │ │ │ ├── join.ts │ │ │ │ ├── joinItemBackward.ts │ │ │ │ ├── joinItemForward.ts │ │ │ │ ├── joinTextblockBackward.ts │ │ │ │ ├── joinTextblockForward.ts │ │ │ │ ├── keyboardShortcut.ts │ │ │ │ ├── lift.ts │ │ │ │ ├── liftEmptyBlock.ts │ │ │ │ ├── liftListItem.ts │ │ │ │ ├── newlineInCode.ts │ │ │ │ ├── resetAttributes.ts │ │ │ │ ├── scrollIntoView.ts │ │ │ │ ├── selectAll.ts │ │ │ │ ├── selectNodeBackward.ts │ │ │ │ ├── selectNodeForward.ts │ │ │ │ ├── selectParentNode.ts │ │ │ │ ├── selectTextblockEnd.ts │ │ │ │ ├── selectTextblockStart.ts │ │ │ │ ├── setContent.ts │ │ │ │ ├── setMark.ts │ │ │ │ ├── setMeta.ts │ │ │ │ ├── setNode.ts │ │ │ │ ├── setNodeSelection.ts │ │ │ │ ├── setTextDirection.ts │ │ │ │ ├── setTextSelection.ts │ │ │ │ ├── sinkListItem.ts │ │ │ │ ├── splitBlock.ts │ │ │ │ ├── splitListItem.ts │ │ │ │ ├── toggleList.ts │ │ │ │ ├── toggleMark.ts │ │ │ │ ├── toggleNode.ts │ │ │ │ ├── toggleWrap.ts │ │ │ │ ├── undoInputRule.ts │ │ │ │ ├── unsetAllMarks.ts │ │ │ │ ├── unsetMark.ts │ │ │ │ ├── unsetTextDirection.ts │ │ │ │ ├── updateAttributes.ts │ │ │ │ ├── wrapIn.ts │ │ │ │ └── wrapInList.ts │ │ │ ├── extensions/ │ │ │ │ ├── clipboardTextSerializer.ts │ │ │ │ ├── commands.ts │ │ │ │ ├── delete.ts │ │ │ │ ├── drop.ts │ │ │ │ ├── editable.ts │ │ │ │ ├── focusEvents.ts │ │ │ │ ├── index.ts │ │ │ │ ├── keymap.ts │ │ │ │ ├── paste.ts │ │ │ │ ├── tabindex.ts │ │ │ │ └── textDirection.ts │ │ │ ├── helpers/ │ │ │ │ ├── MappablePosition.ts │ │ │ │ ├── combineTransactionSteps.ts │ │ │ │ ├── createChainableState.ts │ │ │ │ ├── createDocument.ts │ │ │ │ ├── createNodeFromContent.ts │ │ │ │ ├── defaultBlockAt.ts │ │ │ │ ├── findChildren.ts │ │ │ │ ├── findChildrenInRange.ts │ │ │ │ ├── findParentNode.ts │ │ │ │ ├── findParentNodeClosestToPos.ts │ │ │ │ ├── flattenExtensions.ts │ │ │ │ ├── generateHTML.ts │ │ │ │ ├── generateJSON.ts │ │ │ │ ├── generateText.ts │ │ │ │ ├── getAttributes.ts │ │ │ │ ├── getAttributesFromExtensions.ts │ │ │ │ ├── getChangedRanges.ts │ │ │ │ ├── getDebugJSON.ts │ │ │ │ ├── getExtensionField.ts │ │ │ │ ├── getHTMLFromFragment.ts │ │ │ │ ├── getMarkAttributes.ts │ │ │ │ ├── getMarkRange.ts │ │ │ │ ├── getMarkType.ts │ │ │ │ ├── getMarksBetween.ts │ │ │ │ ├── getNodeAtPosition.ts │ │ │ │ ├── getNodeAttributes.ts │ │ │ │ ├── getNodeType.ts │ │ │ │ ├── getRenderedAttributes.ts │ │ │ │ ├── getSchema.ts │ │ │ │ ├── getSchemaByResolvedExtensions.ts │ │ │ │ ├── getSchemaTypeByName.ts │ │ │ │ ├── getSchemaTypeNameByName.ts │ │ │ │ ├── getSplittedAttributes.ts │ │ │ │ ├── getText.ts │ │ │ │ ├── getTextBetween.ts │ │ │ │ ├── getTextContentFromNodes.ts │ │ │ │ ├── getTextSerializersFromSchema.ts │ │ │ │ ├── index.ts │ │ │ │ ├── injectExtensionAttributesToParseRule.ts │ │ │ │ ├── isActive.ts │ │ │ │ ├── isAtEndOfNode.ts │ │ │ │ ├── isAtStartOfNode.ts │ │ │ │ ├── isExtensionRulesEnabled.ts │ │ │ │ ├── isList.ts │ │ │ │ ├── isMarkActive.ts │ │ │ │ ├── isNodeActive.ts │ │ │ │ ├── isNodeEmpty.ts │ │ │ │ ├── isNodeSelection.ts │ │ │ │ ├── isTextSelection.ts │ │ │ │ ├── posToDOMRect.ts │ │ │ │ ├── resolveExtensions.ts │ │ │ │ ├── resolveFocusPosition.ts │ │ │ │ ├── rewriteUnknownContent.ts │ │ │ │ ├── selectionToInsertionEnd.ts │ │ │ │ ├── sortExtensions.ts │ │ │ │ └── splitExtensions.ts │ │ │ ├── index.ts │ │ │ ├── inputRules/ │ │ │ │ ├── index.ts │ │ │ │ ├── markInputRule.ts │ │ │ │ ├── nodeInputRule.ts │ │ │ │ ├── textInputRule.ts │ │ │ │ ├── textblockTypeInputRule.ts │ │ │ │ └── wrappingInputRule.ts │ │ │ ├── jsx-runtime.ts │ │ │ ├── lib/ │ │ │ │ ├── ResizableNodeView.ts │ │ │ │ └── index.ts │ │ │ ├── pasteRules/ │ │ │ │ ├── index.ts │ │ │ │ ├── markPasteRule.ts │ │ │ │ ├── nodePasteRule.ts │ │ │ │ └── textPasteRule.ts │ │ │ ├── style.ts │ │ │ ├── types.ts │ │ │ └── utilities/ │ │ │ ├── callOrReturn.ts │ │ │ ├── canInsertNode.ts │ │ │ ├── createStyleTag.ts │ │ │ ├── deleteProps.ts │ │ │ ├── elementFromString.ts │ │ │ ├── escapeForRegEx.ts │ │ │ ├── findDuplicates.ts │ │ │ ├── fromString.ts │ │ │ ├── index.ts │ │ │ ├── isAndroid.ts │ │ │ ├── isEmptyObject.ts │ │ │ ├── isFirefox.ts │ │ │ ├── isFunction.ts │ │ │ ├── isMacOS.ts │ │ │ ├── isNumber.ts │ │ │ ├── isPlainObject.ts │ │ │ ├── isRegExp.ts │ │ │ ├── isSafari.ts │ │ │ ├── isString.ts │ │ │ ├── isiOS.ts │ │ │ ├── markdown/ │ │ │ │ ├── attributeUtils.ts │ │ │ │ ├── createAtomBlockMarkdownSpec.ts │ │ │ │ ├── createBlockMarkdownSpec.ts │ │ │ │ ├── createInlineMarkdownSpec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── parseIndentedBlocks.ts │ │ │ │ └── renderNestedMarkdownContent.ts │ │ │ ├── mergeAttributes.ts │ │ │ ├── mergeDeep.ts │ │ │ ├── minMax.ts │ │ │ ├── objectIncludes.ts │ │ │ └── removeDuplicates.ts │ │ └── tsup.config.ts │ ├── extension-audio/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── audio.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── audio.ts │ │ │ ├── index.ts │ │ │ └── utils.ts │ │ └── tsup.config.ts │ ├── extension-blockquote/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── blockquote.tsx │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-bold/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── bold.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── bold.tsx │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-bubble-menu/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── bubble-menu-plugin.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── bubble-menu-plugin.ts │ │ │ ├── bubble-menu.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-bullet-list/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-code/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── code.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-code-block/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── code-block.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-code-block-lowlight/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── codeBlockLowlight.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── code-block-lowlight.ts │ │ │ ├── index.ts │ │ │ └── lowlight-plugin.ts │ │ └── tsup.config.ts │ ├── extension-collaboration/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── collaboration.ts │ │ │ ├── helpers/ │ │ │ │ ├── CollaborationMappablePosition.ts │ │ │ │ ├── isChangeOrigin.ts │ │ │ │ └── yRelativePosition.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-collaboration-caret/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── collaboration-caret.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── collaboration-caret.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-color/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-details/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── content/ │ │ │ │ ├── details-content.ts │ │ │ │ └── index.ts │ │ │ ├── details.ts │ │ │ ├── helpers/ │ │ │ │ ├── findClosestVisibleNode.ts │ │ │ │ ├── isNodeVisible.ts │ │ │ │ └── setGapCursor.ts │ │ │ ├── index.ts │ │ │ └── summary/ │ │ │ ├── details-summary.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-document/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── document.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-drag-handle/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ ├── defaultRules.spec.ts │ │ │ ├── drag-handle.spec.ts │ │ │ ├── edgeDetection.spec.ts │ │ │ ├── findBestDragTarget.spec.ts │ │ │ ├── normalizeOptions.spec.ts │ │ │ └── scoring.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── drag-handle-plugin.ts │ │ │ ├── drag-handle.ts │ │ │ ├── helpers/ │ │ │ │ ├── cloneElement.ts │ │ │ │ ├── defaultRules.ts │ │ │ │ ├── dragHandler.ts │ │ │ │ ├── edgeDetection.ts │ │ │ │ ├── findBestDragTarget.ts │ │ │ │ ├── findNextElementFromCursor.ts │ │ │ │ ├── getComputedStyle.ts │ │ │ │ ├── getInnerCoords.ts │ │ │ │ ├── getOuterNode.ts │ │ │ │ ├── minMax.ts │ │ │ │ ├── normalizeOptions.ts │ │ │ │ ├── removeNode.ts │ │ │ │ └── scoring.ts │ │ │ ├── index.ts │ │ │ └── types/ │ │ │ ├── options.ts │ │ │ └── rules.ts │ │ └── tsup.config.ts │ ├── extension-drag-handle-react/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── DragHandle.tsx │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-drag-handle-vue-2/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── DragHandle.ts │ │ │ ├── Vue.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-drag-handle-vue-3/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── DragHandle.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-emoji/ │ │ ├── CHANGELOG.md │ │ ├── __tests__/ │ │ │ └── emoji.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── data.ts │ │ │ ├── emoji.ts │ │ │ ├── generate.ts │ │ │ ├── helpers/ │ │ │ │ ├── emojiToShortcode.ts │ │ │ │ ├── removeDuplicates.ts │ │ │ │ ├── removeVariationSelector.ts │ │ │ │ └── shortcodeToEmoji.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-file-handler/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── FileHandlePlugin.ts │ │ │ ├── fileHandler.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ └── tsup.config.ts │ ├── extension-floating-menu/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── floating-menu-plugin.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── floating-menu-plugin.ts │ │ │ ├── floating-menu.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-font-family/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-hard-break/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── hard-break.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-heading/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── heading.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-highlight/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── highlight.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-horizontal-rule/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── horizontalRule.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── horizontal-rule.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-image/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── image.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-invisible-characters/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── invisible-characters.ts │ │ │ ├── plugin/ │ │ │ │ ├── InvisibleCharacter.ts │ │ │ │ ├── InvisibleCharactersPlugin.ts │ │ │ │ ├── InvisibleNode.ts │ │ │ │ ├── index.ts │ │ │ │ ├── invisible-characters/ │ │ │ │ │ ├── hardBreak.ts │ │ │ │ │ ├── paragraph.ts │ │ │ │ │ └── space.ts │ │ │ │ ├── reducers.ts │ │ │ │ ├── style.ts │ │ │ │ └── utils/ │ │ │ │ ├── create-decoration-widget.ts │ │ │ │ ├── create-style-tag.ts │ │ │ │ ├── get-updated-ranges.ts │ │ │ │ └── text-between.ts │ │ │ └── types.ts │ │ └── tsup.config.ts │ ├── extension-italic/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── italic.ts │ │ └── tsup.config.ts │ ├── extension-link/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── link.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── helpers/ │ │ │ │ ├── autolink.ts │ │ │ │ ├── clickHandler.ts │ │ │ │ ├── pasteHandler.ts │ │ │ │ └── whitespace.ts │ │ │ ├── index.ts │ │ │ └── link.ts │ │ └── tsup.config.ts │ ├── extension-list/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── taskItem.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── bullet-list/ │ │ │ │ ├── bullet-list.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── item/ │ │ │ │ ├── index.ts │ │ │ │ └── list-item.ts │ │ │ ├── keymap/ │ │ │ │ ├── index.ts │ │ │ │ ├── list-keymap.ts │ │ │ │ └── listHelpers/ │ │ │ │ ├── findListItemPos.ts │ │ │ │ ├── getNextListDepth.ts │ │ │ │ ├── handleBackspace.ts │ │ │ │ ├── handleDelete.ts │ │ │ │ ├── hasListBefore.ts │ │ │ │ ├── hasListItemAfter.ts │ │ │ │ ├── hasListItemBefore.ts │ │ │ │ ├── index.ts │ │ │ │ ├── listItemHasSubList.ts │ │ │ │ ├── nextListIsDeeper.ts │ │ │ │ └── nextListIsHigher.ts │ │ │ ├── kit/ │ │ │ │ └── index.ts │ │ │ ├── ordered-list/ │ │ │ │ ├── index.ts │ │ │ │ ├── ordered-list.ts │ │ │ │ └── utils.ts │ │ │ ├── task-item/ │ │ │ │ ├── index.ts │ │ │ │ └── task-item.ts │ │ │ └── task-list/ │ │ │ ├── index.ts │ │ │ └── task-list.ts │ │ └── tsup.config.ts │ ├── extension-mathematics/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── extensions/ │ │ │ │ ├── BlockMath.ts │ │ │ │ ├── InlineMath.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── mathematics.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ └── tsup.config.ts │ ├── extension-mention/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── mention.ts │ │ │ └── utils/ │ │ │ └── get-default-suggestion-attributes.ts │ │ └── tsup.config.ts │ ├── extension-node-range/ │ │ ├── CHANGELOG.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── helpers/ │ │ │ │ ├── NodeRangeBookmark.ts │ │ │ │ ├── NodeRangeSelection.ts │ │ │ │ ├── getNodeRangeDecorations.ts │ │ │ │ ├── getSelectionRanges.ts │ │ │ │ └── isNodeRangeSelection.ts │ │ │ ├── index.ts │ │ │ └── node-range.ts │ │ └── tsup.config.ts │ ├── extension-ordered-list/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-paragraph/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── paragraph.ts │ │ └── tsup.config.ts │ ├── extension-strike/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── strike.ts │ │ └── tsup.config.ts │ ├── extension-subscript/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── subscript.ts │ │ └── tsup.config.ts │ ├── extension-superscript/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── superscript.ts │ │ └── tsup.config.ts │ ├── extension-table/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ ├── tableCell.spec.ts │ │ │ └── tableHeader.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── cell/ │ │ │ │ ├── index.ts │ │ │ │ └── table-cell.ts │ │ │ ├── header/ │ │ │ │ ├── index.ts │ │ │ │ └── table-header.ts │ │ │ ├── index.ts │ │ │ ├── kit/ │ │ │ │ └── index.ts │ │ │ ├── row/ │ │ │ │ ├── index.ts │ │ │ │ └── table-row.ts │ │ │ ├── table/ │ │ │ │ ├── TableView.ts │ │ │ │ ├── index.ts │ │ │ │ ├── table.ts │ │ │ │ └── utilities/ │ │ │ │ ├── colStyle.ts │ │ │ │ ├── createCell.ts │ │ │ │ ├── createColGroup.ts │ │ │ │ ├── createTable.ts │ │ │ │ ├── deleteTableWhenAllCellsSelected.ts │ │ │ │ ├── getTableNodeTypes.ts │ │ │ │ ├── isCellSelection.ts │ │ │ │ └── markdown.ts │ │ │ └── types.ts │ │ └── tsup.config.ts │ ├── extension-table-of-contents/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── plugin.ts │ │ │ ├── tableOfContents.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ └── tsup.config.ts │ ├── extension-text/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── text.ts │ │ └── tsup.config.ts │ ├── extension-text-align/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── text-align.ts │ │ └── tsup.config.ts │ ├── extension-text-style/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ ├── background-color.spec.ts │ │ │ └── color.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── background-color/ │ │ │ │ ├── background-color.ts │ │ │ │ └── index.ts │ │ │ ├── color/ │ │ │ │ ├── color.ts │ │ │ │ └── index.ts │ │ │ ├── font-family/ │ │ │ │ ├── font-family.ts │ │ │ │ └── index.ts │ │ │ ├── font-size/ │ │ │ │ ├── font-size.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── line-height/ │ │ │ │ ├── index.ts │ │ │ │ └── line-height.ts │ │ │ ├── text-style/ │ │ │ │ └── index.ts │ │ │ └── text-style-kit/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-twitch/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── twitch.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── twitch.ts │ │ │ └── utils.ts │ │ └── tsup.config.ts │ ├── extension-typography/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── typography.ts │ │ └── tsup.config.ts │ ├── extension-underline/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── underline.ts │ │ └── tsup.config.ts │ ├── extension-unique-id/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── unique-id-collab.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── generate-unique-ids.ts │ │ │ ├── helpers/ │ │ │ │ └── findDuplicates.ts │ │ │ ├── index.ts │ │ │ └── unique-id.ts │ │ └── tsup.config.ts │ ├── extension-youtube/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── youtube.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── utils.ts │ │ │ └── youtube.ts │ │ └── tsup.config.ts │ ├── extensions/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── placeholder.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── character-count/ │ │ │ │ ├── character-count.ts │ │ │ │ └── index.ts │ │ │ ├── drop-cursor/ │ │ │ │ ├── drop-cursor.ts │ │ │ │ └── index.ts │ │ │ ├── focus/ │ │ │ │ ├── focus.ts │ │ │ │ └── index.ts │ │ │ ├── gap-cursor/ │ │ │ │ ├── gap-cursor.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── placeholder/ │ │ │ │ ├── index.ts │ │ │ │ └── placeholder.ts │ │ │ ├── selection/ │ │ │ │ ├── index.ts │ │ │ │ └── selection.ts │ │ │ ├── trailing-node/ │ │ │ │ ├── index.ts │ │ │ │ └── trailing-node.ts │ │ │ └── undo-redo/ │ │ │ ├── index.ts │ │ │ └── undo-redo.ts │ │ └── tsup.config.ts │ ├── html/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ ├── generateHTML.spec.ts │ │ │ ├── generateJSON.spec.ts │ │ │ └── server-with-jsdom.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── generateHTML.ts │ │ │ ├── generateJSON.ts │ │ │ ├── getHTMLFromFragment.ts │ │ │ ├── index.ts │ │ │ └── server/ │ │ │ ├── generateHTML.ts │ │ │ ├── generateJSON.ts │ │ │ ├── getHTMLFromFragment.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── markdown/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ ├── conversion-files/ │ │ │ │ ├── bullet-list.ts │ │ │ │ ├── custom-atom.ts │ │ │ │ ├── custom-block.ts │ │ │ │ ├── custom-inline.ts │ │ │ │ ├── hard-break-marks.ts │ │ │ │ ├── index.ts │ │ │ │ ├── link-with-title.ts │ │ │ │ ├── link-without-title.ts │ │ │ │ ├── mixed-list-types.ts │ │ │ │ ├── nested-nodes.ts │ │ │ │ ├── ordered-list-separated-by-bullet.ts │ │ │ │ ├── ordered-list-with-bullet-list.ts │ │ │ │ ├── ordered-list.ts │ │ │ │ ├── soft-break-marks.ts │ │ │ │ ├── task-list.ts │ │ │ │ └── trailing-whitespace-marks.ts │ │ │ ├── conversion.spec.ts │ │ │ ├── extensions/ │ │ │ │ └── blockquote.spec.ts │ │ │ ├── inline-marks-punctuation.spec.ts │ │ │ ├── manager.spec.ts │ │ │ ├── mixed-html.spec.ts │ │ │ ├── overlapping-marks.spec.ts │ │ │ ├── paragraph.spec.ts │ │ │ ├── server-side-parsing.spec.ts │ │ │ └── utilities.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Extension.ts │ │ │ ├── MarkdownManager.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ └── tsup.config.ts │ ├── pm/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── changeset/ │ │ │ └── index.ts │ │ ├── collab/ │ │ │ └── index.ts │ │ ├── commands/ │ │ │ └── index.ts │ │ ├── dropcursor/ │ │ │ └── index.ts │ │ ├── gapcursor/ │ │ │ └── index.ts │ │ ├── history/ │ │ │ └── index.ts │ │ ├── inputrules/ │ │ │ └── index.ts │ │ ├── keymap/ │ │ │ └── index.ts │ │ ├── markdown/ │ │ │ └── index.ts │ │ ├── menu/ │ │ │ └── index.ts │ │ ├── model/ │ │ │ └── index.ts │ │ ├── package.json │ │ ├── schema-basic/ │ │ │ └── index.ts │ │ ├── schema-list/ │ │ │ └── index.ts │ │ ├── state/ │ │ │ └── index.ts │ │ ├── tables/ │ │ │ └── index.ts │ │ ├── trailing-node/ │ │ │ └── index.ts │ │ ├── transform/ │ │ │ └── index.ts │ │ ├── tsup.config.ts │ │ └── view/ │ │ └── index.ts │ ├── react/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Context.tsx │ │ │ ├── Editor.ts │ │ │ ├── EditorContent.tsx │ │ │ ├── NodeViewContent.tsx │ │ │ ├── NodeViewWrapper.tsx │ │ │ ├── ReactMarkViewRenderer.tsx │ │ │ ├── ReactNodeViewRenderer.tsx │ │ │ ├── ReactRenderer.tsx │ │ │ ├── Tiptap.tsx │ │ │ ├── index.ts │ │ │ ├── menus/ │ │ │ │ ├── BubbleMenu.spec.ts │ │ │ │ ├── BubbleMenu.tsx │ │ │ │ ├── FloatingMenu.spec.ts │ │ │ │ ├── FloatingMenu.tsx │ │ │ │ ├── getAutoPluginKey.ts │ │ │ │ ├── index.ts │ │ │ │ └── useMenuElementProps.ts │ │ │ ├── types.ts │ │ │ ├── useEditor.ts │ │ │ ├── useEditorState.ts │ │ │ └── useReactNodeView.ts │ │ └── tsup.config.ts │ ├── starter-kit/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ └── starter-kit.ts │ │ └── tsup.config.ts │ ├── static-renderer/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── __tests__/ │ │ │ ├── json-string.spec.ts │ │ │ ├── md-string.spec.ts │ │ │ └── react-string.spec.ts │ │ ├── package.json │ │ ├── src/ │ │ │ ├── helpers.ts │ │ │ ├── index.ts │ │ │ ├── json/ │ │ │ │ ├── html-string/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── string.ts │ │ │ │ ├── react/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── react.ts │ │ │ │ └── renderer.ts │ │ │ └── pm/ │ │ │ ├── extensionRenderer.ts │ │ │ ├── html-string/ │ │ │ │ ├── html-string.ts │ │ │ │ └── index.ts │ │ │ ├── markdown/ │ │ │ │ ├── index.ts │ │ │ │ └── markdown.ts │ │ │ └── react/ │ │ │ ├── index.ts │ │ │ └── react.ts │ │ └── tsup.config.ts │ ├── suggestion/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── __tests__/ │ │ │ │ └── suggestion.test.ts │ │ │ ├── findSuggestionMatch.ts │ │ │ ├── index.ts │ │ │ └── suggestion.ts │ │ └── tsup.config.ts │ ├── vue-2/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── Editor.ts │ │ │ ├── EditorContent.ts │ │ │ ├── NodeViewContent.ts │ │ │ ├── NodeViewWrapper.ts │ │ │ ├── Vue.ts │ │ │ ├── VueNodeViewRenderer.ts │ │ │ ├── VueRenderer.ts │ │ │ ├── index.ts │ │ │ └── menus/ │ │ │ ├── BubbleMenu.ts │ │ │ ├── FloatingMenu.ts │ │ │ └── index.ts │ │ └── tsup.config.ts │ └── vue-3/ │ ├── CHANGELOG.md │ ├── README.md │ ├── __tests__/ │ │ ├── VueMarkViewRenderer.spec.ts │ │ └── VueRenderer.spec.ts │ ├── package.json │ ├── src/ │ │ ├── Editor.ts │ │ ├── EditorContent.ts │ │ ├── NodeViewContent.ts │ │ ├── NodeViewWrapper.ts │ │ ├── VueMarkViewRenderer.ts │ │ ├── VueNodeViewRenderer.ts │ │ ├── VueRenderer.ts │ │ ├── index.ts │ │ ├── menus/ │ │ │ ├── BubbleMenu.ts │ │ │ ├── FloatingMenu.ts │ │ │ └── index.ts │ │ └── useEditor.ts │ └── tsup.config.ts ├── packages-deprecated/ │ ├── .gitkeep │ ├── extension-character-count/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ └── tsup.config.ts │ ├── extension-dropcursor/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-focus/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-gapcursor/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-history/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-list-item/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-list-keymap/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-placeholder/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-table-cell/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-table-header/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-table-row/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ ├── extension-task-item/ │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.ts │ │ └── tsup.config.ts │ └── extension-task-list/ │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src/ │ │ └── index.ts │ └── tsup.config.ts ├── patches/ │ └── @changesets__assemble-release-plan.patch ├── pnpm-workspace.yaml ├── scripts/ │ ├── aggregate-changeset.js │ ├── check-package-dists.sh │ └── make-demo.sh ├── skills/ │ └── tiptap/ │ └── SKILL.md ├── tests/ │ ├── cypress/ │ │ ├── fixtures/ │ │ │ └── example.json │ │ ├── integration/ │ │ │ └── core/ │ │ │ ├── pluginOrder.spec.ts │ │ │ └── transformPastedHTML.spec.ts │ │ ├── plugins/ │ │ │ └── index.js │ │ ├── support/ │ │ │ ├── commands.js │ │ │ └── e2e.js │ │ └── tsconfig.json │ ├── cypress.config.js │ └── package.json ├── tsconfig.build.json ├── tsconfig.json ├── turbo.json └── vitest.config.ts