{"repo":"yoopta-editor/Yoopta-Editor","free":true,"listed":false,"github":"https://github.com/yoopta-editor/Yoopta-Editor","clone":"git clone https://github.com/yoopta-editor/Yoopta-Editor.git","description":"Build Notion-like, Craft-like, Coda-like, Medium-like editors with Yoopta","language":"TypeScript","stars":3079,"topics":["contenteditable","editor","hacktoberfest","javascript","notion","notion-alternative","notion-editor","react","rich-text","rich-text-editor","slate","wysiwyg","wysiwyg-editor"],"license":"MIT","category":"rich_text_editor","readme_excerpt":"[![Buy Me A Coffee](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/darginec05)\n\n![npm](https://img.shields.io/npm/v/@yoopta/editor)\n![downloads](https://img.shields.io/npm/dm/@yoopta/editor)\n[![](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86)](https://github.com/sponsors/Darginec05)\n\n# Yoopta-Editor v6\n\n<!-- **[▶ Watch intro video](docs/public/yoopta-intro.mp4)** -->\n\n<!-- ![](docs/public/images/yoopta-logo.png) -->\n\n## Motivation. Why Yoopta?\n\nYoopta is fully open source and built with all my heart and love. It was born from real pain\n\nI've integrated rich-text editors into products more times than I'd like to admit. Every time it was the same story: wrestling with complex APIs, fighting against opinionated UI that doesn't fit your product, hacking around limitations, and writing glue code that makes you mass text your wife and check hair transplant prices (I'm currently accepting donations for the procedure — every star on GitHub brings me one follicle closer).\n\nYoopta was built to end that cycle. The idea is simple: give developers a **headless core** when they need full control, but also ship **20+ ready-made plugins**, **pre-built UI components** (toolbars, slash menus, block actions), and **theme presets** (shadcn, Material) — so you can launch a polished editing experience without thinking about implementing a rich-text editor in your project and engage in other business tasks\n\nWhether you're building a simple blog editor, a Notion-like workspace, a CMS for landing pages, or even a full website builder — Yoopta gives you the primitives to get there\n\nIf Yoopta saves you time, consider [starring the repo](https://github.com/Darginec05/Yoopta-Editor) or [sponsoring the project](https://github.com/sponsors/Darginec05). It keeps the project alive\n\n## Yoo AI — AI App Builder Powered by Yoopta Editor\n\n> **[ai.yoopta.dev](https://ai.yoopta.dev)** — Describe your app. AI builds it with Yoopta plugins. You edit everything directly in the preview.\n\nYoo AI is an AI-powered web app builder built on top of Yoopta Editor. It takes everything developers love about Yoopta — plugins, drag & drop, theming, collaboration — and wraps it in an AI-first experience that anyone can use without writing code.\n\n- **AI generates multi-page apps** from a text prompt using plugins from the marketplace\n- **Click any block to edit inline** — text, images, styles. The preview is the editor\n- **Connect your own API** for dynamic data (product catalogs, listings, blog posts)\n- **AI Plugin Generator** — describe a custom block, AI builds it with live preview and source code\n- **200+ community plugins** — developers build and publish blocks, AI learns to use them\n- **Real-time collaboration** — edit together with cursors and presence, powered by Yjs\n\nEarly access is open — first 100 users get lifetime perks.\n\n**[Try Yoo AI →](https://ai.yoopta.dev)**\n\n---\n\n## Introduction\n\nYoopta-Editor is a free, open-source rich-text editor built for React apps. It's packed with features that let you build an editor as powerful and user-friendly as Notion, Craft, Coda, Medium etc. — or go further and build a CMS, landing page builder, or website builder on top of it.\n\nBuilt on top of Slate.js with a powerful plugin architecture, Yoopta-Editor gives you the flexibility to customize everything—tweak the look, add features, or craft a completely custom user interface. The core is headless by default; Yoopta also provides pre-built theme presets so you can get a full editing experience and start quickly (shadcn theme `@yoopta/themes-shadcn` is available now; Material theme is in progress). Pre-built UI components via `@yoopta/ui` (toolbars, menus, block actions) let you improve the editing experience without building everything from scratch.\n\n## Examples & Demos\n\nSee what you can build with Yoopta:\n\n| Example                   | Description                                                                                                          | Demo                                                  | Source                                                                                                              |\n| ------------------------- | -------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |\n| **Full Setup**            | Complete editor with toolbar, slash menu, block actions, drag & drop, and mentions                                   | [Live](https://yoopta.dev/examples/full-setup)        | [Source](https://github.com/Darginec05/Yoopta-Editor/tree/main/web/next-app-example/app/examples/full-setup)        |\n| **CMS / Website Builder** | Visual page builder with drag-and-drop blocks, sidebar settings, and live preview — build landing pages and websites | [Live](https://yoopta.dev/examples/cms)               | [Source](https://github.com/Darginec05/Yoopta-Editor/tree/main/web/next-app-example/app/examples/cms)               |\n| **Word Example**          | Microsoft Word-inspired editor with fixed toolbar, formatting, tables, and export to HTML/Markdown/Text/JSON         | [Live](https://yoopta.dev/examples/word-example)      | [Source](https://github.com/Darginec05/Yoopta-Editor/tree/main/web/next-app-example/app/examples/word-example)      |\n| **Email Builder**         | Email composition tool with templates, signatures, split-view editing, HTML preview, and email-safe export           | [Live](https://yoopta.dev/examples/email-builder)     | [Source](https://github.com/Darginec05/Yoopta-Editor/tree/main/web/next-app-example/app/examples/email-builder)     |\n| **README Editor**         | GitHub-flavored Markdown editor with live preview, section templates, and download as README.md                      | [Live](https://yoopta.dev/examples/readme-editor)     | [Source](https://github.com/Darginec05/Yoopta-Editor/tree/main/web/next-app-example/app/examples/readme-editor)     |\n| **Slack Chat**            | Slack-style messaging with channel list, rich text composer, mentions, and emoji support                             | [Live](https://yoopta.dev/examples/slack-chat)        | [Source](https://github.com/Darginec05/Yoopta-Editor/tree/main/web/next-app-example/app/examples/slack-chat)        |\n| **Social Media Chat**     | WhatsApp/Instagram-like chat with message bubbles, attachments, reactions, and status indicators                     | [Live](https://yoopta.dev/examples/social-media-chat) | [Source](https://github.com/Darginec05/Yoopta-Editor/tree/main/web/next-app-example/app/examples/social-media-chat) |\n| **Collaboration**         | Real-time multi-user editing with Yjs, remote cursors, and presence awareness                                        | [Live](https://yoopta.dev/examples/collaboration)     | [Source](https://github.com/Darginec05/Yoopta-Editor/tree/main/web/next-app-example/app/examples/collaboration)     |\n| **Nested Plugins**        | Injecting child elements from other plugins into Accordion, Tabs, and Carousel components                            | [Live](https://yoopta.dev/examples/inject-plugins)    | [Source](https://github.com/Darginec05/Yoopta-Editor/tree/main/web/next-app-example/app/examples/inject-plugins)    |\n| **Large Document**        | Performance stress test with a large dataset to demonstrate scalability with many blocks                             | [Live](https://yoopta.dev/examples/large-document)    | [Source](https://github.com/Darginec05/Yoopta-Editor/tree/main/web/next-app-example/app/examples/large-document)    |\n\n## Features\n\n- **Easy setup** — Sensible defaults; plugins and marks passed to `createYooptaEditor`, then render `<YooptaEditor />`\n- **20+ plugins** — Paragraph, headings, lists, code, image, video, table, callout, accordion, tabs, steps, divider, embed, file, link, mention, carousel, table-of-contents, and more\n- **Headless core** — Full control over UI; optional pre-built theme presets (`@yoopta/themes-shadcn` available, `@yoopta/themes-material` in progress) for styled block UI\n- **Pre-built UI components** (`@yoopta/ui`) — FloatingToolbar, SlashCommandMenu, ActionMenuList, BlockOptions, ElementOptions, FloatingBlockActions, SelectionBox, BlockDndContext so you don't have to build everything from scratch\n- **Blocks, Elements, Marks APIs** — Programmatic control: insert/update/delete blocks and elements, apply text formatting (Bold, Italic, Highlight, etc.), custom marks supported\n- **Undo/redo** — Built-in history with `editor.undo()` / `editor.redo()`; batch operations for single undo step\n- **Drag and drop** — Reorder blocks with nested depth support; optional `SortableBlock` for custom DnD\n- **Selection box** — Multi-block selection for copy, delete, or bulk operations\n- **Slash command & action menu** — Type `/` for block insertion; floating block actions (+, drag handle, block options)\n- **Inline elements** — Links, @mentions, emojis, inline math (KaTeX), and custom inline nodes within text\n- **Export** — HTML, Markdown, plain text, email template; get/set content as Yoopta JSON\n- **Real-time collaboration** (`@yoopta/collaboration`) — Multi-user editing with Yjs CRDT, presence (awareness), remote cursors, and WebSocket provider; optional package for collaborative documents\n- **Events** — `editor.on('change' | 'focus' | 'blur' | 'path-change' | 'block:copy')` for sync, analytics, or custom logic\n- **Keyboard shortcuts** — Customizable hotkeys; Tab/Shift+Tab for indent/outdent; shortcuts per plugin and mark\n- **Read-only mode** — Use the same editor instance for viewing or editing\n- **TypeScript** — Full type definitions for editor, blocks, elements, and plugins\n- **Mobile friendly** — Touch support; works in responsive layouts\n- **Custom plugins & marks**","default_branch":"master","files":1132,"tree":[".agents/skills/competitor-alternatives/SKILL.md",".agents/skills/competitor-alternatives/references/content-architecture.md",".agents/skills/competitor-alternatives/references/templates.md",".agents/skills/content-strategy/SKILL.md",".agents/skills/email-sequence/SKILL.md",".agents/skills/email-sequence/references/copy-guidelines.md",".agents/skills/email-sequence/references/email-types.md",".agents/skills/email-sequence/references/sequence-templates.md",".agents/skills/marketing-ideas/SKILL.md",".agents/skills/marketing-ideas/references/ideas-by-category.md",".agents/skills/marketing-psychology/SKILL.md",".agents/skills/pricing-strategy/SKILL.md",".agents/skills/pricing-strategy/references/research-methods.md",".agents/skills/pricing-strategy/references/tier-structure.md",".agents/skills/product-marketing-context/SKILL.md",".agents/skills/programmatic-seo/SKILL.md",".agents/skills/programmatic-seo/references/playbooks.md",".agents/skills/social-content/SKILL.md",".agents/skills/social-content/references/platforms.md",".agents/skills/social-content/references/post-templates.md",".agents/skills/social-content/references/reverse-engineering.md",".changeset/README.md",".changeset/config.json",".claude/settings.json",".claude/skills/competitor-alternatives",".claude/skills/content-strategy",".claude/skills/email-sequence",".claude/skills/marketing-ideas",".claude/skills/marketing-psychology",".claude/skills/pricing-strategy",".claude/skills/product-marketing-context",".claude/skills/programmatic-seo",".claude/skills/social-content",".codex/skills/competitor-alternatives",".codex/skills/content-strategy",".codex/skills/email-sequence",".codex/skills/marketing-ideas",".codex/skills/marketing-psychology",".codex/skills/pricing-strategy",".codex/skills/product-marketing-context",".codex/skills/programmatic-seo",".codex/skills/social-content",".cursor/skills/competitor-alternatives",".cursor/skills/content-strategy",".cursor/skills/email-sequence",".cursor/skills/marketing-ideas",".cursor/skills/marketing-psychology",".cursor/skills/pricing-strategy",".cursor/skills/product-marketing-context",".cursor/skills/programmatic-seo",".cursor/skills/social-content",".eslintignore",".eslintrc.json",".github/FUNDING.yml",".github/ISSUE_TEMPLATE/bug.yml",".github/ISSUE_TEMPLATE/example_request.yml",".github/ISSUE_TEMPLATE/feature.yml",".github/ISSUE_TEMPLATE/plugin.yml",".github/PULL_REQUEST_TEMPLATE.md",".gitignore",".npmignore",".opencode/skills/competitor-alternatives",".opencode/skills/content-strategy",".opencode/skills/email-sequence",".opencode/skills/marketing-ideas",".opencode/skills/marketing-psychology",".opencode/skills/pricing-strategy",".opencode/skills/product-marketing-context",".opencode/skills/programmatic-seo",".opencode/skills/social-content",".prettierignore",".prettierrc.json",".vscode/extensions.json",".vscode/launch.json",".vscode/settings.json",".yarn/releases/yarn-4.12.0.cjs",".yarnrc.yml","AGENTS.md","CHANGELOG.md","CLAUDE.md","CODE_OF_CONDUCT.md","CONTRIBUTING.md","LICENSE","README.md","SECURITY.md","config/rollup.js","config/tsconfig.base.json","docs/api-reference/blocks.mdx","docs/api-reference/editor.mdx","docs/api-reference/elements.mdx","docs/api-reference/marks.mdx","docs/core/collaboration.mdx","docs/core/editor.mdx","docs/core/plugins.mdx","docs/core/themes.mdx","docs/favicon.ico","docs/getting-started.mdx","docs/installation.mdx","docs/introduction.mdx","docs/marks/overview.mdx","docs/mint.json","docs/plugins/accordion.mdx","docs/plugins/blockquote.mdx","docs/plugins/callout.mdx","docs/plugins/carousel.mdx","docs/plugins/code-group.mdx","docs/plugins/code.mdx","docs/plugins/divider.mdx","docs/plugins/embed.mdx","docs/plugins/emoji.mdx","docs/plugins/file.mdx","docs/plugins/headings.mdx","docs/plugins/image.mdx","docs/plugins/link.mdx","docs/plugins/lists.mdx","docs/plugins/math-block.mdx","docs/plugins/math.mdx","docs/plugins/mention.mdx","docs/plugins/paragraph.mdx","docs/plugins/steps.mdx","docs/plugins/table-of-contents.mdx","docs/plugins/table.mdx","docs/plugins/tabs.mdx","docs/plugins/video.mdx","docs/public/images/yoopta-logo-dark.png","docs/public/images/yoopta-logo.png","docs/public/logo/dark.png","docs/public/logo/light.png","docs/public/videos/ui-components/floating-actions-docs.mp4","docs/public/yoopta-intro.mp4","docs/quickstart.mdx","docs/snippets/plugin-playground.jsx","docs/ui/action-menu-list.mdx","docs/ui/block-dnd.mdx","docs/ui/block-options.mdx","docs/ui/element-options.mdx","docs/ui/floating-block-actions.mdx","docs/ui/floating-toolbar.mdx","docs/ui/overview.mdx","docs/ui/selection-box.mdx","docs/ui/slash-action-menu-list.mdx","e2e/example.spec.ts","e2e/ui-components.spec.ts","package.json","packages/core/collaboration/CHANGELOG.md","packages/core/collaboration/package.json","packages/core/collaboration/rollup.config.js","packages/core/collaboration/src/awareness/awareness-manager.ts","packages/core/collaboration/src/awareness/cursor-decorations.tsx","packages/core/collaboration/src/awareness/remote-cursors.css","packages/core/collaboration/src/awareness/remote-cursors.tsx","packages/core/collaboration/src/binding/block-content-binding.ts","packages/core/collaboration/src/binding/block-meta-binding.ts","packages/core/collaboration/src/binding/block-order-binding.ts","packages/core/collaboration/src/binding/slate-content-binding.test.ts","packages/core/collaboration/src/binding/slate-content-binding.ts","packages/core/collaboration/src/binding/y-doc-binding.ts","packages/core/collaboration/src/binding/yjs-slate-converters.test.ts","packages/core/collaboration/src/binding/yjs-slate-converters.ts","packages/core/collaboration/src/hooks/useCollaboration.ts","packages/core/collaboration/src/hooks/useConnectionStatus.ts","packages/core/collaboration/src/hooks/useRemoteCursors.ts","packages/core/collaboration/src/index.ts","packages/core/collaboration/src/provider/web-socket-provider.ts","packages/core/collaboration/src/types.ts","packages/core/collaboration/src/with-collaboration.test.ts","packages/core/collaboration/src/with-collaboration.ts","packages/core/collaboration/tsconfig.json","packages/core/editor/CHANGELOG.md","packages/core/editor/README.md","packages/core/editor/package.json","packages/core/editor/rollup.config.js","packages/core/editor/src/components/Block/Block.tsx","packages/core/editor/src/components/Block/hooks.ts","packages/core/editor/src/components/Editor/render-blocks.tsx","packages/core/editor/src/components/Editor/render-editor.tsx","packages/core/editor/src/components/Editor/selection.ts","packages/core/editor/src/components/Editor/utils.ts","packages/core/editor/src/components/text-leaf/text-leaf.tsx","packages/core/editor/src/contexts/YooptaContext/YooptaContext.tsx","packages/core/editor/src/editor/blocks/buildBlockData.ts","packages/core/editor/src/editor/blocks/decreaseBlockDepth.ts","packages/core/editor/src/editor/blocks/deleteBlock.test.ts","packages/core/editor/src/editor/blocks/deleteBlock.ts","packages/core/editor/src/editor/blocks/duplicateBlock.test.ts","packages/core/editor/src/editor/blocks/duplicateBlock.ts","packages/core/editor/src/editor/blocks/focusBlock.ts","packages/core/editor/src/editor/blocks/getBlock.ts","packages/core/editor/src/editor/blocks/getBlockSlate.ts","packages/core/editor/src/editor/blocks/increaseBlockDepth.ts","packages/core/editor/src/editor/blocks/index.ts","packages/core/editor/src/editor/blocks/insertBlock.test.ts","packages/core/editor/src/editor/blocks/insertBlock.ts","packages/core/editor/src/editor/blocks/mergeBlock.test.ts","packages/core/editor/src/editor/blocks/mergeBlock.ts","packages/core/editor/src/editor/blocks/moveBlock.ts","packages/core/editor/src/editor/blocks/splitBlock.test.ts","packages/core/editor/src/editor/blocks/splitBlock.ts","packages/core/editor/src/editor/blocks/toggleBlock.test.ts","packages/core/editor/src/editor/blocks/toggleBlock.ts","packages/core/editor/src/editor/blocks/updateBlock.ts","packages/core/editor/src/editor/core/applyTransforms.ts","packages/core/editor/src/editor/core/batchOperations.ts","packages/core/editor/src/editor/core/blur.ts","packages/core/editor/src/editor/core/focus.ts","packages/core/editor/src/editor/core/getEditorValue.ts","packages/core/editor/src/editor/core/history.ts","packages/core/editor/src/editor/core/isEmpty.ts","packages/core/editor/src/editor/core/isFocused.ts","packages/core/editor/src/editor/core/setEditorValue.ts","packages/core/editor/src/editor/elements/create-element-structure.test.ts","packages/core/editor/src/editor/elements/create-element-structure.ts","packages/core/editor/src/editor/elements/deleteElement.test.ts","packages/core/editor/src/editor/elements/deleteElement.ts","packages/core/editor/src/editor/elements/getElement.test.ts","packages/core/editor/src/editor/elements/getElement.ts","packages/core/editor/src/editor/elements/getElementChildren.test.ts","packages/core/editor/src/editor/elements/getElementChildren.ts","packages/core/editor/src/editor/elements/getElementEntry.test.ts","packages/core/editor/src/editor/elements/getElementEntry.ts","packages/core/editor/src/editor/elements/getElementPath.test.ts","packages/core/editor/src/editor/elements/getElementPath.ts","packages/core/editor/src/editor/elements/getElementRect.ts","packages/core/editor/src/editor/elements/getElements.test.ts","packages/core/editor/src/editor/elements/getElements.ts","packages/core/editor/src/editor/elements/getParentElementPath.test.ts","packages/core/editor/src/editor/elements/getParentElementPath.ts","packages/core/editor/src/editor/elements/getRootElement.test.ts","packages/core/editor/src/editor/elements/getRootElement.ts","packages/core/editor/src/editor/elements/htmlElToSlateNode.ts","packages/core/editor/src/editor/elements/index.ts","packages/core/editor/src/editor/elements/insertElement.test.ts","packages/core/editor/src/editor/elements/insertElement.ts","packages/core/editor/src/editor/elements/isElementEmpty.test.ts","packages/core/editor/src/editor/elements/isElementEmpty.ts","packages/core/editor/src/editor/elements/types.ts","packages/core/editor/src/editor/elements/updateElement.test.ts","packages/core/editor/src/editor/elements/updateElement.ts","packages/core/editor/src/editor/index.tsx","packages/core/editor/src/editor/paths/getBlockOrder.ts","packages/core/editor/src/editor/paths/getNextBlockOrder.ts","packages/core/editor/src/editor/paths/getPreviousBlockOrder.ts","packages/core/editor/src/editor/paths/getSelectedPaths.ts","packages/core/editor/src/editor/paths/index.ts","packages/core/editor/src/editor/paths/isBlockSelected.ts","packages/core/editor/src/editor/paths/isPathEmpty.ts","packages/core/editor/src/editor/paths/setPath.ts","packages/core/editor/src/editor/plugins/registerPlugin.test.ts","packages/core/editor/src/editor/plugins/registerPlugin.ts","packages/core/editor/src/editor/selection/getAnchor.ts","packages/core/editor/src/editor/selection/getCurrent.ts","packages/core/editor/src/editor/selection/getEnd.ts","packages/core/editor/src/editor/selection/getFirstPoint.ts","packages/core/editor/src/editor/selection/getFocus.ts","packages/core/editor/src/editor/selection/getLastPoint.ts","packages/core/editor/src/editor/selection/getNext.ts","packages/core/editor/src/editor/selection/getPrevious.ts","packages/core/editor/src/editor/selection/getRange.ts","packages/core/editor/src/editor/selection/getSelected.ts","packages/core/editor/src/editor/selection/getSlateSelection.ts","packages/core/editor/src/editor/selection/getStart.ts","packages/core/editor/src/editor/selection/index.ts","packages/core/editor/src/editor/selection/isBlockSelected.ts","packages/core/editor/src/editor/selection/isCollapsed.ts","packages/core/editor/src/editor/selection/isEmpty.ts","packages/core/editor/src/editor/selection/isExpanded.ts","packages/core/editor/src/editor/selection/setCurrent.ts","packages/core/editor/src/editor/selection/setSelected.ts","packages/core/editor/src/editor/selection/setSlateSelection.ts","packages/core/editor/src/editor/selection/toDOMRange.ts","packages/core/editor/src/editor/selection/types.ts","packages/core/editor/src/editor/textFormats/addMark.ts","packages/core/editor/src/editor/textFormats/clearMarks.ts","packages/core/editor/src/editor/textFormats/getMarks.ts","packages/core/editor/src/editor/textFormats/getValue.ts","packages/core/editor/src/editor/textFormats/index.ts","packages/core/editor/src/editor/textFormats/isActive.ts","packages/core/editor/src/editor/textFormats/removeMark.ts","packages/core/editor/src/editor/textFormats/toggle.ts","packages/core/editor/src/editor/textFormats/types.ts","packages/core/editor/src/editor/textFormats/update.ts","packages/core/editor/src/editor/types.ts","packages/core/editor/src/extensions/shortcuts.ts","packages/core/editor/src/handlers/index.ts","packages/core/editor/src/handlers/onKeyDown.ts","packages/core/editor/src/index.ts","packages/core/editor/src/jsx.d.ts","packages/core/editor/src/marks/index.ts","packages/core/editor/src/parsers/deserializeHTML.test.ts","packages/core/editor/src/parsers/deserializeHTML.ts","packages/core/editor/src/parsers/deserializeTextNodes.ts","packages/core/editor/src/parsers/deserializeYooptaJSON.ts","packages/core/editor/src/parsers/getEmail.ts","packages/core/editor/src/parsers/getHTML.ts","packages/core/editor/src/parsers/getMarkdown.ts","packages/core/editor/src/parsers/getPlainText.ts","packages/core/editor/src/parsers/getYooptaJSON.ts","packages/core/editor/src/parsers/serializeTextNodes.ts","packages/core/editor/src/plugins/build-plugin-elements.test.ts","packages/core/editor/src/plugins/build-plugin-elements.ts","packages/core/editor/src/plugins/create-yoopta-plugin.test.ts","packages/core/editor/src/plugins/create-yoopta-plugin.tsx","packages/core/editor/src/plugins/extenstions/with-inlines.ts","packages/core/editor/src/plugins/hooks.ts","packages/core/editor/src/plugins/index.tsx","packages/core/editor/src/plugins/slate-editor-component.tsx","packages/core/editor/src/plugins/types.ts","packages/core/editor/src/slate.d.ts","packages/core/editor/src/types/eventHandlers.ts","packages/core/editor/src/utils/block-elements.ts","packages/core/editor/src/utils/build-slate.ts","packages/core/editor/src/utils/editor-builders.test.ts","packages/core/editor/src/utils/editor-builders.ts","packages/core/editor/src/utils/enter-action.test.ts","packages/core/editor/src/utils/enter-action.ts","packages/core/editor/src/utils/execute-backspace-action.test.ts","packages/core/editor/src/utils/execute-backspace-action.ts","packages/core/editor/src/utils/findSlateBySelectionPath.tsx","packages/core/editor/src/utils/generateId.ts","packages/core/editor/src/utils/get-block-plugins.test.ts","packages/core/editor/src/utils/get-block-plugins.ts","packages/core/editor/src/utils/get-next-hierarchical-selection.test.ts","packages/core/editor/src/utils/get-next-hierarchical-selection.ts","packages/core/editor/src/utils/get-node-points.test.ts","packages/core/editor/src/utils/get-node-points.ts","packages/core/editor/src/utils/getMaxOffsetInElement.ts","packages/core/editor/src/utils/hotkeys.ts","packages/core/editor/src/utils/invariant.ts","packages/core/editor/src/utils/types.ts","packages/core/editor/src/utils/validations.ts","packages/core/editor/src/utils/weakMaps.ts","packages/core/editor/src/yoopta-editor.tsx","packages/core/editor/tsconfig.json","packages/core/exports/CHANGELOG.md","packages/core/exports/README.md","packages/core/exports/package.json","packages/core/exports/rollup.config.js","packages/core/exports/src/email/serialize.ts","packages/core/exports/src/html/deserialize.ts","packages/core/exports/src/html/serialize.ts","packages/core/exports/src/index.ts","packages/core/exports/src/markdown/deserialize.ts","packages/core/exports/src/markdown/serialize.ts","packages/core/exports/src/text/deserialize.ts","packages/core/exports/src/text/serialize.ts","packages/core/exports/tsconfig.json","packages/core/ui/CHANGELOG.md","packages/core/ui/package.json","packages/core/ui/rollup.config.js","packages/core/ui/src/action-menu-list/action-menu-list.css","packages/core/ui/src/action-menu-list/action-menu-list.tsx","packages/core/ui/src/action-menu-list/context.tsx","packages/core/ui/src/action-menu-list/index.ts","packages/core/ui/src/action-menu-list/types.ts","packages/core/ui/src/action-menu-list/utils.ts","packages/core/ui/src/block-dnd/block-dnd-context.tsx","packages/core/ui/src/block-dnd/block-dnd.css","packages/core/ui/src/block-dnd/drag-handle.tsx","packages/core/ui/src/block-dnd/index.ts","packages/core/ui/src/block-dnd/sortable-block.tsx","packages/core/ui/src/block-dnd/types.ts","packages/core/ui/src/block-dnd/use-block-dnd.ts","packages/core/ui/src/block-options/block-options.css","packages/core/ui/src/block-options/block-options.tsx","packages/core/ui/src/block-options/context.tsx","packages/core/ui/src/block-options/hooks.ts","packages/core/ui/src/block-options/index.ts","packages/core/ui/src/element-options/components/element-options-color-picker.tsx","packages/core/ui/src/element-options/components/element-options-content.tsx","packages/core/ui/src/element-options/components/element-options-group.tsx","packages/core/ui/src/element-options/components/element-options-input.tsx","packages/core/ui/src/element-options/components/element-options-label.tsx","packages/core/ui/src/element-options/components/element-options-root.tsx","packages/core/ui/src/element-options/components/element-options-select.tsx","packages/core/ui/src/element-options/components/element-options-separator.tsx","packages/core/ui/src/element-options/components/element-options-slider.tsx","packages/core/ui/src/element-options/components/element-options-toggle.tsx","packages/core/ui/src/element-options/components/element-options-trigger.tsx","packages/core/ui/src/element-options/context/element-options-context.tsx","packages/core/ui/src/element-options/element-options.css","packages/core/ui/src/element-options/index.ts","packages/core/ui/src/element-options/types.ts","packages/core/ui/src/floating-block-actions/context.tsx","packages/core/ui/src/floating-block-actions/floating-block-actions.css","packages/core/ui/src/floating-block-actions/floating-block-actions.tsx","packages/core/ui/src/floating-block-actions/hooks.ts","packages/core/ui/src/floating-block-actions/index.tsx","packages/core/ui/src/floating-toolbar/context.tsx","packages/core/ui/src/floating-toolbar/floating-toolbar.css","packages/core/ui/src/floating-toolbar/floating-toolbar.tsx","packages/core/ui/src/floating-toolbar/index.ts","packages/core/ui/src/highlight-color-picker/highlight-color-picker.css","packages/core/ui/src/highlight-color-picker/highlight-color-picker.tsx","packages/core/ui/src/highlight-color-picker/index.ts","packages/core/ui/src/index.ts","packages/core/ui/src/overlay/Overlay.tsx","packages/core/ui/src/overlay/index.ts","packages/core/ui/src/portal/Portal.tsx","packages/core/ui/src/portal/index.ts","packages/core/ui/src/selection-box/SelectionBox.tsx"],"storefront":"/r/yoopta-editor","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/yoopta-editor/Yoopta-Editor/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}