├── .changeset ├── README.md ├── changelog-config.js └── config.json ├── .cursor ├── docs-api.md ├── docs-slate.md ├── mcp.json ├── rules │ ├── debug.mdc │ ├── mdx.mdc │ ├── planner.mdc │ ├── react-components.mdc │ └── translate.mdc ├── shadcn-ui.md └── translate.md ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug.yml │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md ├── actions │ └── yarn-nm-install │ │ └── action.yml ├── legacy │ ├── ci-apps.yml │ ├── codesee-arch-diagram.yml │ ├── sync-pro.yml │ └── test-e2e.yml └── workflows │ ├── ci-templates.yml │ ├── clean-up-pr-caches.yml │ ├── lint-typecheck.yml │ ├── notify-release.yml │ ├── registry.yml │ ├── release.yml │ ├── sync-templates.yml │ └── test.yml ├── .gitignore ├── .nvmrc ├── .prettierignore ├── .yarn ├── plugins │ └── @yarnpkg │ │ ├── plugin-interactive-tools.cjs │ │ └── plugin-workspace-tools.cjs └── releases │ └── yarn-4.6.0.cjs ├── .yarnrc.yml ├── BREAKING_CHANGES.md ├── LICENSE ├── README.md ├── apps └── www │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── components.json │ ├── contentlayer.config.js │ ├── next-env.d.ts │ ├── next.config.ts │ ├── package.json │ ├── postcss.config.js │ ├── public │ ├── _og.png │ ├── apple-touch-icon.png │ ├── favicon-48x48.png │ ├── favicon.ico │ ├── favicon.svg │ ├── prism.css │ ├── r │ │ ├── ai-leaf.json │ │ ├── ai-menu.json │ │ ├── ai-plugins.json │ │ ├── ai-toolbar-button.json │ │ ├── align-dropdown-menu.json │ │ ├── align-plugin.json │ │ ├── api-ai.json │ │ ├── api-uploadthing.json │ │ ├── autoformat-list-plugin.json │ │ ├── autoformat-plugin.json │ │ ├── basic-nodes-plugins.json │ │ ├── block-context-menu.json │ │ ├── block-discussion.json │ │ ├── block-menu-plugins.json │ │ ├── block-selection-plugins.json │ │ ├── block-selection.json │ │ ├── blockquote-element.json │ │ ├── callout-element.json │ │ ├── caption.json │ │ ├── code-block-element.json │ │ ├── code-leaf.json │ │ ├── code-line-element.json │ │ ├── code-syntax-leaf.json │ │ ├── collaboration-demo.json │ │ ├── color-dropdown-menu.json │ │ ├── column-element.json │ │ ├── column-group-element.json │ │ ├── comment-leaf.json │ │ ├── comment-toolbar-button.json │ │ ├── comments-plugin.json │ │ ├── controlled-demo.json │ │ ├── copilot-demo.json │ │ ├── copilot-plugins.json │ │ ├── cursor-overlay-plugin.json │ │ ├── cursor-overlay.json │ │ ├── date-element.json │ │ ├── delete-plugins.json │ │ ├── discussion-plugin.json │ │ ├── dnd-plugins.json │ │ ├── docs-ai.json │ │ ├── docs-alignment.json │ │ ├── docs-api-cn.json │ │ ├── docs-api-core-plate-components.json │ │ ├── docs-api-core-plate-controller.json │ │ ├── docs-api-core-plate-editor.json │ │ ├── docs-api-core-plate-plugin.json │ │ ├── docs-api-core-plate-store.json │ │ ├── docs-api-core.json │ │ ├── docs-api-floating.json │ │ ├── docs-api-plate.json │ │ ├── docs-api-react-utils.json │ │ ├── docs-api-resizable.json │ │ ├── docs-api-slate-editor-api.json │ │ ├── docs-api-slate-editor-transforms.json │ │ ├── docs-api-slate-element.json │ │ ├── docs-api-slate-location-ref.json │ │ ├── docs-api-slate-location.json │ │ ├── docs-api-slate-node.json │ │ ├── docs-api-slate-operation.json │ │ ├── docs-api-slate-path.json │ │ ├── docs-api-slate-point.json │ │ ├── docs-api-slate-range.json │ │ ├── docs-api-slate-text.json │ │ ├── docs-api-slate.json │ │ ├── docs-api-utils.json │ │ ├── docs-autoformat.json │ │ ├── docs-basic-elements.json │ │ ├── docs-basic-marks.json │ │ ├── docs-block-menu.json │ │ ├── docs-block-selection.json │ │ ├── docs-callout.json │ │ ├── docs-caption.json │ │ ├── docs-collaboration.json │ │ ├── docs-column.json │ │ ├── docs-combobox.json │ │ ├── docs-comments.json │ │ ├── docs-components-changelog.json │ │ ├── docs-controlled.json │ │ ├── docs-copilot.json │ │ ├── docs-csv.json │ │ ├── docs-cursor-overlay.json │ │ ├── docs-date.json │ │ ├── docs-debugging.json │ │ ├── docs-dnd.json │ │ ├── docs-docx.json │ │ ├── docs-editor-methods.json │ │ ├── docs-editor.json │ │ ├── docs-emoji.json │ │ ├── docs-equation.json │ │ ├── docs-examples-collaboration-example.json │ │ ├── docs-examples-editable-voids.json │ │ ├── docs-examples-export.json │ │ ├── docs-examples-hundreds-blocks.json │ │ ├── docs-examples-hundreds-editors.json │ │ ├── docs-examples-preview-markdown.json │ │ ├── docs-examples-version-history.json │ │ ├── docs-excalidraw.json │ │ ├── docs-exit-break.json │ │ ├── docs-find-replace.json │ │ ├── docs-font.json │ │ ├── docs-forced-layout.json │ │ ├── docs-form.json │ │ ├── docs-highlight.json │ │ ├── docs-horizontal-rule.json │ │ ├── docs-html.json │ │ ├── docs-indent-list.json │ │ ├── docs-indent.json │ │ ├── docs-index.json │ │ ├── docs-installation-docs.json │ │ ├── docs-installation-manual.json │ │ ├── docs-installation-next.json │ │ ├── docs-installation-node.json │ │ ├── docs-installation-plate-ui.json │ │ ├── docs-installation-react.json │ │ ├── docs-installation-rsc.json │ │ ├── docs-installation.json │ │ ├── docs-kbd.json │ │ ├── docs-line-height.json │ │ ├── docs-link.json │ │ ├── docs-list.json │ │ ├── docs-markdown.json │ │ ├── docs-mcp.json │ │ ├── docs-media.json │ │ ├── docs-mention.json │ │ ├── docs-meta.json │ │ ├── docs-migration-slate-to-plate.json │ │ ├── docs-multi-select.json │ │ ├── docs-node-id.json │ │ ├── docs-playwright.json │ │ ├── docs-plugin-components.json │ │ ├── docs-plugin-context.json │ │ ├── docs-plugin-methods.json │ │ ├── docs-plugin-shortcuts.json │ │ ├── docs-plugin.json │ │ ├── docs-reset-node.json │ │ ├── docs-select.json │ │ ├── docs-single-line.json │ │ ├── docs-slash-command.json │ │ ├── docs-soft-break.json │ │ ├── docs-static.json │ │ ├── docs-suggestion.json │ │ ├── docs-tabbable.json │ │ ├── docs-table.json │ │ ├── docs-toc.json │ │ ├── docs-toggle.json │ │ ├── docs-trailing-block.json │ │ ├── docs-troubleshooting.json │ │ ├── docs-typescript.json │ │ ├── docs-unit-testing.json │ │ ├── docs.json │ │ ├── draggable.json │ │ ├── editor-ai.json │ │ ├── editor-basic.json │ │ ├── editor-plugins.json │ │ ├── editor-select.json │ │ ├── editor.json │ │ ├── emoji-dropdown-menu.json │ │ ├── emoji-input-element.json │ │ ├── equation-element.json │ │ ├── equation-plugins.json │ │ ├── excalidraw-element.json │ │ ├── exit-break-plugin.json │ │ ├── export-toolbar-button.json │ │ ├── fixed-toolbar-buttons.json │ │ ├── fixed-toolbar-list-buttons.json │ │ ├── fixed-toolbar-list-plugin.json │ │ ├── fixed-toolbar-plugin.json │ │ ├── fixed-toolbar.json │ │ ├── floating-toolbar-buttons.json │ │ ├── floating-toolbar-plugin.json │ │ ├── floating-toolbar.json │ │ ├── font-size-toolbar-button.json │ │ ├── fumadocs.json │ │ ├── ghost-text.json │ │ ├── heading-element.json │ │ ├── highlight-leaf.json │ │ ├── highlight-style.json │ │ ├── history-toolbar-button.json │ │ ├── hr-element.json │ │ ├── hundreds-blocks-demo.json │ │ ├── hundreds-editors-demo.json │ │ ├── image-element.json │ │ ├── image-preview.json │ │ ├── import-toolbar-button.json │ │ ├── indent-fire-marker.json │ │ ├── indent-list-plugins.json │ │ ├── indent-list-toolbar-button.json │ │ ├── indent-todo-marker.json │ │ ├── indent-todo-toolbar-button.json │ │ ├── indent-toolbar-button.json │ │ ├── inline-combobox.json │ │ ├── inline-equation-element.json │ │ ├── inline-equation-toolbar-button.json │ │ ├── insert-dropdown-menu.json │ │ ├── installation-next-demo.json │ │ ├── kbd-leaf.json │ │ ├── line-height-dropdown-menu.json │ │ ├── line-height-plugin.json │ │ ├── link-element.json │ │ ├── link-floating-toolbar.json │ │ ├── link-plugin.json │ │ ├── link-toolbar-button.json │ │ ├── list-element.json │ │ ├── list-indent-toolbar-button.json │ │ ├── list-toolbar-button.json │ │ ├── mark-toolbar-button.json │ │ ├── markdown-plugin.json │ │ ├── markdown-to-slate-demo.json │ │ ├── media-audio-element.json │ │ ├── media-embed-element.json │ │ ├── media-file-element.json │ │ ├── media-placeholder-element.json │ │ ├── media-plugins.json │ │ ├── media-popover.json │ │ ├── media-toolbar-button.json │ │ ├── media-upload-toast.json │ │ ├── media-video-element.json │ │ ├── mention-element.json │ │ ├── mention-input-element.json │ │ ├── mention-plugin.json │ │ ├── mode-dropdown-menu.json │ │ ├── more-dropdown-menu.json │ │ ├── multiple-editors-demo.json │ │ ├── outdent-toolbar-button.json │ │ ├── paragraph-element.json │ │ ├── placeholder.json │ │ ├── plate-list-types.json │ │ ├── plate-types.json │ │ ├── plate-ui.json │ │ ├── plate.json │ │ ├── preview-markdown-demo.json │ │ ├── registry-docs.json │ │ ├── registry.json │ │ ├── remote-cursor-overlay.json │ │ ├── reset-block-type-plugin.json │ │ ├── resize-handle.json │ │ ├── search-highlight-leaf.json │ │ ├── select-editor-demo.json │ │ ├── select-editor.json │ │ ├── skip-mark-plugin.json │ │ ├── slash-input-element.json │ │ ├── slate-to-html.json │ │ ├── soft-break-plugin.json │ │ ├── suggestion-leaf.json │ │ ├── suggestion-line-break.json │ │ ├── suggestion-plugin.json │ │ ├── tabbable-demo.json │ │ ├── tabbable-plugin.json │ │ ├── table-cell-element.json │ │ ├── table-dropdown-menu.json │ │ ├── table-element.json │ │ ├── table-plugin.json │ │ ├── table-row-element.json │ │ ├── tag-element.json │ │ ├── tailwind-scrollbar-hide.json │ │ ├── toc-element.json │ │ ├── toc-plugin.json │ │ ├── todo-list-element.json │ │ ├── toggle-element.json │ │ ├── toggle-toolbar-button.json │ │ ├── toolbar.json │ │ ├── transforms.json │ │ ├── turn-into-dropdown-menu.json │ │ ├── uploadthing.json │ │ ├── use-chat.json │ │ ├── use-create-editor.json │ │ ├── use-debounce.json │ │ ├── use-is-touch-device.json │ │ ├── use-mounted.json │ │ └── version-history-demo.json │ ├── site.webmanifest │ ├── tailwind.css │ ├── web-app-manifest-192x192.png │ └── web-app-manifest-512x512.png │ ├── registry-shadcn.json │ ├── scripts │ ├── build-docs-registry.mts │ ├── build-registry.mts │ ├── capture-registry.mts │ ├── fix-import.mts │ └── tsconfig.scripts.json │ ├── src │ ├── __registry__ │ │ └── index.tsx │ ├── app │ │ ├── (app) │ │ │ ├── _components │ │ │ │ ├── announcement-button.tsx │ │ │ │ ├── home-tabs.tsx │ │ │ │ ├── installation-code.tsx │ │ │ │ ├── installation-tab.tsx │ │ │ │ └── potion-lazy-block.tsx │ │ │ ├── docs │ │ │ │ ├── [[...slug]] │ │ │ │ │ ├── doc-breadcrumb.tsx │ │ │ │ │ ├── doc-content.tsx │ │ │ │ │ ├── nav-items-grid.tsx │ │ │ │ │ └── page.tsx │ │ │ │ ├── api │ │ │ │ │ └── page.tsx │ │ │ │ ├── components │ │ │ │ │ └── page.tsx │ │ │ │ ├── examples │ │ │ │ │ ├── page.tsx │ │ │ │ │ ├── server-side │ │ │ │ │ │ └── page.tsx │ │ │ │ │ └── slate-to-html │ │ │ │ │ │ └── page.tsx │ │ │ │ ├── layout.tsx │ │ │ │ └── plugins │ │ │ │ │ └── page.tsx │ │ │ ├── e2e-examples │ │ │ │ ├── layout.tsx │ │ │ │ └── plate-controller │ │ │ │ │ └── page.tsx │ │ │ ├── editors │ │ │ │ ├── editor-description.tsx │ │ │ │ ├── layout.tsx │ │ │ │ └── page.tsx │ │ │ ├── layout.tsx │ │ │ ├── og │ │ │ │ ├── geist-regular-otf.json │ │ │ │ ├── geist-semibold-otf.json │ │ │ │ ├── geistmono-regular-otf.json │ │ │ │ └── route.tsx │ │ │ └── page.tsx │ │ ├── (blocks) │ │ │ └── blocks │ │ │ │ ├── [name] │ │ │ │ └── page.tsx │ │ │ │ └── playground │ │ │ │ └── page.tsx │ │ ├── api │ │ │ └── registry │ │ │ │ └── [name] │ │ │ │ └── route.ts │ │ ├── globals.css │ │ └── layout.tsx │ ├── assets │ │ └── fonts │ │ │ ├── CalSans-SemiBold.ttf │ │ │ ├── CalSans-SemiBold.woff │ │ │ ├── CalSans-SemiBold.woff2 │ │ │ ├── Inter-Bold.ttf │ │ │ └── Inter-Regular.ttf │ ├── components │ │ ├── analytics │ │ │ └── ga.tsx │ │ ├── api-list.tsx │ │ ├── badge-popover.tsx │ │ ├── block-copy-button.tsx │ │ ├── block-display.tsx │ │ ├── block-viewer.tsx │ │ ├── blocks-nav.tsx │ │ ├── callout.tsx │ │ ├── code-block-command.tsx │ │ ├── code-block-wrapper.tsx │ │ ├── code-tabs.tsx │ │ ├── code.tsx │ │ ├── codeblock.tsx │ │ ├── command-menu.tsx │ │ ├── component-card.tsx │ │ ├── component-example.tsx │ │ ├── component-installation.tsx │ │ ├── component-preview-pro.tsx │ │ ├── component-preview.tsx │ │ ├── component-source.tsx │ │ ├── context │ │ │ ├── check-plugin.tsx │ │ │ ├── hydrate-atoms.tsx │ │ │ ├── providers.tsx │ │ │ ├── settings-store.ts │ │ │ └── theme-provider.tsx │ │ ├── copy-button.tsx │ │ ├── copy-code-button.tsx │ │ ├── counting-numbers.tsx │ │ ├── customizer-drawer.tsx │ │ ├── customizer-tabs.tsx │ │ ├── docs-nav.tsx │ │ ├── framework-docs.tsx │ │ ├── icons.tsx │ │ ├── languages-dropdown-menu.tsx │ │ ├── link.tsx │ │ ├── main-nav.tsx │ │ ├── markdown.tsx │ │ ├── mcp-dialog.tsx │ │ ├── mdx-components.tsx │ │ ├── mobile-nav.tsx │ │ ├── mode-switcher.tsx │ │ ├── open-in-plus.tsx │ │ ├── open-in-v0.tsx │ │ ├── package-info.tsx │ │ ├── page-header.tsx │ │ ├── pager.tsx │ │ ├── playground-preview-toolbar.tsx │ │ ├── playground-preview.tsx │ │ ├── plugins-tab-content.tsx │ │ ├── project-add-button.tsx │ │ ├── promo-video.tsx │ │ ├── setting-checkbox.tsx │ │ ├── settings-toggle.tsx │ │ ├── site-footer.tsx │ │ ├── site-header.tsx │ │ ├── star-on-github.tsx │ │ ├── tailwind-indicator.tsx │ │ ├── theme-component.tsx │ │ ├── theme-customizer.tsx │ │ ├── theme-wrapper.tsx │ │ ├── themes-button.tsx │ │ ├── themes-selector-mini.tsx │ │ ├── themes-selector.tsx │ │ ├── themes-styles.tsx │ │ ├── toc.tsx │ │ ├── tree-icon.tsx │ │ ├── typography.tsx │ │ └── ui │ │ │ ├── accordion.tsx │ │ │ ├── alert-dialog.tsx │ │ │ ├── alert.tsx │ │ │ ├── aspect-ratio.tsx │ │ │ ├── avatar.tsx │ │ │ ├── badge.tsx │ │ │ ├── button.tsx │ │ │ ├── calendar.tsx │ │ │ ├── card.tsx │ │ │ ├── checkbox.tsx │ │ │ ├── codeblock.tsx │ │ │ ├── collapsible.tsx │ │ │ ├── command.tsx │ │ │ ├── context-menu.tsx │ │ │ ├── dialog.tsx │ │ │ ├── drawer.tsx │ │ │ ├── dropdown-menu.tsx │ │ │ ├── form.tsx │ │ │ ├── hover-card.tsx │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ ├── menubar.tsx │ │ │ ├── popover.tsx │ │ │ ├── radio-group.tsx │ │ │ ├── resizable.tsx │ │ │ ├── scroll-area.tsx │ │ │ ├── select.tsx │ │ │ ├── separator.tsx │ │ │ ├── sheet.tsx │ │ │ ├── sidebar.tsx │ │ │ ├── skeleton.tsx │ │ │ ├── sonner.tsx │ │ │ ├── spinner.tsx │ │ │ ├── table.tsx │ │ │ ├── tabs.tsx │ │ │ ├── toggle-group.tsx │ │ │ ├── toggle.tsx │ │ │ └── tooltip.tsx │ ├── config │ │ ├── customizer-items.ts │ │ ├── doc-to-package.ts │ │ ├── docs-api.ts │ │ ├── docs-examples.ts │ │ ├── docs-icons.tsx │ │ ├── docs-plugins.ts │ │ ├── docs-utils.ts │ │ ├── docs.ts │ │ ├── nav-to-object.ts │ │ ├── registry-to-nav.ts │ │ ├── routes.ts │ │ └── site.ts │ ├── hooks │ │ ├── use-config.ts │ │ ├── use-copy-to-clipboard.ts │ │ ├── use-fix-hydration.ts │ │ ├── use-lift-mode.ts │ │ ├── use-media-query.ts │ │ ├── use-meta-color.ts │ │ ├── use-mobile.ts │ │ ├── use-mutation-observer.ts │ │ ├── use-package-info.ts │ │ ├── use-project.ts │ │ ├── use-themes-config.ts │ │ ├── use-viewport.ts │ │ └── useLocale.ts │ ├── i18n │ │ └── getI18nValues.ts │ ├── lib │ │ ├── absoluteUrl.ts │ │ ├── blocks.ts │ │ ├── bundlephobia.ts │ │ ├── events.ts │ │ ├── fonts.ts │ │ ├── highlight-code.ts │ │ ├── registry-cache.ts │ │ ├── registry-utils.ts │ │ ├── rehype-component.ts │ │ ├── rehype-npm-command.ts │ │ ├── rehype-utils.ts │ │ ├── themes.ts │ │ ├── toc.ts │ │ ├── utils.ts │ │ └── withLocale.ts │ ├── pages │ │ ├── .gitkeep │ │ └── api │ │ │ ├── .gitkeep │ │ │ ├── components.json │ │ │ └── components.ts │ ├── registry │ │ ├── app │ │ │ └── api │ │ │ │ ├── ai │ │ │ │ ├── command │ │ │ │ │ └── route.ts │ │ │ │ └── copilot │ │ │ │ │ └── route.ts │ │ │ │ └── uploadthing │ │ │ │ └── route.ts │ │ ├── blocks │ │ │ ├── editor-ai │ │ │ │ ├── components │ │ │ │ │ └── editor │ │ │ │ │ │ ├── plate-editor.tsx │ │ │ │ │ │ └── use-create-editor.ts │ │ │ │ └── page.tsx │ │ │ ├── editor-basic │ │ │ │ ├── components │ │ │ │ │ └── editor │ │ │ │ │ │ ├── plate-editor.tsx │ │ │ │ │ │ └── use-create-editor.ts │ │ │ │ └── page.tsx │ │ │ ├── editor-select │ │ │ │ ├── components │ │ │ │ │ └── editor │ │ │ │ │ │ ├── plate-editor.tsx │ │ │ │ │ │ └── use-create-editor.ts │ │ │ │ └── page.tsx │ │ │ ├── fumadocs │ │ │ │ ├── content │ │ │ │ │ └── docs │ │ │ │ │ │ └── index.mdx │ │ │ │ ├── fumadocs-mdx-components.tsx │ │ │ │ └── mdx-plate-components.tsx │ │ │ └── slate-to-html │ │ │ │ └── page.tsx │ │ ├── components │ │ │ └── editor │ │ │ │ ├── plate-list-types.ts │ │ │ │ ├── plate-types.ts │ │ │ │ ├── plugins │ │ │ │ ├── ai-plugins.tsx │ │ │ │ ├── align-plugin.ts │ │ │ │ ├── autoformat-list-plugin.ts │ │ │ │ ├── autoformat-plugin.ts │ │ │ │ ├── basic-nodes-plugins.tsx │ │ │ │ ├── block-menu-plugins.ts │ │ │ │ ├── block-selection-plugins.tsx │ │ │ │ ├── comments-plugin.tsx │ │ │ │ ├── copilot-plugins.tsx │ │ │ │ ├── cursor-overlay-plugin.tsx │ │ │ │ ├── delete-plugins.ts │ │ │ │ ├── discussion-plugin.tsx │ │ │ │ ├── dnd-plugins.tsx │ │ │ │ ├── editor-plugins.tsx │ │ │ │ ├── equation-plugins.ts │ │ │ │ ├── exit-break-plugin.ts │ │ │ │ ├── fixed-toolbar-list-plugin.tsx │ │ │ │ ├── fixed-toolbar-plugin.tsx │ │ │ │ ├── floating-toolbar-plugin.tsx │ │ │ │ ├── indent-list-plugins.ts │ │ │ │ ├── line-height-plugin.ts │ │ │ │ ├── link-plugin.tsx │ │ │ │ ├── markdown-plugin.tsx │ │ │ │ ├── media-plugins.tsx │ │ │ │ ├── mention-plugin.ts │ │ │ │ ├── reset-block-type-plugin.ts │ │ │ │ ├── skip-mark-plugin.ts │ │ │ │ ├── soft-break-plugin.ts │ │ │ │ ├── suggestion-plugin.tsx │ │ │ │ ├── tabbable-plugin.ts │ │ │ │ ├── table-plugin.ts │ │ │ │ └── toc-plugin.ts │ │ │ │ ├── settings.tsx │ │ │ │ ├── slate-to-html.tsx │ │ │ │ ├── transforms.ts │ │ │ │ ├── use-chat.ts │ │ │ │ ├── use-create-editor-list.ts │ │ │ │ └── use-create-editor.ts │ │ ├── examples │ │ │ ├── cards │ │ │ │ ├── cards-toolbar.tsx │ │ │ │ └── index.tsx │ │ │ ├── collaboration-demo.tsx │ │ │ ├── controlled-demo.tsx │ │ │ ├── copilot-demo.tsx │ │ │ ├── demo.tsx │ │ │ ├── editable-voids-demo.tsx │ │ │ ├── editor-default.tsx │ │ │ ├── editor-disabled.tsx │ │ │ ├── editor-full-width.tsx │ │ │ ├── excalidraw-demo.tsx │ │ │ ├── find-replace-demo.tsx │ │ │ ├── hundreds-blocks-demo.tsx │ │ │ ├── hundreds-editors-demo.tsx │ │ │ ├── image-pro-demo.tsx │ │ │ ├── installation-next-01-editor-demo.tsx │ │ │ ├── installation-next-02-marks-demo.tsx │ │ │ ├── installation-next-03-elements-demo.tsx │ │ │ ├── installation-next-04-value-demo.tsx │ │ │ ├── list-demo.tsx │ │ │ ├── markdown-to-slate-demo.tsx │ │ │ ├── multiple-editors-demo.tsx │ │ │ ├── playground-demo.tsx │ │ │ ├── potion-iframe-demo.tsx │ │ │ ├── preview-markdown-demo.tsx │ │ │ ├── pro-iframe-demo.tsx │ │ │ ├── select-editor-demo.tsx │ │ │ ├── single-line-demo.tsx │ │ │ ├── tabbable-demo.tsx │ │ │ ├── table-nomerge-demo.tsx │ │ │ ├── values │ │ │ │ ├── ai-value.tsx │ │ │ │ ├── align-value.tsx │ │ │ │ ├── autoformat-value.tsx │ │ │ │ ├── basic-elements-value.tsx │ │ │ │ ├── basic-marks-value.tsx │ │ │ │ ├── basic-nodes-value.tsx │ │ │ │ ├── block-menu-value.tsx │ │ │ │ ├── block-selection-value.tsx │ │ │ │ ├── cn │ │ │ │ │ ├── ai-value.tsx │ │ │ │ │ ├── align-value.tsx │ │ │ │ │ ├── autoformat-value.tsx │ │ │ │ │ ├── basic-elements-value.tsx │ │ │ │ │ ├── basic-marks-value.tsx │ │ │ │ │ ├── basic-nodes-value.tsx │ │ │ │ │ ├── block-menu-value.tsx │ │ │ │ │ ├── block-selection-value.tsx │ │ │ │ │ ├── column-value.tsx │ │ │ │ │ ├── comments-value.tsx │ │ │ │ │ ├── copilot-value.tsx │ │ │ │ │ ├── cursor-overlay-value.tsx │ │ │ │ │ ├── date-value.tsx │ │ │ │ │ ├── demo-values.tsx │ │ │ │ │ ├── deserialize-csv-value.tsx │ │ │ │ │ ├── deserialize-docx-value.tsx │ │ │ │ │ ├── deserialize-html-value.tsx │ │ │ │ │ ├── deserialize-md-value.tsx │ │ │ │ │ ├── dnd-value.tsx │ │ │ │ │ ├── editable-voids-value.tsx │ │ │ │ │ ├── emoji-value.tsx │ │ │ │ │ ├── equation-value.tsx │ │ │ │ │ ├── excalidraw-value.tsx │ │ │ │ │ ├── exit-break-value.tsx │ │ │ │ │ ├── find-replace-value.tsx │ │ │ │ │ ├── floating-toolbar-value.tsx │ │ │ │ │ ├── font-value.tsx │ │ │ │ │ ├── highlight-value.tsx │ │ │ │ │ ├── horizontal-rule-value.tsx │ │ │ │ │ ├── huge-document-value.tsx │ │ │ │ │ ├── iframe-value.tsx │ │ │ │ │ ├── indent-list-value.tsx │ │ │ │ │ ├── indent-value.tsx │ │ │ │ │ ├── kbd-value.tsx │ │ │ │ │ ├── line-height-value.tsx │ │ │ │ │ ├── link-value.tsx │ │ │ │ │ ├── list-value.tsx │ │ │ │ │ ├── media-value.tsx │ │ │ │ │ ├── mention-value.tsx │ │ │ │ │ ├── multi-editors-value.tsx │ │ │ │ │ ├── placeholder-value.tsx │ │ │ │ │ ├── playground-value.tsx │ │ │ │ │ ├── preview-md-value.tsx │ │ │ │ │ ├── single-line-value.tsx │ │ │ │ │ ├── slash-command-value.tsx │ │ │ │ │ ├── soft-break-value.tsx │ │ │ │ │ ├── suggestion-value.ts │ │ │ │ │ ├── tabbable-value.tsx │ │ │ │ │ ├── table-value.tsx │ │ │ │ │ ├── toc-value.tsx │ │ │ │ │ └── toggle-value.tsx │ │ │ │ ├── column-value.tsx │ │ │ │ ├── comments-value.tsx │ │ │ │ ├── copilot-value.tsx │ │ │ │ ├── cursor-overlay-value.tsx │ │ │ │ ├── date-value.tsx │ │ │ │ ├── demo-values.tsx │ │ │ │ ├── deserialize-csv-value.tsx │ │ │ │ ├── deserialize-docx-value.tsx │ │ │ │ ├── deserialize-html-value.tsx │ │ │ │ ├── deserialize-md-value.tsx │ │ │ │ ├── dnd-value.tsx │ │ │ │ ├── editable-voids-value.tsx │ │ │ │ ├── emoji-value.tsx │ │ │ │ ├── equation-value.tsx │ │ │ │ ├── excalidraw-value.tsx │ │ │ │ ├── exit-break-value.tsx │ │ │ │ ├── find-replace-value.tsx │ │ │ │ ├── floating-toolbar-value.tsx │ │ │ │ ├── font-value.tsx │ │ │ │ ├── highlight-value.tsx │ │ │ │ ├── horizontal-rule-value.tsx │ │ │ │ ├── huge-document-value.tsx │ │ │ │ ├── iframe-value.tsx │ │ │ │ ├── indent-list-value.tsx │ │ │ │ ├── indent-value.tsx │ │ │ │ ├── kbd-value.tsx │ │ │ │ ├── line-height-value.tsx │ │ │ │ ├── link-value.tsx │ │ │ │ ├── list-value.tsx │ │ │ │ ├── media-value.tsx │ │ │ │ ├── mention-value.tsx │ │ │ │ ├── multi-editors-value.tsx │ │ │ │ ├── placeholder-value.tsx │ │ │ │ ├── playground-value.tsx │ │ │ │ ├── preview-md-value.tsx │ │ │ │ ├── single-line-value.tsx │ │ │ │ ├── slash-command-value.tsx │ │ │ │ ├── soft-break-value.tsx │ │ │ │ ├── tabbable-value.tsx │ │ │ │ ├── table-value.tsx │ │ │ │ ├── toc-value.tsx │ │ │ │ └── toggle-value.tsx │ │ │ └── version-history-demo.tsx │ │ ├── hooks │ │ │ ├── use-debounce.ts │ │ │ ├── use-is-touch-device.ts │ │ │ ├── use-mounted.ts │ │ │ └── use-upload-file.ts │ │ ├── lib │ │ │ ├── create-html-document.ts │ │ │ └── uploadthing.ts │ │ ├── registry-blocks.ts │ │ ├── registry-components.ts │ │ ├── registry-examples.ts │ │ ├── registry-hooks.ts │ │ ├── registry-icons.ts │ │ ├── registry-lib.ts │ │ ├── registry-pro.ts │ │ ├── registry-styles.ts │ │ ├── registry-ui.ts │ │ ├── registry.ts │ │ └── ui │ │ │ ├── ai-anchor-element.tsx │ │ │ ├── ai-chat-editor.tsx │ │ │ ├── ai-leaf.tsx │ │ │ ├── ai-loading-bar.tsx │ │ │ ├── ai-menu-items.tsx │ │ │ ├── ai-menu.tsx │ │ │ ├── ai-toolbar-button.tsx │ │ │ ├── align-dropdown-menu.tsx │ │ │ ├── block-context-menu.tsx │ │ │ ├── block-discussion.tsx │ │ │ ├── block-selection.tsx │ │ │ ├── block-suggestion.tsx │ │ │ ├── blockquote-element-static.tsx │ │ │ ├── blockquote-element.tsx │ │ │ ├── callout-element-static.tsx │ │ │ ├── callout-element.tsx │ │ │ ├── caption.tsx │ │ │ ├── checkbox-static.tsx │ │ │ ├── code-block-combobox.tsx │ │ │ ├── code-block-element-static.tsx │ │ │ ├── code-block-element.tsx │ │ │ ├── code-leaf-static.tsx │ │ │ ├── code-leaf.tsx │ │ │ ├── code-line-element-static.tsx │ │ │ ├── code-line-element.tsx │ │ │ ├── code-syntax-leaf-static.tsx │ │ │ ├── code-syntax-leaf.tsx │ │ │ ├── color-constants.ts │ │ │ ├── color-dropdown-menu-items.tsx │ │ │ ├── color-dropdown-menu.tsx │ │ │ ├── color-input.tsx │ │ │ ├── color-picker.tsx │ │ │ ├── colors-custom.tsx │ │ │ ├── column-element-static.tsx │ │ │ ├── column-element.tsx │ │ │ ├── column-group-element-static.tsx │ │ │ ├── column-group-element.tsx │ │ │ ├── comment-create-form.tsx │ │ │ ├── comment-leaf-static.tsx │ │ │ ├── comment-leaf.tsx │ │ │ ├── comment-toolbar-button.tsx │ │ │ ├── comment.tsx │ │ │ ├── cursor-overlay.tsx │ │ │ ├── date-element-static.tsx │ │ │ ├── date-element.tsx │ │ │ ├── draggable.tsx │ │ │ ├── editor-static.tsx │ │ │ ├── editor.tsx │ │ │ ├── emoji-dropdown-menu.tsx │ │ │ ├── emoji-icons.tsx │ │ │ ├── emoji-input-element.tsx │ │ │ ├── emoji-picker-content.tsx │ │ │ ├── emoji-picker-navigation.tsx │ │ │ ├── emoji-picker-preview.tsx │ │ │ ├── emoji-picker-search-and-clear.tsx │ │ │ ├── emoji-picker-search-bar.tsx │ │ │ ├── emoji-picker.tsx │ │ │ ├── emoji-toolbar-dropdown.tsx │ │ │ ├── equation-element-static.tsx │ │ │ ├── equation-element.tsx │ │ │ ├── equation-popover.tsx │ │ │ ├── excalidraw-element.tsx │ │ │ ├── export-toolbar-button.tsx │ │ │ ├── fixed-toolbar-buttons.tsx │ │ │ ├── fixed-toolbar-list-buttons.tsx │ │ │ ├── fixed-toolbar.tsx │ │ │ ├── floating-toolbar-buttons.tsx │ │ │ ├── floating-toolbar.tsx │ │ │ ├── font-size-toolbar-button.tsx │ │ │ ├── ghost-text.tsx │ │ │ ├── heading-element-static.tsx │ │ │ ├── heading-element.tsx │ │ │ ├── highlight-leaf-static.tsx │ │ │ ├── highlight-leaf.tsx │ │ │ ├── history-toolbar-button.tsx │ │ │ ├── hr-element-static.tsx │ │ │ ├── hr-element.tsx │ │ │ ├── image-element-static.tsx │ │ │ ├── image-element.tsx │ │ │ ├── image-preview.tsx │ │ │ ├── import-toolbar-button.tsx │ │ │ ├── indent-fire-marker.tsx │ │ │ ├── indent-list-toolbar-button.tsx │ │ │ ├── indent-todo-marker-static.tsx │ │ │ ├── indent-todo-marker.tsx │ │ │ ├── indent-todo-toolbar-button.tsx │ │ │ ├── indent-toolbar-button.tsx │ │ │ ├── inline-combobox.tsx │ │ │ ├── inline-equation-element-static.tsx │ │ │ ├── inline-equation-element.tsx │ │ │ ├── inline-equation-toolbar-button.tsx │ │ │ ├── insert-dropdown-menu.tsx │ │ │ ├── kbd-leaf-static.tsx │ │ │ ├── kbd-leaf.tsx │ │ │ ├── line-height-dropdown-menu.tsx │ │ │ ├── link-element-static.tsx │ │ │ ├── link-element.tsx │ │ │ ├── link-floating-toolbar.tsx │ │ │ ├── link-toolbar-button.tsx │ │ │ ├── list-element.tsx │ │ │ ├── list-indent-toolbar-button.tsx │ │ │ ├── list-toolbar-button.tsx │ │ │ ├── mark-toolbar-button.tsx │ │ │ ├── media-audio-element-static.tsx │ │ │ ├── media-audio-element.tsx │ │ │ ├── media-embed-element.tsx │ │ │ ├── media-file-element-static.tsx │ │ │ ├── media-file-element.tsx │ │ │ ├── media-placeholder-element.tsx │ │ │ ├── media-popover.tsx │ │ │ ├── media-toolbar-button.tsx │ │ │ ├── media-upload-toast.tsx │ │ │ ├── media-video-element-static.tsx │ │ │ ├── media-video-element.tsx │ │ │ ├── mention-element-static.tsx │ │ │ ├── mention-element.tsx │ │ │ ├── mention-input-element.tsx │ │ │ ├── mode-dropdown-menu.tsx │ │ │ ├── more-dropdown-menu.tsx │ │ │ ├── outdent-toolbar-button.tsx │ │ │ ├── paragraph-element-static.tsx │ │ │ ├── paragraph-element.tsx │ │ │ ├── placeholder.tsx │ │ │ ├── remote-cursor-overlay.tsx │ │ │ ├── resize-handle.tsx │ │ │ ├── search-highlight-leaf.tsx │ │ │ ├── select-editor.tsx │ │ │ ├── slash-input-element.tsx │ │ │ ├── suggestion-leaf-static.tsx │ │ │ ├── suggestion-leaf.tsx │ │ │ ├── suggestion-line-break.tsx │ │ │ ├── suggestion-toolbar-button.tsx │ │ │ ├── table-cell-element-static.tsx │ │ │ ├── table-cell-element.tsx │ │ │ ├── table-dropdown-menu.tsx │ │ │ ├── table-element-static.tsx │ │ │ ├── table-element.tsx │ │ │ ├── table-icons.tsx │ │ │ ├── table-row-element-static.tsx │ │ │ ├── table-row-element.tsx │ │ │ ├── tag-element.tsx │ │ │ ├── toc-element-static.tsx │ │ │ ├── toc-element.tsx │ │ │ ├── todo-list-element.tsx │ │ │ ├── toggle-element-static.tsx │ │ │ ├── toggle-element.tsx │ │ │ ├── toggle-toolbar-button.tsx │ │ │ ├── toolbar.tsx │ │ │ └── turn-into-dropdown-menu.tsx │ └── types │ │ ├── nav.ts │ │ └── unist.ts │ └── tsconfig.json ├── docs ├── ai.cn.mdx ├── ai.mdx ├── alignment.cn.mdx ├── alignment.mdx ├── api │ ├── cn.cn.mdx │ ├── cn.mdx │ ├── core.cn.mdx │ ├── core.mdx │ ├── core │ │ ├── plate-components.cn.mdx │ │ ├── plate-components.mdx │ │ ├── plate-controller.cn.mdx │ │ ├── plate-controller.mdx │ │ ├── plate-editor.cn.mdx │ │ ├── plate-editor.mdx │ │ ├── plate-plugin.cn.mdx │ │ ├── plate-plugin.mdx │ │ ├── plate-store.cn.mdx │ │ └── plate-store.mdx │ ├── floating.cn.mdx │ ├── floating.mdx │ ├── plate.cn.mdx │ ├── plate.mdx │ ├── react-utils.cn.mdx │ ├── react-utils.mdx │ ├── resizable.cn.mdx │ ├── resizable.mdx │ ├── slate.cn.mdx │ ├── slate.mdx │ ├── slate │ │ ├── editor-api.cn.mdx │ │ ├── editor-api.mdx │ │ ├── editor-transforms.cn.mdx │ │ ├── editor-transforms.mdx │ │ ├── element.cn.mdx │ │ ├── element.mdx │ │ ├── location-ref.cn.mdx │ │ ├── location-ref.mdx │ │ ├── location.cn.mdx │ │ ├── location.mdx │ │ ├── node.cn.mdx │ │ ├── node.mdx │ │ ├── operation.cn.mdx │ │ ├── operation.mdx │ │ ├── path.cn.mdx │ │ ├── path.mdx │ │ ├── point.cn.mdx │ │ ├── point.mdx │ │ ├── range.cn.mdx │ │ ├── range.mdx │ │ ├── text.cn.mdx │ │ └── text.mdx │ ├── utils.cn.mdx │ └── utils.mdx ├── autoformat.cn.mdx ├── autoformat.mdx ├── basic-elements.cn.mdx ├── basic-elements.mdx ├── basic-marks.cn.mdx ├── basic-marks.mdx ├── block-menu.cn.mdx ├── block-menu.mdx ├── block-selection.cn.mdx ├── block-selection.mdx ├── callout.cn.mdx ├── callout.mdx ├── caption.cn.mdx ├── caption.mdx ├── collaboration.cn.mdx ├── collaboration.mdx ├── column.cn.mdx ├── column.mdx ├── combobox.cn.mdx ├── combobox.mdx ├── comments.cn.mdx ├── comments.mdx ├── components │ ├── changelog.cn.mdx │ └── changelog.mdx ├── controlled.cn.mdx ├── controlled.mdx ├── copilot.cn.mdx ├── copilot.mdx ├── csv.cn.mdx ├── csv.mdx ├── cursor-overlay.cn.mdx ├── cursor-overlay.mdx ├── date.cn.mdx ├── date.mdx ├── debugging.cn.mdx ├── debugging.mdx ├── dnd.cn.mdx ├── dnd.mdx ├── docx.cn.mdx ├── docx.mdx ├── editor-methods.cn.mdx ├── editor-methods.mdx ├── editor.cn.mdx ├── editor.mdx ├── emoji.cn.mdx ├── emoji.mdx ├── equation.cn.mdx ├── equation.mdx ├── examples │ ├── collaboration-example.cn.mdx │ ├── collaboration-example.mdx │ ├── editable-voids.cn.mdx │ ├── editable-voids.mdx │ ├── export.cn.mdx │ ├── export.mdx │ ├── hundreds-blocks.cn.mdx │ ├── hundreds-blocks.mdx │ ├── hundreds-editors.cn.mdx │ ├── hundreds-editors.mdx │ ├── preview-markdown.cn.mdx │ ├── preview-markdown.mdx │ ├── version-history.cn.mdx │ └── version-history.mdx ├── excalidraw.cn.mdx ├── excalidraw.mdx ├── exit-break.cn.mdx ├── exit-break.mdx ├── find-replace.cn.mdx ├── find-replace.mdx ├── font.cn.mdx ├── font.mdx ├── forced-layout.cn.mdx ├── forced-layout.mdx ├── form.cn.mdx ├── form.mdx ├── highlight.cn.mdx ├── highlight.mdx ├── horizontal-rule.cn.mdx ├── horizontal-rule.mdx ├── html.cn.mdx ├── html.mdx ├── img.png ├── indent-list.cn.mdx ├── indent-list.mdx ├── indent.cn.mdx ├── indent.mdx ├── index.cn.mdx ├── index.mdx ├── installation.cn.mdx ├── installation.mdx ├── installation │ ├── docs.mdx │ ├── manual.cn.mdx │ ├── manual.mdx │ ├── next.cn.mdx │ ├── next.mdx │ ├── node.cn.mdx │ ├── node.mdx │ ├── plate-ui.cn.mdx │ ├── plate-ui.mdx │ ├── react.cn.mdx │ ├── react.mdx │ ├── rsc.cn.mdx │ └── rsc.mdx ├── kbd.cn.mdx ├── kbd.mdx ├── line-height.cn.mdx ├── line-height.mdx ├── link.cn.mdx ├── link.mdx ├── list.cn.mdx ├── list.mdx ├── markdown.cn.mdx ├── markdown.mdx ├── mcp.cn.mdx ├── mcp.mdx ├── media.cn.mdx ├── media.mdx ├── mention.cn.mdx ├── mention.mdx ├── migration │ ├── slate-to-plate.cn.mdx │ └── slate-to-plate.mdx ├── multi-select.cn.mdx ├── multi-select.mdx ├── node-id.cn.mdx ├── node-id.mdx ├── playwright.cn.mdx ├── playwright.mdx ├── plugin-components.cn.mdx ├── plugin-components.mdx ├── plugin-context.cn.mdx ├── plugin-context.mdx ├── plugin-methods.cn.mdx ├── plugin-methods.mdx ├── plugin-shortcuts.cn.mdx ├── plugin-shortcuts.mdx ├── plugin.cn.mdx ├── plugin.mdx ├── reset-node.cn.mdx ├── reset-node.mdx ├── select.cn.mdx ├── select.mdx ├── single-line.cn.mdx ├── single-line.mdx ├── slash-command.cn.mdx ├── slash-command.mdx ├── soft-break.cn.mdx ├── soft-break.mdx ├── static.cn.mdx ├── static.mdx ├── suggestion.cn.mdx ├── suggestion.mdx ├── tabbable.cn.mdx ├── tabbable.mdx ├── table.cn.mdx ├── table.mdx ├── toc.cn.mdx ├── toc.mdx ├── toggle.cn.mdx ├── toggle.mdx ├── trailing-block.cn.mdx ├── trailing-block.mdx ├── troubleshooting.cn.mdx ├── troubleshooting.mdx ├── typescript.cn.mdx ├── typescript.mdx ├── unit-testing.cn.mdx └── unit-testing.mdx ├── eslint.config.mjs ├── jest.config.cjs ├── languine.json ├── package.json ├── packages ├── ai │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseAIPlugin.ts │ │ │ ├── index.ts │ │ │ ├── streaming │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── streamInsertChunk.spec.tsx.snap │ │ │ │ ├── __tests__ │ │ │ │ │ └── createTestEditor.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── streamDeserializeInlineMd.ts │ │ │ │ ├── streamDeserializeMd.spec.tsx │ │ │ │ ├── streamDeserializeMd.ts │ │ │ │ ├── streamInsertChunk.spec.tsx │ │ │ │ ├── streamInsertChunk.ts │ │ │ │ ├── streamSerializeMd.spec.tsx │ │ │ │ ├── streamSerializeMd.ts │ │ │ │ └── utils │ │ │ │ │ ├── escapeInput.ts │ │ │ │ │ ├── getIndentListNode.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── isSameNode.ts │ │ │ │ │ ├── nodesWithProps.ts │ │ │ │ │ ├── utils.spec.ts │ │ │ │ │ └── utils.ts │ │ │ └── transforms │ │ │ │ ├── index.ts │ │ │ │ ├── insertAINodes.ts │ │ │ │ ├── removeAIMarks.ts │ │ │ │ ├── removeAINodes.ts │ │ │ │ ├── undoAI.ts │ │ │ │ └── withAIBatch.ts │ │ └── react │ │ │ ├── ai-chat │ │ │ ├── AIChatPlugin.ts │ │ │ ├── hooks │ │ │ │ ├── index.ts │ │ │ │ ├── useAIChatEditor.ts │ │ │ │ ├── useChatChunk.ts │ │ │ │ └── useEditorChat.ts │ │ │ ├── index.ts │ │ │ ├── transforms │ │ │ │ ├── acceptAIChat.ts │ │ │ │ ├── index.ts │ │ │ │ ├── insertBelowAIChat.ts │ │ │ │ ├── removeAnchorAIChat.ts │ │ │ │ └── replaceSelectionAIChat.ts │ │ │ ├── useAIChatHook.ts │ │ │ ├── utils │ │ │ │ ├── getEditorPrompt.ts │ │ │ │ ├── getLastAssistantMessage.ts │ │ │ │ ├── getMarkdown.ts │ │ │ │ ├── index.ts │ │ │ │ ├── resetAIChat.ts │ │ │ │ └── submitAIChat.ts │ │ │ └── withAIChat.ts │ │ │ ├── ai │ │ │ ├── AIPlugin.ts │ │ │ └── index.ts │ │ │ ├── copilot │ │ │ ├── CopilotPlugin.tsx │ │ │ ├── index.ts │ │ │ ├── renderCopilotBelowNodes.tsx │ │ │ ├── transforms │ │ │ │ ├── acceptCopilot.ts │ │ │ │ ├── acceptCopilotNextWord.ts │ │ │ │ └── index.ts │ │ │ ├── utils │ │ │ │ ├── callCompletionApi.ts │ │ │ │ ├── getNextWord.spec.ts │ │ │ │ ├── getNextWord.ts │ │ │ │ ├── index.ts │ │ │ │ ├── triggerCopilotSuggestion.ts │ │ │ │ └── withoutAbort.ts │ │ │ └── withCopilot.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── alignment │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseAlignPlugin.ts │ │ │ ├── __tests__ │ │ │ │ └── setAlign │ │ │ │ │ ├── center.spec.tsx │ │ │ │ │ ├── left.spec.tsx │ │ │ │ │ └── no-type.spec.tsx │ │ │ ├── index.ts │ │ │ ├── transforms │ │ │ │ ├── index.ts │ │ │ │ └── setAlign.ts │ │ │ └── types.ts │ │ └── react │ │ │ ├── AlignPlugin.tsx │ │ │ ├── index.ts │ │ │ └── useAlignDropdownMenu.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── autoformat │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseAutoformatPlugin.ts │ │ │ ├── __tests__ │ │ │ │ └── withAutoformat │ │ │ │ │ ├── block │ │ │ │ │ ├── blockquote.spec.tsx │ │ │ │ │ ├── code-block.spec.tsx │ │ │ │ │ ├── heading.spec.tsx │ │ │ │ │ ├── list.spec.tsx │ │ │ │ │ ├── preFormat.spec.tsx │ │ │ │ │ └── singleCharTrigger.spec.tsx │ │ │ │ │ ├── ignoreTrim.spec.tsx │ │ │ │ │ ├── invalid.spec.tsx │ │ │ │ │ ├── mark │ │ │ │ │ ├── bold.spec.tsx │ │ │ │ │ ├── code.spec.tsx │ │ │ │ │ ├── italic.spec.tsx │ │ │ │ │ ├── multiple-marks.spec.tsx │ │ │ │ │ └── strikethrough.spec.tsx │ │ │ │ │ ├── markup.spec.tsx │ │ │ │ │ ├── text.spec.tsx │ │ │ │ │ └── trigger.spec.tsx │ │ │ ├── index.ts │ │ │ ├── rules │ │ │ │ ├── autoformatArrow.ts │ │ │ │ ├── autoformatLegal.ts │ │ │ │ ├── autoformatPunctuation.ts │ │ │ │ ├── autoformatSmartQuotes.ts │ │ │ │ ├── index.ts │ │ │ │ └── math │ │ │ │ │ ├── autoformatComparison.ts │ │ │ │ │ ├── autoformatEquality.ts │ │ │ │ │ ├── autoformatFraction.ts │ │ │ │ │ ├── autoformatMath.ts │ │ │ │ │ ├── autoformatOperation.ts │ │ │ │ │ ├── autoformatSubscript.ts │ │ │ │ │ ├── autoformatSuperscript.ts │ │ │ │ │ └── index.ts │ │ │ ├── transforms │ │ │ │ ├── autoformatBlock.ts │ │ │ │ ├── autoformatMark.ts │ │ │ │ ├── autoformatText.ts │ │ │ │ └── index.ts │ │ │ ├── types.ts │ │ │ ├── utils │ │ │ │ ├── getMatchPoints.ts │ │ │ │ ├── getMatchRange.ts │ │ │ │ ├── index.ts │ │ │ │ └── isPreviousCharacterEmpty.ts │ │ │ └── withAutoformat.ts │ │ └── react │ │ │ ├── AutoformatPlugin.tsx │ │ │ ├── index.ts │ │ │ └── onKeyDownAutoformat.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── basic-elements │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseBasicElementsPlugin.ts │ │ │ └── index.ts │ │ └── react │ │ │ ├── BasicElementsPlugin.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── basic-marks │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseBasicMarksPlugin.ts │ │ │ ├── BaseBoldPlugin.ts │ │ │ ├── BaseCodePlugin.ts │ │ │ ├── BaseItalicPlugin.ts │ │ │ ├── BaseSkipMarkPlugin.spec.tsx │ │ │ ├── BaseSkipMarkPlugin.ts │ │ │ ├── BaseStrikethroughPlugin.ts │ │ │ ├── BaseSubscriptPlugin.ts │ │ │ ├── BaseSuperscriptPlugin.ts │ │ │ ├── BaseUnderlinePlugin.ts │ │ │ └── index.ts │ │ └── react │ │ │ ├── BasicMarksPlugin.tsx │ │ │ ├── BoldPlugin.tsx │ │ │ ├── CodePlugin.tsx │ │ │ ├── ItalicPlugin.tsx │ │ │ ├── SkipMarkPlugin.ts │ │ │ ├── StrikethroughPlugin.tsx │ │ │ ├── SubscriptPlugin.tsx │ │ │ ├── SuperscriptPlugin.tsx │ │ │ ├── UnderlinePlugin.tsx │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── block-quote │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseBlockquotePlugin.ts │ │ │ ├── index.ts │ │ │ └── withBlockquote.ts │ │ └── react │ │ │ ├── BlockquotePlugin.tsx │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── break │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── exit-break │ │ │ │ ├── BaseExitBreakPlugin.ts │ │ │ │ ├── index.ts │ │ │ │ ├── queries │ │ │ │ │ ├── exitBreakAtEdges.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── transforms │ │ │ │ │ ├── exitBreak.ts │ │ │ │ │ └── index.ts │ │ │ │ └── types.ts │ │ │ ├── index.ts │ │ │ ├── single-line │ │ │ │ ├── BaseSingleLinePlugin.ts │ │ │ │ ├── index.ts │ │ │ │ └── withSingleLine.ts │ │ │ └── soft-break │ │ │ │ ├── BaseSoftBreakPlugin.ts │ │ │ │ └── index.ts │ │ └── react │ │ │ ├── exit-break │ │ │ ├── ExitBreakPlugin.tsx │ │ │ ├── __tests__ │ │ │ │ └── onKeyDownExitBreak │ │ │ │ │ ├── end.spec.tsx │ │ │ │ │ ├── invalid-hotkey.spec.tsx │ │ │ │ │ ├── invalid-query.spec.tsx │ │ │ │ │ ├── start-end-not-valid.spec.tsx │ │ │ │ │ ├── start.spec.tsx │ │ │ │ │ ├── valid-before.spec.tsx │ │ │ │ │ ├── valid.spec.tsx │ │ │ │ │ └── without-selection.spec.tsx │ │ │ ├── index.ts │ │ │ └── onKeyDownExitBreak.ts │ │ │ ├── index.ts │ │ │ ├── single-line │ │ │ ├── SingleLinePlugin.tsx │ │ │ ├── __tests__ │ │ │ │ └── onKeyDownSingleLine │ │ │ │ │ └── enter.spec.tsx │ │ │ ├── index.ts │ │ │ └── onKeyDownSingleLine.ts │ │ │ └── soft-break │ │ │ ├── SoftBreakPlugin.tsx │ │ │ ├── __tests__ │ │ │ └── onKeyDownSoftBreak │ │ │ │ ├── invalid-hotkey.spec.tsx │ │ │ │ ├── invalid-query.spec.tsx │ │ │ │ └── valid.spec.tsx │ │ │ ├── index.ts │ │ │ └── onKeyDownSoftBreak.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── callout │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseCalloutPlugin.ts │ │ │ ├── index.ts │ │ │ └── transforms │ │ │ │ ├── index.ts │ │ │ │ └── insertCallout.ts │ │ └── react │ │ │ ├── CalloutPlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ └── useCalloutEmojiPicker.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── caption │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseCaptionPlugin.ts │ │ │ ├── TCaptionElement.ts │ │ │ ├── index.ts │ │ │ └── withCaption.ts │ │ └── react │ │ │ ├── CaptionPlugin.tsx │ │ │ ├── components │ │ │ ├── Caption.tsx │ │ │ ├── CaptionButton.tsx │ │ │ ├── CaptionTextarea.tsx │ │ │ ├── TextareaAutosize.tsx │ │ │ └── index.ts │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ └── useCaptionString.ts │ │ │ ├── index.ts │ │ │ ├── onKeyDownCaption.ts │ │ │ └── utils │ │ │ ├── index.ts │ │ │ └── showCaption.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── cmdk │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── cmdk.tsx │ │ ├── index.ts │ │ └── internal │ │ │ └── command-score.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── cn │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── cn.ts │ │ ├── index.tsx │ │ ├── withCn.tsx │ │ ├── withProps.tsx │ │ └── withVariants.tsx │ ├── tsconfig.build.json │ └── tsconfig.json ├── code-block │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseCodeBlockPlugin.ts │ │ │ ├── deserializer │ │ │ │ ├── htmlDeserializerCodeBlock.ts │ │ │ │ └── index.ts │ │ │ ├── formatter │ │ │ │ ├── formatter.ts │ │ │ │ ├── index.ts │ │ │ │ ├── jsonFormatter.spec.tsx │ │ │ │ └── jsonFormatter.ts │ │ │ ├── index.ts │ │ │ ├── queries │ │ │ │ ├── getCodeLineEntry.ts │ │ │ │ ├── getIndentDepth.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isCodeBlockEmpty.spec.tsx │ │ │ │ ├── isCodeBlockEmpty.ts │ │ │ │ ├── isSelectionAtCodeBlockStart.spec.tsx │ │ │ │ └── isSelectionAtCodeBlockStart.ts │ │ │ ├── setCodeBlockToDecorations.spec.ts │ │ │ ├── setCodeBlockToDecorations.ts │ │ │ ├── transforms │ │ │ │ ├── deleteStartSpace.ts │ │ │ │ ├── indentCodeLine.spec.tsx │ │ │ │ ├── indentCodeLine.ts │ │ │ │ ├── index.ts │ │ │ │ ├── insertCodeBlock.spec.tsx │ │ │ │ ├── insertCodeBlock.ts │ │ │ │ ├── insertCodeLine.spec.tsx │ │ │ │ ├── insertCodeLine.ts │ │ │ │ ├── insertEmptyCodeBlock.spec.tsx │ │ │ │ ├── insertEmptyCodeBlock.ts │ │ │ │ ├── outdentCodeLine.spec.tsx │ │ │ │ ├── outdentCodeLine.ts │ │ │ │ ├── toggleCodeBlock.spec.tsx │ │ │ │ ├── toggleCodeBlock.ts │ │ │ │ ├── unwrapCodeBlock.spec.tsx │ │ │ │ └── unwrapCodeBlock.ts │ │ │ ├── types.ts │ │ │ ├── withCodeBlock.spec.tsx │ │ │ ├── withCodeBlock.ts │ │ │ ├── withInsertDataCodeBlock.spec.tsx │ │ │ ├── withInsertDataCodeBlock.ts │ │ │ ├── withInsertFragmentCodeBlock.spec.tsx │ │ │ ├── withInsertFragmentCodeBlock.ts │ │ │ ├── withNormalizeCodeBlock.spec.tsx │ │ │ └── withNormalizeCodeBlock.tsx │ │ └── react │ │ │ ├── CodeBlockPlugin.spec.tsx │ │ │ ├── CodeBlockPlugin.tsx │ │ │ ├── index.ts │ │ │ └── onKeyDownCodeBlock.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── combobox │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ ├── utils │ │ │ │ ├── filterWords.spec.ts │ │ │ │ ├── filterWords.ts │ │ │ │ └── index.ts │ │ │ ├── withTriggerCombobox.spec.tsx │ │ │ └── withTriggerCombobox.ts │ │ └── react │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useComboboxInput.ts │ │ │ └── useHTMLInputCursorState.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── comments │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseCommentsPlugin.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ ├── utils │ │ │ │ ├── getCommentCount.ts │ │ │ │ ├── getCommentKey.ts │ │ │ │ ├── getCommentKeyId.ts │ │ │ │ ├── getCommentKeys.ts │ │ │ │ ├── getDraftCommentKey.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isCommentKey.ts │ │ │ │ ├── isCommentNodeById.ts │ │ │ │ └── isCommentText.ts │ │ │ └── withComments.ts │ │ └── react │ │ │ ├── CommentsPlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ └── useCommentId.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── core │ ├── .npmignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── internal │ │ │ ├── hooks │ │ │ │ └── usePlateInstancesWarn.ts │ │ │ ├── plugin │ │ │ │ ├── pipeInjectNodeProps.tsx │ │ │ │ ├── pipeInsertFragment.ts │ │ │ │ ├── pipeNormalizeInitialValue.spec.tsx │ │ │ │ ├── pipeNormalizeInitialValue.ts │ │ │ │ ├── pipeTransformData.ts │ │ │ │ ├── pipeTransformFragment.ts │ │ │ │ ├── pluginInjectNodeProps.ts │ │ │ │ ├── resolveCreatePluginTest.ts │ │ │ │ ├── resolvePlugin.spec.ts │ │ │ │ ├── resolvePlugin.ts │ │ │ │ ├── resolvePlugins-store.spec.tsx │ │ │ │ ├── resolvePlugins.spec.tsx │ │ │ │ └── resolvePlugins.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ │ ├── callOrReturn.ts │ │ │ │ ├── isFunction.ts │ │ │ │ ├── mergeDeep.ts │ │ │ │ └── mergePlugins.ts │ │ ├── lib │ │ │ ├── editor │ │ │ │ ├── SlateEditor.ts │ │ │ │ ├── SlateEditorMethods.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── withSlate.spec.ts │ │ │ │ └── withSlate.ts │ │ │ ├── index.ts │ │ │ ├── libs │ │ │ │ ├── index.ts │ │ │ │ ├── nanoid.ts │ │ │ │ └── zustand.ts │ │ │ ├── plugin │ │ │ │ ├── BasePlugin.ts │ │ │ │ ├── HandlerReturnType.ts │ │ │ │ ├── SlatePlugin.ts │ │ │ │ ├── createSlatePlugin.spec.ts │ │ │ │ ├── createSlatePlugin.ts │ │ │ │ ├── createTSlatePlugin.spec.ts │ │ │ │ ├── getEditorPlugin.spec.ts │ │ │ │ ├── getEditorPlugin.ts │ │ │ │ ├── getSlatePlugin.ts │ │ │ │ └── index.ts │ │ │ ├── plugins │ │ │ │ ├── AstPlugin.ts │ │ │ │ ├── HistoryPlugin.ts │ │ │ │ ├── InlineVoidPlugin.ts │ │ │ │ ├── ParserPlugin.ts │ │ │ │ ├── debug │ │ │ │ │ ├── DebugPlugin.spec.ts │ │ │ │ │ ├── DebugPlugin.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── dom │ │ │ │ │ ├── DOMPlugin.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── withScrolling.ts │ │ │ │ ├── getCorePlugins.ts │ │ │ │ ├── html │ │ │ │ │ ├── HtmlPlugin.spec.tsx │ │ │ │ │ ├── HtmlPlugin.ts │ │ │ │ │ ├── constants.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils │ │ │ │ │ │ ├── cleanHtmlBrElements.ts │ │ │ │ │ │ ├── cleanHtmlCrLf.spec.ts │ │ │ │ │ │ ├── cleanHtmlCrLf.ts │ │ │ │ │ │ ├── cleanHtmlEmptyElements.ts │ │ │ │ │ │ ├── cleanHtmlFontElements.ts │ │ │ │ │ │ ├── cleanHtmlLinkElements.ts │ │ │ │ │ │ ├── cleanHtmlTextNodes.ts │ │ │ │ │ │ ├── collapse-white-space │ │ │ │ │ │ ├── collapseString.ts │ │ │ │ │ │ ├── collapseWhiteSpace.spec.ts │ │ │ │ │ │ ├── collapseWhiteSpace.ts │ │ │ │ │ │ ├── collapseWhiteSpaceChildren.ts │ │ │ │ │ │ ├── collapseWhiteSpaceElement.ts │ │ │ │ │ │ ├── collapseWhiteSpaceNode.ts │ │ │ │ │ │ ├── collapseWhiteSpaceText.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── inferWhiteSpaceRule.ts │ │ │ │ │ │ ├── isLastNonEmptyTextOfInlineFormattingContext.ts │ │ │ │ │ │ ├── stateTransforms.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ │ ├── copyBlockMarksToSpanChild.ts │ │ │ │ │ │ ├── deserializeHtml.spec.tsx │ │ │ │ │ │ ├── deserializeHtml.ts │ │ │ │ │ │ ├── deserializeHtmlElement.spec.tsx │ │ │ │ │ │ ├── deserializeHtmlElement.ts │ │ │ │ │ │ ├── deserializeHtmlNode.spec.tsx │ │ │ │ │ │ ├── deserializeHtmlNode.ts │ │ │ │ │ │ ├── deserializeHtmlNodeChildren.ts │ │ │ │ │ │ ├── findHtmlElement.ts │ │ │ │ │ │ ├── getDataNodeProps.ts │ │ │ │ │ │ ├── getHtmlComments.ts │ │ │ │ │ │ ├── htmlBodyToFragment.spec.tsx │ │ │ │ │ │ ├── htmlBodyToFragment.ts │ │ │ │ │ │ ├── htmlBrToNewLine.spec.ts │ │ │ │ │ │ ├── htmlBrToNewLine.ts │ │ │ │ │ │ ├── htmlElementToElement.spec.tsx │ │ │ │ │ │ ├── htmlElementToElement.ts │ │ │ │ │ │ ├── htmlElementToLeaf.spec.tsx │ │ │ │ │ │ ├── htmlElementToLeaf.ts │ │ │ │ │ │ ├── htmlStringToDOMNode.ts │ │ │ │ │ │ ├── htmlTextNodeToString.spec.ts │ │ │ │ │ │ ├── htmlTextNodeToString.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── inlineTagNames.ts │ │ │ │ │ │ ├── isHtmlBlockElement.ts │ │ │ │ │ │ ├── isHtmlComment.ts │ │ │ │ │ │ ├── isHtmlElement.ts │ │ │ │ │ │ ├── isHtmlFragmentHref.ts │ │ │ │ │ │ ├── isHtmlInlineElement.ts │ │ │ │ │ │ ├── isHtmlTable.ts │ │ │ │ │ │ ├── isHtmlText.ts │ │ │ │ │ │ ├── isOlSymbol.spec.ts │ │ │ │ │ │ ├── isOlSymbol.ts │ │ │ │ │ │ ├── parseHtmlDocument.ts │ │ │ │ │ │ ├── parseHtmlElement.ts │ │ │ │ │ │ ├── pipeDeserializeHtmlElement.ts │ │ │ │ │ │ ├── pipeDeserializeHtmlLeaf.ts │ │ │ │ │ │ ├── pluginDeserializeHtml.spec.ts │ │ │ │ │ │ ├── pluginDeserializeHtml.ts │ │ │ │ │ │ ├── postCleanHtml.ts │ │ │ │ │ │ ├── preCleanHtml.ts │ │ │ │ │ │ ├── removeHtmlNodesBetweenComments.ts │ │ │ │ │ │ ├── removeHtmlSurroundings.spec.ts │ │ │ │ │ │ ├── removeHtmlSurroundings.ts │ │ │ │ │ │ ├── replaceTagName.ts │ │ │ │ │ │ ├── traverseHtmlComments.ts │ │ │ │ │ │ ├── traverseHtmlElements.ts │ │ │ │ │ │ ├── traverseHtmlNode.ts │ │ │ │ │ │ ├── traverseHtmlTexts.ts │ │ │ │ │ │ └── unwrapHtmlElement.ts │ │ │ │ ├── index.ts │ │ │ │ ├── length │ │ │ │ │ ├── LengthPlugin.spec.ts │ │ │ │ │ ├── LengthPlugin.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── paragraph │ │ │ │ │ ├── BaseParagraphPlugin.ts │ │ │ │ │ └── index.ts │ │ │ │ └── slate-extension │ │ │ │ │ ├── SlateExtensionPlugin.spec.tsx │ │ │ │ │ ├── SlateExtensionPlugin.ts │ │ │ │ │ └── index.ts │ │ │ ├── static │ │ │ │ ├── __tests__ │ │ │ │ │ ├── create-static-editor.ts │ │ │ │ │ ├── deserialize.spec.ts │ │ │ │ │ ├── element.spec.ts │ │ │ │ │ ├── marks.spec.ts │ │ │ │ │ ├── node-to-props.spec.ts │ │ │ │ │ ├── render.spec.tsx │ │ │ │ │ └── with-attributes.spec.ts │ │ │ │ ├── components │ │ │ │ │ ├── PlateStatic.spec.tsx │ │ │ │ │ ├── PlateStatic.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── slate-nodes.tsx │ │ │ │ ├── deserialize │ │ │ │ │ ├── checkUtils.ts │ │ │ │ │ ├── htmlStringToEditorDOM.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── pipeRenderElementStatic.tsx │ │ │ │ ├── pluginRenderElementStatic.tsx │ │ │ │ ├── pluginRenderLeafStatic.tsx │ │ │ │ ├── pluginRenderTextStatic.tsx │ │ │ │ ├── serializeHtml.tsx │ │ │ │ ├── types.ts │ │ │ │ └── utils │ │ │ │ │ ├── createStaticString.ts │ │ │ │ │ ├── getNodeDataAttributes.ts │ │ │ │ │ ├── getRenderNodeStaticProps.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── pipeDecorate.ts │ │ │ │ │ ├── stripHtmlClassNames.ts │ │ │ │ │ └── stripSlateDataAttributes.ts │ │ │ ├── types │ │ │ │ ├── EditableProps.ts │ │ │ │ ├── RenderElementProps.ts │ │ │ │ ├── RenderLeafProps.ts │ │ │ │ ├── RenderTextProps.ts │ │ │ │ └── index.ts │ │ │ └── utils │ │ │ │ ├── __tests__ │ │ │ │ └── mergeDeepToNodes │ │ │ │ │ ├── default-options.spec.tsx │ │ │ │ │ ├── descendant-editor-elements-nested.spec.tsx │ │ │ │ │ ├── descendant-elements-nested.spec.tsx │ │ │ │ │ ├── descendant-text-factory.spec.tsx │ │ │ │ │ ├── descendant-text.spec.tsx │ │ │ │ │ ├── elements-editor-elements-nested.spec.tsx │ │ │ │ │ ├── elements-nested.spec.tsx │ │ │ │ │ └── elements-text.spec.tsx │ │ │ │ ├── applyDeepToNodes.ts │ │ │ │ ├── defaultsDeepToNodes.ts │ │ │ │ ├── extendApi.spec.ts │ │ │ │ ├── getInjectMatch.ts │ │ │ │ ├── getInjectedPlugins.ts │ │ │ │ ├── getKeysByTypes.ts │ │ │ │ ├── getPluginNodeProps.ts │ │ │ │ ├── getSlateClass.ts │ │ │ │ ├── hotkeys.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isType.spec.tsx │ │ │ │ ├── isType.ts │ │ │ │ ├── mergeDeepToNodes.ts │ │ │ │ ├── normalizeDescendantsToDocumentFragment.spec.tsx │ │ │ │ ├── normalizeDescendantsToDocumentFragment.ts │ │ │ │ ├── omitPluginContext.ts │ │ │ │ ├── overrideEditor.spec.ts │ │ │ │ ├── overridePluginsByKey.ts │ │ │ │ └── pipeInsertDataQuery.ts │ │ └── react │ │ │ ├── __tests__ │ │ │ └── createPlateTestEditor.ts │ │ │ ├── components │ │ │ ├── EditorHotkeysEffect.spec.tsx │ │ │ ├── EditorHotkeysEffect.tsx │ │ │ ├── EditorMethodsEffect.spec.tsx │ │ │ ├── EditorMethodsEffect.ts │ │ │ ├── EditorRefEffect.tsx │ │ │ ├── EditorStateEffect.tsx │ │ │ ├── Plate.spec.tsx │ │ │ ├── Plate.tsx │ │ │ ├── PlateContainer.tsx │ │ │ ├── PlateContent.tsx │ │ │ ├── PlateControllerEffect.spec.tsx │ │ │ ├── PlateControllerEffect.ts │ │ │ ├── PlateSlate.tsx │ │ │ ├── PlateTest.tsx │ │ │ ├── __snapshots__ │ │ │ │ └── withHOC.spec.tsx.snap │ │ │ ├── index.ts │ │ │ ├── plate-nodes.tsx │ │ │ ├── withHOC.spec.tsx │ │ │ └── withHOC.tsx │ │ │ ├── editor │ │ │ ├── PlateEditor.ts │ │ │ ├── TPlateEditor.spec.ts │ │ │ ├── TPlateEditorCore.spec.ts │ │ │ ├── getPlateCorePlugins.ts │ │ │ ├── index.ts │ │ │ ├── usePlateEditor.ts │ │ │ └── withPlate.ts │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useEditableProps.spec.tsx │ │ │ ├── useEditableProps.ts │ │ │ ├── useNodePath.ts │ │ │ └── useSlateProps.ts │ │ │ ├── index.ts │ │ │ ├── libs │ │ │ ├── index.ts │ │ │ └── jotai.ts │ │ │ ├── plugin │ │ │ ├── DOMHandlers.ts │ │ │ ├── KeyboardHandler.ts │ │ │ ├── PlatePlugin.ts │ │ │ ├── createPlatePlugin.spec.ts │ │ │ ├── createPlatePlugin.ts │ │ │ ├── getEditorPlugin.ts │ │ │ ├── getPlugin.ts │ │ │ ├── index.ts │ │ │ ├── omitPluginContext.ts │ │ │ ├── toPlatePlugin.spec.ts │ │ │ └── toPlatePlugin.ts │ │ │ ├── plugins │ │ │ ├── SlateReactExtensionPlugin.ts │ │ │ ├── event-editor │ │ │ │ ├── EventEditorPlugin.ts │ │ │ │ ├── EventEditorStore.ts │ │ │ │ ├── getEventPlateId.ts │ │ │ │ ├── index.ts │ │ │ │ └── useFocusEditorEvents.ts │ │ │ ├── index.ts │ │ │ ├── paragraph │ │ │ │ ├── ParagraphPlugin.tsx │ │ │ │ └── index.ts │ │ │ └── react │ │ │ │ ├── ReactPlugin.spec.ts │ │ │ │ ├── ReactPlugin.ts │ │ │ │ ├── index.ts │ │ │ │ └── withPlateReact.ts │ │ │ ├── slate-react.ts │ │ │ ├── stores │ │ │ ├── element │ │ │ │ ├── index.ts │ │ │ │ ├── useElement.ts │ │ │ │ ├── useElementSelector.ts │ │ │ │ ├── useElementStore.spec.tsx │ │ │ │ ├── useElementStore.ts │ │ │ │ └── usePath.ts │ │ │ ├── event-editor │ │ │ │ ├── index.ts │ │ │ │ └── useEventPlateId.ts │ │ │ ├── index.ts │ │ │ ├── plate-controller │ │ │ │ ├── index.ts │ │ │ │ ├── plateControllerStore.spec.tsx │ │ │ │ └── plateControllerStore.ts │ │ │ └── plate │ │ │ │ ├── PlateStore.ts │ │ │ │ ├── createPlateStore.ts │ │ │ │ ├── index.ts │ │ │ │ ├── useEditorPlugin.ts │ │ │ │ ├── useEditorSelector.ts │ │ │ │ └── usePluginOption.ts │ │ │ └── utils │ │ │ ├── createPlateFallbackEditor.ts │ │ │ ├── dom-attributes.ts │ │ │ ├── getRenderNodeProps.ts │ │ │ ├── index.ts │ │ │ ├── pipeHandler.ts │ │ │ ├── pipeOnChange.ts │ │ │ ├── pipeRenderElement.tsx │ │ │ ├── pipeRenderLeaf.spec.tsx │ │ │ ├── pipeRenderLeaf.tsx │ │ │ ├── pipeRenderText.tsx │ │ │ ├── pluginRenderElement.tsx │ │ │ ├── pluginRenderLeaf.tsx │ │ │ ├── pluginRenderText.tsx │ │ │ └── shortcuts.spec.tsx │ ├── tsconfig.build.json │ └── tsconfig.json ├── csv │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── CsvPlugin.ts │ │ │ ├── deserializer │ │ │ ├── index.ts │ │ │ └── utils │ │ │ │ ├── deserializeCsv.ts │ │ │ │ └── index.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── cursor │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── CursorOverlay.tsx │ │ │ └── index.ts │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useCursorOverlayPositions.ts │ │ │ ├── useRefreshOnResize.ts │ │ │ └── useRequestReRender.ts │ │ ├── index.ts │ │ ├── queries │ │ │ ├── getCaretPosition.ts │ │ │ ├── getCursorOverlayState.ts │ │ │ ├── getSelectionRects.ts │ │ │ └── index.ts │ │ └── types.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── date │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseDatePlugin.spec.tsx │ │ │ ├── BaseDatePlugin.ts │ │ │ ├── index.ts │ │ │ ├── queries │ │ │ │ ├── index.ts │ │ │ │ ├── isPointNextToNode.spec.tsx │ │ │ │ └── isPointNextToNode.ts │ │ │ └── transforms │ │ │ │ ├── index.ts │ │ │ │ └── insertDate.ts │ │ └── react │ │ │ ├── DatePlugin.tsx │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── depset │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── utils │ │ │ ├── get-package-manager.ts │ │ │ ├── handle-error.ts │ │ │ ├── logger.ts │ │ │ └── spinner.ts │ ├── tsconfig.build.json │ ├── tsconfig.json │ └── tsup.config.ts ├── diff │ ├── .npmignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── internal │ │ │ ├── transforms │ │ │ │ ├── transformDiffDescendants.ts │ │ │ │ ├── transformDiffNodes.ts │ │ │ │ └── transformDiffTexts.ts │ │ │ └── utils │ │ │ │ ├── diff-nodes.ts │ │ │ │ ├── dmp.ts │ │ │ │ ├── get-properties.ts │ │ │ │ ├── inline-node-char-map.spec.ts │ │ │ │ ├── inline-node-char-map.ts │ │ │ │ ├── is-equal.spec.ts │ │ │ │ ├── is-equal.ts │ │ │ │ ├── string-char-mapping.spec.ts │ │ │ │ ├── string-char-mapping.ts │ │ │ │ ├── unused-char-generator.spec.ts │ │ │ │ ├── unused-char-generator.ts │ │ │ │ └── with-change-tracking.ts │ │ └── lib │ │ │ ├── computeDiff.spec.ts │ │ │ ├── computeDiff.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── withGetFragmentExcludeDiff.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── dnd │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── DndPlugin.tsx │ │ ├── components │ │ │ ├── Scroller │ │ │ │ ├── DndScroller.tsx │ │ │ │ ├── ScrollArea.tsx │ │ │ │ ├── Scroller.tsx │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── useDraggable.ts │ │ │ └── useDropLine.ts │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useDndNode.ts │ │ │ ├── useDragNode.ts │ │ │ └── useDropNode.ts │ │ ├── index.ts │ │ ├── queries │ │ │ ├── getBlocksWithId.ts │ │ │ └── index.ts │ │ ├── transforms │ │ │ ├── focusBlockStartById.ts │ │ │ ├── index.ts │ │ │ ├── onDropNode.spec.ts │ │ │ ├── onDropNode.ts │ │ │ ├── onHoverNode.spec.ts │ │ │ ├── onHoverNode.ts │ │ │ ├── removeBlocksAndFocus.ts │ │ │ ├── selectBlockById.ts │ │ │ └── selectBlocksBySelectionOrId.ts │ │ ├── types.ts │ │ └── utils │ │ │ ├── getHoverDirection.spec.ts │ │ │ ├── getHoverDirection.ts │ │ │ ├── getNewDirection.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── docx │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── DocxPlugin.ts │ │ │ ├── __tests__ │ │ │ ├── align.docx │ │ │ ├── align.html │ │ │ ├── align.spec.tsx │ │ │ ├── alternate_document_path.docx │ │ │ ├── alternate_document_path.html │ │ │ ├── alternate_document_path.spec.tsx │ │ │ ├── block_quotes.docx │ │ │ ├── block_quotes.html │ │ │ ├── block_quotes.spec.tsx │ │ │ ├── char_styles.docx │ │ │ ├── char_styles.html │ │ │ ├── char_styles.spec.tsx │ │ │ ├── codeblock.docx │ │ │ ├── codeblock.html │ │ │ ├── codeblock.spec.tsx │ │ │ ├── custom-style-reference.docx │ │ │ ├── custom-style-reference.html │ │ │ ├── custom-style-reference.spec.tsx │ │ │ ├── dummy_item_after_list_item.docx │ │ │ ├── dummy_item_after_list_item.html │ │ │ ├── dummy_item_after_list_item.spec.tsx │ │ │ ├── dummy_item_after_paragraph.docx │ │ │ ├── dummy_item_after_paragraph.html │ │ │ ├── dummy_item_after_paragraph.spec.tsx │ │ │ ├── font.docx │ │ │ ├── font.html │ │ │ ├── font.spec.tsx │ │ │ ├── headers.docx │ │ │ ├── headers.html │ │ │ ├── headers.spec.tsx │ │ │ ├── inline_code.docx │ │ │ ├── inline_code.html │ │ │ ├── inline_code.spec.tsx │ │ │ ├── inline_formatting.docx │ │ │ ├── inline_formatting.html │ │ │ ├── inline_formatting.spec.tsx │ │ │ ├── legal-in.html │ │ │ ├── legal-in.spec.tsx │ │ │ ├── legal.docx │ │ │ ├── legal.html │ │ │ ├── legal.spec.tsx │ │ │ ├── line-height.docx │ │ │ ├── line-height.html │ │ │ ├── line-height.spec.tsx │ │ │ ├── links.docx │ │ │ ├── lists-clean.html │ │ │ ├── lists.docx │ │ │ ├── lists.html │ │ │ ├── lists.spec.tsx │ │ │ ├── lists_continuing.docx │ │ │ ├── lists_restarting.docx │ │ │ ├── lists_sublist_reset.docx │ │ │ ├── lists_sublist_reset.html │ │ │ ├── lists_sublist_reset.spec.tsx │ │ │ ├── numbered_header.docx │ │ │ ├── numbered_header.html │ │ │ ├── numbered_header.spec.tsx │ │ │ ├── numbered_sublist.docx │ │ │ ├── numbered_sublist.html │ │ │ ├── numbered_sublist.spec.tsx │ │ │ ├── readTestFile.ts │ │ │ ├── tables.docx │ │ │ ├── tables.html │ │ │ ├── tables.spec.tsx │ │ │ ├── tabs.docx │ │ │ ├── tabs.html │ │ │ ├── tabs.spec.tsx │ │ │ └── testDocxDeserializer.tsx │ │ │ ├── docx-cleaner │ │ │ ├── __tests__ │ │ │ │ ├── input │ │ │ │ │ ├── brs.html │ │ │ │ │ ├── custom-styles.html │ │ │ │ │ ├── empty-paragraphs.html │ │ │ │ │ ├── nested-lists.html │ │ │ │ │ ├── v-shapes.html │ │ │ │ │ ├── whitespaces-1.html │ │ │ │ │ ├── whitespaces-2.html │ │ │ │ │ └── whitespaces-3.html │ │ │ │ └── output │ │ │ │ │ ├── brs.html │ │ │ │ │ ├── custom-style-reference.html │ │ │ │ │ ├── empty-paragraphs.html │ │ │ │ │ ├── nested-lists.html │ │ │ │ │ ├── whitespaces-1.html │ │ │ │ │ ├── whitespaces-2.html │ │ │ │ │ └── whitespaces-3.html │ │ │ ├── cleanDocx.spec.ts │ │ │ ├── cleanDocx.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ │ ├── cleanDocxBrComments.ts │ │ │ │ ├── cleanDocxEmptyParagraphs.ts │ │ │ │ ├── cleanDocxFootnotes.ts │ │ │ │ ├── cleanDocxImageElements.ts │ │ │ │ ├── cleanDocxListElements.ts │ │ │ │ ├── cleanDocxListElementsToList.ts │ │ │ │ ├── cleanDocxQuotes.ts │ │ │ │ ├── cleanDocxSpacerun.ts │ │ │ │ ├── cleanDocxSpans.ts │ │ │ │ ├── cleanDocxTabCount.ts │ │ │ │ ├── docxListToList.ts │ │ │ │ ├── generateSpaces.ts │ │ │ │ ├── getDocxIndent.ts │ │ │ │ ├── getDocxListContentHtml.ts │ │ │ │ ├── getDocxListIndent.ts │ │ │ │ ├── getDocxListNode.ts │ │ │ │ ├── getRtfImageHex.ts │ │ │ │ ├── getRtfImageMimeType.ts │ │ │ │ ├── getRtfImageSpid.ts │ │ │ │ ├── getRtfImagesByType.ts │ │ │ │ ├── getRtfImagesMap.ts │ │ │ │ ├── getTextListStyleType.ts │ │ │ │ ├── getVShapeSpid.ts │ │ │ │ ├── getVShapes.spec.ts │ │ │ │ ├── getVShapes.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isDocxBookmark.ts │ │ │ │ ├── isDocxContent.ts │ │ │ │ ├── isDocxFootnote.ts │ │ │ │ ├── isDocxList.ts │ │ │ │ └── isDocxOl.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── emoji │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseEmojiPlugin.ts │ │ │ ├── constants.ts │ │ │ ├── index.ts │ │ │ ├── transforms │ │ │ │ ├── index.ts │ │ │ │ └── insertEmoji.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ │ ├── EmojiLibrary │ │ │ │ ├── EmojiInlineLibrary.ts │ │ │ │ ├── EmojiLibrary.types.ts │ │ │ │ └── index.ts │ │ │ │ ├── Grid │ │ │ │ ├── Grid.ts │ │ │ │ ├── Grid.types.ts │ │ │ │ ├── GridSection.ts │ │ │ │ └── index.ts │ │ │ │ ├── IndexSearch │ │ │ │ ├── EmojiFloatingIndexSearch.ts │ │ │ │ ├── EmojiInlineIndexSearch.ts │ │ │ │ ├── IndexSearch.ts │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ └── react │ │ │ ├── EmojiPlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useEmojiDropdownMenuState.ts │ │ │ └── useEmojiPicker.ts │ │ │ ├── index.ts │ │ │ ├── storage │ │ │ ├── FrequentEmojiStorage.ts │ │ │ ├── LocalStorage.ts │ │ │ └── index.ts │ │ │ └── utils │ │ │ ├── EmojiLibrary │ │ │ ├── EmojiFloatingGrid.ts │ │ │ ├── EmojiFloatingGridBuilder.ts │ │ │ ├── EmojiFloatingLibrary.ts │ │ │ ├── EmojiFloatingLibrary.types.ts │ │ │ └── index.ts │ │ │ ├── EmojiObserver.ts │ │ │ ├── EmojiPickerState.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── excalidraw │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseExcalidrawPlugin.ts │ │ │ ├── index.ts │ │ │ ├── transforms │ │ │ │ ├── index.ts │ │ │ │ └── insertExcalidraw.ts │ │ │ └── types.ts │ │ └── react │ │ │ ├── ExcalidrawPlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ └── useExcalidrawElement.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── find-replace │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── FindReplacePlugin.ts │ │ │ ├── __tests__ │ │ │ └── decorateSearchHighlight │ │ │ │ └── search │ │ │ │ ├── empty.spec.ts │ │ │ │ └── text.spec.ts │ │ │ ├── decorateFindReplace.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── floating │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── createVirtualElement.ts │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useFloatingToolbar.ts │ │ │ └── useVirtualFloating.ts │ │ ├── index.ts │ │ ├── libs │ │ │ ├── floating-ui.ts │ │ │ └── index.ts │ │ └── utils │ │ │ ├── createVirtualRef.ts │ │ │ ├── getBoundingClientRect.ts │ │ │ ├── getDOMSelectionBoundingClientRect.ts │ │ │ ├── getRangeBoundingClientRect.ts │ │ │ ├── getSelectionBoundingClientRect.ts │ │ │ ├── index.ts │ │ │ ├── makeClientRect.ts │ │ │ ├── mergeClientRects.spec.ts │ │ │ └── mergeClientRects.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── font │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseFontBackgroundColorPlugin.ts │ │ │ ├── BaseFontColorPlugin.ts │ │ │ ├── BaseFontFamilyPlugin.ts │ │ │ ├── BaseFontSizePlugin.ts │ │ │ ├── BaseFontWeightPlugin.ts │ │ │ ├── index.ts │ │ │ ├── transforms │ │ │ │ ├── index.ts │ │ │ │ ├── setBlockBackgroundColor.ts │ │ │ │ └── setFontSize.ts │ │ │ └── utils │ │ │ │ ├── index.ts │ │ │ │ └── toUnitLess.ts │ │ └── react │ │ │ ├── FontPlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useColorDropdownMenu.ts │ │ │ ├── useColorInput.ts │ │ │ └── useColorsCustom.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── heading │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── internal │ │ │ └── getHeadingList.ts │ │ ├── lib │ │ │ ├── BaseHeadingPlugin.spec.ts │ │ │ ├── BaseHeadingPlugin.ts │ │ │ ├── BaseTocPlugin.ts │ │ │ ├── constants.ts │ │ │ ├── index.ts │ │ │ ├── transforms │ │ │ │ ├── index.ts │ │ │ │ └── insertToc.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ │ ├── index.ts │ │ │ │ └── isHeading.ts │ │ └── react │ │ │ ├── HeadingPlugin.tsx │ │ │ ├── TocPlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useContentController.ts │ │ │ ├── useContentObserver.ts │ │ │ ├── useTocController.ts │ │ │ ├── useTocElement.ts │ │ │ ├── useTocObserver.ts │ │ │ └── useTocSideBar.ts │ │ │ ├── index.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ ├── checkIn.ts │ │ │ ├── heightToTop.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── highlight │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseHighlightPlugin.ts │ │ │ └── index.ts │ │ └── react │ │ │ ├── HighlightPlugin.tsx │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── horizontal-rule │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseHorizontalRulePlugin.ts │ │ │ └── index.ts │ │ └── react │ │ │ ├── HorizontalRulePlugin.tsx │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── indent-list │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ └── indentListPluginPage.ts │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseIndentListPlugin.ts │ │ │ ├── IndentListPlugin.spec.tsx │ │ │ ├── index.ts │ │ │ ├── normalizers │ │ │ │ ├── index.ts │ │ │ │ ├── normalizeIndentListNotIndented.spec.tsx │ │ │ │ ├── normalizeIndentListNotIndented.ts │ │ │ │ ├── normalizeIndentListStart.spec.tsx │ │ │ │ ├── normalizeIndentListStart.ts │ │ │ │ ├── shouldMergeNodesRemovePrevNodeIndentList.ts │ │ │ │ ├── withDeleteBackwardIndentList.ts │ │ │ │ ├── withInsertBreakIndentList.spec.tsx │ │ │ │ └── withInsertBreakIndentList.ts │ │ │ ├── queries │ │ │ │ ├── areEqListStyleType.ts │ │ │ │ ├── getIndentListAbove.ts │ │ │ │ ├── getIndentListSiblings.spec.tsx │ │ │ │ ├── getIndentListSiblings.ts │ │ │ │ ├── getNextIndentList.ts │ │ │ │ ├── getPreviousIndentList.ts │ │ │ │ ├── getSiblingIndentList.ts │ │ │ │ ├── getSiblingListStyleType.ts │ │ │ │ ├── index.ts │ │ │ │ ├── someIndentList.ts │ │ │ │ └── someIndentTodo.ts │ │ │ ├── renderIndentListBelowNodes.tsx │ │ │ ├── transforms │ │ │ │ ├── indentList.ts │ │ │ │ ├── index.ts │ │ │ │ ├── outdentList.ts │ │ │ │ ├── setIndentListNode.ts │ │ │ │ ├── setIndentListNodes.ts │ │ │ │ ├── setIndentListSiblingNodes.ts │ │ │ │ ├── toggleIndentList.spec.tsx │ │ │ │ ├── toggleIndentList.ts │ │ │ │ ├── toggleIndentListByPath.ts │ │ │ │ ├── toggleIndentListSet.ts │ │ │ │ └── toggleIndentListUnset.ts │ │ │ ├── types.ts │ │ │ ├── withIndentList.spec.tsx │ │ │ ├── withIndentList.ts │ │ │ └── withNormalizeIndentList.ts │ │ └── react │ │ │ ├── IndentListPlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useIndentListToolbarButton.ts │ │ │ ├── useIndentTodoListElement.ts │ │ │ └── useIndentTodoToolbarButton.ts │ │ │ ├── index.ts │ │ │ ├── onKeyDownIndentList.spec.tsx │ │ │ └── onKeyDownIndentList.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── indent │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseIndentPlugin.ts │ │ │ ├── BaseTextIndentPlugin.ts │ │ │ ├── index.ts │ │ │ ├── transforms │ │ │ │ ├── indent.ts │ │ │ │ ├── index.ts │ │ │ │ ├── outdent.ts │ │ │ │ └── setIndent.ts │ │ │ └── withIndent.ts │ │ └── react │ │ │ ├── IndentPlugin.tsx │ │ │ ├── TextIndentPlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useIndentButton.ts │ │ │ └── useOutdentButton.ts │ │ │ ├── index.ts │ │ │ └── onKeyDownIndent.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── juice │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── JuicePlugin.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── kbd │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseKbdPlugin.ts │ │ │ └── index.ts │ │ └── react │ │ │ ├── KbdPlugin.tsx │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── layout │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseColumnPlugin.ts │ │ │ ├── index.ts │ │ │ ├── transforms │ │ │ │ ├── index.ts │ │ │ │ ├── insertColumn.ts │ │ │ │ ├── insertColumnGroup.ts │ │ │ │ ├── moveMiddleColumn.ts │ │ │ │ ├── resizeColumn.ts │ │ │ │ ├── setColumns.spec.tsx │ │ │ │ ├── setColumns.ts │ │ │ │ ├── toggleColumnGroup.spec.tsx │ │ │ │ └── toggleColumnGroup.ts │ │ │ ├── types.ts │ │ │ ├── utils │ │ │ │ ├── columnsToWidths.ts │ │ │ │ └── index.ts │ │ │ └── withColumn.ts │ │ └── react │ │ │ ├── ColumnPlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ └── useDebouncePopoverOpen.ts │ │ │ ├── index.ts │ │ │ └── onKeyDownColumn.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── line-height │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseLineHeightPlugin.ts │ │ │ ├── index.ts │ │ │ └── transforms │ │ │ │ ├── index.ts │ │ │ │ └── setLineHeight.ts │ │ └── react │ │ │ ├── LineHeightPlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ └── useLineHeightDropdownMenu.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── link │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseLinkPlugin.ts │ │ │ ├── index.ts │ │ │ ├── transforms │ │ │ │ ├── index.ts │ │ │ │ ├── insertLink.ts │ │ │ │ ├── unwrapLink.ts │ │ │ │ ├── upsertLink.spec.tsx │ │ │ │ ├── upsertLink.ts │ │ │ │ ├── upsertLinkText.ts │ │ │ │ └── wrapLink.ts │ │ │ ├── types.ts │ │ │ ├── utils │ │ │ │ ├── createLinkNode.ts │ │ │ │ ├── encodeUrlIfNeeded.spec.ts │ │ │ │ ├── encodeUrlIfNeeded.ts │ │ │ │ ├── getLinkAttributes.ts │ │ │ │ ├── index.ts │ │ │ │ ├── safeDecodeUrl.spec.ts │ │ │ │ ├── safeDecodeUrl.ts │ │ │ │ └── validateUrl.ts │ │ │ ├── withLink.spec.tsx │ │ │ └── withLink.ts │ │ └── react │ │ │ ├── LinkPlugin.tsx │ │ │ ├── components │ │ │ ├── FloatingLink │ │ │ │ ├── FloatingLinkNewTabInput.tsx │ │ │ │ ├── FloatingLinkUrlInput.tsx │ │ │ │ ├── LinkOpenButton.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── useFloatingLinkEdit.ts │ │ │ │ ├── useFloatingLinkEnter.ts │ │ │ │ ├── useFloatingLinkEscape.ts │ │ │ │ ├── useFloatingLinkInsert.ts │ │ │ │ └── useVirtualFloatingLink.ts │ │ │ ├── index.ts │ │ │ ├── useLink.ts │ │ │ └── useLinkToolbarButton.ts │ │ │ ├── index.ts │ │ │ ├── transforms │ │ │ ├── index.ts │ │ │ └── submitFloatingLink.ts │ │ │ └── utils │ │ │ ├── getLinkAttributes.spec.ts │ │ │ ├── index.ts │ │ │ ├── triggerFloatingLink.ts │ │ │ ├── triggerFloatingLinkEdit.ts │ │ │ └── triggerFloatingLinkInsert.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── list │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseListPlugin.ts │ │ │ ├── BaseTodoListPlugin.ts │ │ │ ├── index.ts │ │ │ ├── normalizers │ │ │ │ ├── index.ts │ │ │ │ ├── normalizeListItem.spec.tsx │ │ │ │ ├── normalizeListItem.ts │ │ │ │ └── normalizeNestedList.ts │ │ │ ├── queries │ │ │ │ ├── getHighestEmptyList.ts │ │ │ │ ├── getListItemEntry.spec.tsx │ │ │ │ ├── getListItemEntry.ts │ │ │ │ ├── getListRoot.spec.tsx │ │ │ │ ├── getListRoot.ts │ │ │ │ ├── getListTypes.ts │ │ │ │ ├── getTodoListItemEntry.ts │ │ │ │ ├── hasListChild.spec.tsx │ │ │ │ ├── hasListChild.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isAcrossListItems.ts │ │ │ │ ├── isListNested.spec.tsx │ │ │ │ ├── isListNested.ts │ │ │ │ ├── isListRoot.ts │ │ │ │ └── someList.ts │ │ │ ├── transforms │ │ │ │ ├── indentListItems.ts │ │ │ │ ├── index.ts │ │ │ │ ├── insertListItem.ts │ │ │ │ ├── insertTodoListItem.ts │ │ │ │ ├── moveListItemDown.ts │ │ │ │ ├── moveListItemSublistItemsToListItemSublist.spec.tsx │ │ │ │ ├── moveListItemSublistItemsToListItemSublist.ts │ │ │ │ ├── moveListItemUp.ts │ │ │ │ ├── moveListItems.ts │ │ │ │ ├── moveListItemsToList.spec.tsx │ │ │ │ ├── moveListItemsToList.ts │ │ │ │ ├── moveListSiblingsAfterCursor.ts │ │ │ │ ├── removeFirstListItem.ts │ │ │ │ ├── removeListItem.spec.tsx │ │ │ │ ├── removeListItem.ts │ │ │ │ ├── toggleList.spec.tsx │ │ │ │ ├── toggleList.ts │ │ │ │ ├── unindentListItems.ts │ │ │ │ ├── unwrapList.spec.tsx │ │ │ │ └── unwrapList.ts │ │ │ ├── withDeleteForwardList.spec.tsx │ │ │ ├── withDeleteForwardList.ts │ │ │ ├── withDeleteFragmentList.ts │ │ │ ├── withInsertFragmentList.spec.tsx │ │ │ ├── withInsertFragmentList.ts │ │ │ ├── withNormalizeList.spec.tsx │ │ │ ├── withNormalizeList.ts │ │ │ └── withTodoList.ts │ │ └── react │ │ │ ├── ListPlugin.tsx │ │ │ ├── TodoListPlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useListToolbarButton.ts │ │ │ └── useTodoListElement.ts │ │ │ ├── index.ts │ │ │ ├── onKeyDownList.spec.tsx │ │ │ ├── onKeyDownList.ts │ │ │ ├── withDeleteBackwardList.spec.tsx │ │ │ ├── withDeleteBackwardList.ts │ │ │ ├── withInsertBreakList.ts │ │ │ ├── withList.spec.tsx │ │ │ └── withList.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── markdown │ ├── .npmignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── MarkdownPlugin.ts │ │ │ ├── __snapshots__ │ │ │ └── mdx.spec.tsx.snap │ │ │ ├── __tests__ │ │ │ ├── createTestEditor.tsx │ │ │ └── testValue.ts │ │ │ ├── deserializer │ │ │ ├── __snapshots__ │ │ │ │ ├── deserializeMd.spec.tsx.snap │ │ │ │ └── deserializeMdList.spec.tsx.snap │ │ │ ├── convertChildrenDeserialize.ts │ │ │ ├── convertNodesDeserialize.spec.ts │ │ │ ├── convertNodesDeserialize.ts │ │ │ ├── convertTextsDeserialize.ts │ │ │ ├── deserializeMd.spec.tsx │ │ │ ├── deserializeMd.ts │ │ │ ├── deserializeMdList.spec.tsx │ │ │ ├── deserializeMdParagraphs.spec.tsx │ │ │ ├── index.ts │ │ │ ├── mdastToSlate.ts │ │ │ ├── splitLineBreaks.spec.tsx │ │ │ ├── type.ts │ │ │ └── utils │ │ │ │ ├── customMdxDeserialize.ts │ │ │ │ ├── deserializeInlineMd.ts │ │ │ │ ├── getDeserializerByKey.ts │ │ │ │ ├── getMergedOptionsDeserialize.ts │ │ │ │ ├── getStyleValue.spec.ts │ │ │ │ ├── getStyleValue.ts │ │ │ │ ├── index.ts │ │ │ │ ├── markdownToSlateNodesSafely.ts │ │ │ │ ├── parseMarkdownBlocks.spec.ts │ │ │ │ ├── parseMarkdownBlocks.ts │ │ │ │ ├── splitIncompleteMdx.spec.ts │ │ │ │ ├── splitIncompleteMdx.ts │ │ │ │ └── stripMarkdown.ts │ │ │ ├── index.ts │ │ │ ├── internal │ │ │ └── types.ts │ │ │ ├── mdast.ts │ │ │ ├── mdx.spec.tsx │ │ │ ├── plugins │ │ │ ├── index.ts │ │ │ ├── remarkMdx.ts │ │ │ └── remarkMention.ts │ │ │ ├── rules │ │ │ ├── columnRules.ts │ │ │ ├── defaultRules.ts │ │ │ ├── fontRules.ts │ │ │ ├── index.ts │ │ │ ├── mediaRules.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ │ ├── index.ts │ │ │ │ └── parseAttributes.ts │ │ │ ├── serializer │ │ │ ├── __snapshots__ │ │ │ │ ├── indentListToMdastTree.spec.ts.snap │ │ │ │ └── serializeMd.spec.ts.snap │ │ │ ├── convertNodesSerialize.spec.ts │ │ │ ├── convertNodesSerialize.ts │ │ │ ├── convertTextsSerialize.ts │ │ │ ├── indentListToMdastTree.spec.ts │ │ │ ├── indentListToMdastTree.ts │ │ │ ├── index.ts │ │ │ ├── serializeInlineMd.spec.ts │ │ │ ├── serializeInlineMd.ts │ │ │ ├── serializeMd.spec.ts │ │ │ ├── serializeMd.ts │ │ │ ├── standardList.spec.tsx │ │ │ └── utils │ │ │ │ ├── getCustomMark.ts │ │ │ │ ├── getMergedOptionsSerialize.ts │ │ │ │ ├── getSerializerByKey.ts │ │ │ │ ├── index.ts │ │ │ │ └── unreachable.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ ├── getRemarkPluginsWithoutMdx.ts │ │ │ ├── index.ts │ │ │ └── mapTypeUtils.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── math │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseEquationPlugin.ts │ │ │ ├── BaseInlineEquationPlugin.ts │ │ │ ├── index.ts │ │ │ ├── transforms │ │ │ │ ├── index.ts │ │ │ │ ├── insertEquation.ts │ │ │ │ └── insertInlineEquation.ts │ │ │ └── utils │ │ │ │ ├── getEquationHtml.ts │ │ │ │ └── index.ts │ │ └── react │ │ │ ├── EquationPlugin.tsx │ │ │ ├── InlineEquationPlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useEquationElement.ts │ │ │ └── useEquationInput.ts │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── media │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseAudioPlugin.ts │ │ │ ├── BaseFilePlugin.ts │ │ │ ├── BaseVideoPlugin.ts │ │ │ ├── image │ │ │ │ ├── BaseImagePlugin.ts │ │ │ │ ├── index.ts │ │ │ │ ├── transforms │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── insertImage.ts │ │ │ │ │ └── insertImageFromFiles.ts │ │ │ │ ├── utils │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── isImageUrl.spec.tsx │ │ │ │ │ └── isImageUrl.ts │ │ │ │ ├── withImageEmbed.spec.tsx │ │ │ │ ├── withImageEmbed.ts │ │ │ │ ├── withImageUpload.spec.tsx │ │ │ │ └── withImageUpload.ts │ │ │ ├── index.ts │ │ │ ├── media-embed │ │ │ │ ├── BaseMediaEmbedPlugin.ts │ │ │ │ ├── index.ts │ │ │ │ ├── parseIframeUrl.ts │ │ │ │ ├── parseTwitterUrl.ts │ │ │ │ ├── parseVideoUrl.ts │ │ │ │ └── transforms │ │ │ │ │ ├── index.ts │ │ │ │ │ └── insertMediaEmbed.ts │ │ │ ├── media │ │ │ │ ├── index.ts │ │ │ │ ├── insertMedia.ts │ │ │ │ ├── parseMediaUrl.ts │ │ │ │ └── types.ts │ │ │ └── placeholder │ │ │ │ ├── BasePlaceholderPlugin.ts │ │ │ │ ├── index.ts │ │ │ │ └── transforms │ │ │ │ ├── index.ts │ │ │ │ ├── insertPlaceholder.ts │ │ │ │ └── setMediaNode.ts │ │ └── react │ │ │ ├── image │ │ │ ├── ImagePreviewStore.ts │ │ │ ├── components │ │ │ │ ├── Image.tsx │ │ │ │ ├── PreviewImage.tsx │ │ │ │ ├── index.ts │ │ │ │ └── useScaleInput.tsx │ │ │ ├── index.ts │ │ │ ├── openImagePreview.ts │ │ │ ├── useImagePreview.ts │ │ │ └── useZoom.ts │ │ │ ├── index.ts │ │ │ ├── media │ │ │ ├── FloatingMedia │ │ │ │ ├── FloatingMedia.tsx │ │ │ │ ├── FloatingMediaEditButton.tsx │ │ │ │ ├── FloatingMediaStore.ts │ │ │ │ ├── FloatingMediaUrlInput.tsx │ │ │ │ ├── index.ts │ │ │ │ └── submitFloatingMedia.ts │ │ │ ├── index.ts │ │ │ ├── mediaStore.ts │ │ │ ├── useMediaController.ts │ │ │ ├── useMediaState.spec.ts │ │ │ ├── useMediaState.ts │ │ │ └── useMediaToolbarButton.ts │ │ │ ├── placeholder │ │ │ ├── PlaceholderPlugin.tsx │ │ │ ├── hooks │ │ │ │ ├── index.ts │ │ │ │ ├── usePlaceholderElement.ts │ │ │ │ └── usePlaceholderPopover.ts │ │ │ ├── index.ts │ │ │ ├── internal │ │ │ │ ├── application.ts │ │ │ │ ├── audio.ts │ │ │ │ ├── image.ts │ │ │ │ ├── mimes.ts │ │ │ │ ├── misc.ts │ │ │ │ ├── text.ts │ │ │ │ ├── utils.ts │ │ │ │ └── video.ts │ │ │ ├── placeholderStore.ts │ │ │ ├── transforms │ │ │ │ ├── index.ts │ │ │ │ └── insertMedia.ts │ │ │ ├── type.ts │ │ │ └── utils │ │ │ │ ├── createUploadError.ts │ │ │ │ ├── fileSizeToBytes.spec.ts │ │ │ │ ├── fileSizeToBytes.ts │ │ │ │ ├── getMediaType.ts │ │ │ │ ├── groupFilesByType.spec.ts │ │ │ │ ├── groupFilesByType.ts │ │ │ │ ├── history.ts │ │ │ │ ├── index.ts │ │ │ │ ├── matchFileType.spec.ts │ │ │ │ ├── matchFileType.ts │ │ │ │ ├── validateFileItem.spec.ts │ │ │ │ ├── validateFileItem.ts │ │ │ │ └── validateFiles.ts │ │ │ └── plugins.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── mention │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseMentionPlugin.ts │ │ │ ├── getMentionOnSelectItem.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ └── react │ │ │ ├── MentionPlugin.tsx │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── node-id │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── NodeIdPlugin.spec.tsx │ │ │ ├── NodeIdPlugin.ts │ │ │ ├── index.ts │ │ │ └── withNodeId.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── normalizers │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── withNormalizeType │ │ │ │ ├── nested.spec.tsx │ │ │ │ ├── strictType │ │ │ │ │ ├── insert.spec.tsx │ │ │ │ │ └── set.spec.tsx │ │ │ │ └── type │ │ │ │ │ ├── insert.spec.tsx │ │ │ │ │ └── set.spec.tsx │ │ │ └── withRemoveEmptyNodes │ │ │ │ └── empty-link.spec.tsx │ │ ├── index.ts │ │ └── lib │ │ │ ├── NormalizeTypesPlugin.ts │ │ │ ├── RemoveEmptyNodesPlugin.ts │ │ │ ├── index.ts │ │ │ ├── withNormalizeTypes.ts │ │ │ └── withRemoveEmptyNodes.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── plate-utils │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── index.ts │ │ │ └── keep.ts │ │ └── react │ │ │ ├── createNodeHOC.tsx │ │ │ ├── createNodesHOC.tsx │ │ │ ├── index.ts │ │ │ ├── useEditorString.ts │ │ │ ├── useFormInputProps.spec.tsx │ │ │ ├── useFormInputProps.ts │ │ │ ├── useMarkToolbarButton.ts │ │ │ ├── usePlaceholder.ts │ │ │ ├── useRemoveNodeButton.ts │ │ │ ├── useSelection.ts │ │ │ └── useSelectionFragment.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── plate │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.tsx │ │ ├── react │ │ │ └── index.tsx │ │ └── type.spec.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── playwright │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── PlaywrightPlugin.ts │ │ ├── clickAtPath.ts │ │ ├── getDOMNodeByPath.ts │ │ ├── getEditable.ts │ │ ├── getEditorHandle.ts │ │ ├── getNodeByPath.ts │ │ ├── getSelection.ts │ │ ├── getTypeAtPath.ts │ │ ├── index.ts │ │ ├── internal │ │ │ ├── getAdapter.ts │ │ │ └── globals.d.ts │ │ ├── setSelection.ts │ │ ├── types.ts │ │ └── usePlaywrightAdapter.tsx │ ├── tsconfig.build.json │ └── tsconfig.json ├── react-hotkeys │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── __tests__ │ │ │ ├── HotkeysProvider.test.tsx │ │ │ ├── isHotkeyPressed.test.tsx │ │ │ ├── useHotkeys.test.tsx │ │ │ └── useRecordHotkeys.test.tsx │ │ ├── index.tsx │ │ └── internal │ │ │ ├── BoundHotkeysProxyProvider.tsx │ │ │ ├── HotkeysProvider.tsx │ │ │ ├── deepEqual.ts │ │ │ ├── isHotkeyPressed.ts │ │ │ ├── key.ts │ │ │ ├── parseHotkeys.ts │ │ │ ├── types.ts │ │ │ ├── useDeepEqualMemo.ts │ │ │ ├── useHotkeys.ts │ │ │ ├── useRecordHotkeys.ts │ │ │ └── validators.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── react-utils │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── Box.tsx │ │ ├── MemoizedChildren.tsx │ │ ├── PortalBody.tsx │ │ ├── Text.tsx │ │ ├── composeEventHandlers.ts │ │ ├── createPrimitiveComponent.tsx │ │ ├── createPrimitiveElement.tsx │ │ ├── createSlotComponent.tsx │ │ ├── index.ts │ │ ├── useComposedRef.ts │ │ ├── useEffectOnce.ts │ │ ├── useIsomorphicLayoutEffect.ts │ │ ├── useMemoOnce.ts │ │ ├── useMemoizedSelector.ts │ │ ├── useOnClickOutside.ts │ │ ├── useStableFn.ts │ │ ├── useStableMemo.ts │ │ ├── withProviders.tsx │ │ └── withRef.tsx │ ├── tsconfig.build.json │ └── tsconfig.json ├── reset-node │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseResetNodePlugin.spec.tsx │ │ │ ├── BaseResetNodePlugin.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ └── react │ │ │ ├── ResetNodePlugin.tsx │ │ │ ├── index.ts │ │ │ ├── onKeyDownResetNode.spec.tsx │ │ │ └── onKeyDownResetNode.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── resizable │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── Resizable.tsx │ │ │ ├── ResizeHandle.tsx │ │ │ ├── TResizableElement.ts │ │ │ ├── index.ts │ │ │ └── useResizableStore.ts │ │ ├── index.ts │ │ ├── types.ts │ │ └── utils │ │ │ ├── index.ts │ │ │ ├── isTouchEvent.ts │ │ │ ├── resizeLengthClamp.spec.ts │ │ │ ├── resizeLengthClamp.ts │ │ │ ├── resizeLengthToRelative.spec.ts │ │ │ ├── resizeLengthToRelative.ts │ │ │ ├── resizeLengthToStatic.spec.ts │ │ │ └── resizeLengthToStatic.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── select │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── DeletePlugin.spec.tsx │ │ │ ├── DeletePlugin.ts │ │ │ ├── SelectOnBackspacePlugin.ts │ │ │ ├── index.ts │ │ │ └── withSelectOnBackspace.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── selection │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── internal │ │ │ ├── EventEmitter.ts │ │ │ ├── SelectionArea.ts │ │ │ ├── index.ts │ │ │ ├── transforms │ │ │ │ ├── selectBlocks.spec.tsx │ │ │ │ └── selectBlocks.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ │ ├── constants.ts │ │ │ │ ├── css.ts │ │ │ │ ├── events.ts │ │ │ │ ├── frames.ts │ │ │ │ ├── index.ts │ │ │ │ ├── intersects.ts │ │ │ │ ├── selectAll.ts │ │ │ │ └── shouldTrigger.ts │ │ ├── lib │ │ │ ├── extractSelectableIds.ts │ │ │ ├── getAboveDomNode.ts │ │ │ ├── index.ts │ │ │ └── isSelecting.ts │ │ └── react │ │ │ ├── BlockMenuPlugin.tsx │ │ │ ├── BlockSelectionPlugin.tsx │ │ │ ├── CursorOverlayPlugin.tsx │ │ │ ├── components │ │ │ ├── BlockSelectionAfterEditable.tsx │ │ │ └── index.ts │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useBlockSelectable.ts │ │ │ ├── useBlockSelected.ts │ │ │ ├── useBlockSelectionNodes.ts │ │ │ ├── useCursorOverlay.ts │ │ │ ├── useIsSelecting.ts │ │ │ ├── useRefreshOnResize.ts │ │ │ ├── useRequestReRender.ts │ │ │ └── useSelectionArea.ts │ │ │ ├── index.ts │ │ │ ├── internal │ │ │ └── api │ │ │ │ ├── moveSelection.spec.tsx │ │ │ │ ├── moveSelection.ts │ │ │ │ ├── setSelectedIds.spec.tsx │ │ │ │ ├── setSelectedIds.ts │ │ │ │ ├── shiftSelection.spec.tsx │ │ │ │ └── shiftSelection.ts │ │ │ ├── onKeyDownSelection.spec.tsx │ │ │ ├── onKeyDownSelection.ts │ │ │ ├── queries │ │ │ ├── getCaretPosition.ts │ │ │ ├── getCursorOverlayState.ts │ │ │ ├── getSelectionRects.ts │ │ │ └── index.ts │ │ │ ├── transforms │ │ │ ├── duplicateBlockSelectionNodes.ts │ │ │ ├── index.ts │ │ │ ├── insertBlocksAndSelect.ts │ │ │ ├── removeBlockSelectionNodes.ts │ │ │ ├── selectBlockSelectionNodes.ts │ │ │ └── setBlockSelectionNodes.ts │ │ │ ├── types.ts │ │ │ └── utils │ │ │ ├── copySelectedBlocks.ts │ │ │ ├── index.ts │ │ │ ├── pasteSelectedBlocks.ts │ │ │ └── selectInsertedBlocks.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── slash-command │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseSlashPlugin.ts │ │ │ └── index.ts │ │ └── react │ │ │ ├── SlashPlugin.tsx │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── slate │ ├── .npmignore │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ │ ├── create-editor.ts │ │ ├── index.ts │ │ ├── interfaces │ │ │ ├── editor │ │ │ │ ├── editor-api.ts │ │ │ │ ├── editor-transforms.ts │ │ │ │ ├── editor-type.ts │ │ │ │ ├── index.ts │ │ │ │ └── legacy-editor.ts │ │ │ ├── element.ts │ │ │ ├── index.ts │ │ │ ├── location-ref.ts │ │ │ ├── location.ts │ │ │ ├── node-children.spec.tsx │ │ │ ├── node-entry.ts │ │ │ ├── node.spec.tsx │ │ │ ├── node.ts │ │ │ ├── operation.ts │ │ │ ├── path.ts │ │ │ ├── point.spec.tsx │ │ │ ├── point.ts │ │ │ ├── range.ts │ │ │ ├── scroll.ts │ │ │ └── text.ts │ │ ├── internal │ │ │ ├── dom-editor │ │ │ │ ├── blur.ts │ │ │ │ ├── deselectDOM.ts │ │ │ │ ├── findDocumentOrShadowRoot.ts │ │ │ │ ├── findEventRange.ts │ │ │ │ ├── findKey.ts │ │ │ │ ├── findPath.ts │ │ │ │ ├── focus.ts │ │ │ │ ├── getWindow.ts │ │ │ │ ├── hasDOMNode.ts │ │ │ │ ├── hasEditableTarget.ts │ │ │ │ ├── hasRange.ts │ │ │ │ ├── hasSelectableTarget.ts │ │ │ │ ├── hasTarget.ts │ │ │ │ ├── insertData.ts │ │ │ │ ├── isComposing.ts │ │ │ │ ├── isFocused.ts │ │ │ │ ├── isReadOnly.ts │ │ │ │ ├── isTargetInsideNonReadonlyVoid.ts │ │ │ │ ├── setFragmentData.ts │ │ │ │ ├── toDOMNode.ts │ │ │ │ ├── toDOMPoint.ts │ │ │ │ ├── toDOMRange.ts │ │ │ │ ├── toSlateNode.ts │ │ │ │ ├── toSlatePoint.ts │ │ │ │ └── toSlateRange.ts │ │ │ ├── editor-extension │ │ │ │ ├── edge-blocks.ts │ │ │ │ ├── editor-block.spec.tsx │ │ │ │ ├── editor-block.ts │ │ │ │ ├── editor-blocks.ts │ │ │ │ ├── editor-descendant.ts │ │ │ │ ├── editor-mark.ts │ │ │ │ ├── hasMark.spec.tsx │ │ │ │ ├── hasMark.ts │ │ │ │ ├── is-selected.spec.ts │ │ │ │ ├── is-selected.ts │ │ │ │ ├── isAt.spec.tsx │ │ │ │ ├── isAt.ts │ │ │ │ ├── isEditorEnd.ts │ │ │ │ ├── isText.spec.tsx │ │ │ │ ├── isText.ts │ │ │ │ ├── node-extension.ts │ │ │ │ ├── nodes-range.ts │ │ │ │ ├── prop.ts │ │ │ │ ├── scrollIntoView.ts │ │ │ │ └── some.ts │ │ │ ├── editor │ │ │ │ ├── above.ts │ │ │ │ ├── addMark.ts │ │ │ │ ├── createPathRef.ts │ │ │ │ ├── createPointRef.ts │ │ │ │ ├── createRangeRef.ts │ │ │ │ ├── deleteBackward.ts │ │ │ │ ├── deleteForward.ts │ │ │ │ ├── deleteFragment.ts │ │ │ │ ├── editor-node.spec.tsx │ │ │ │ ├── editor-node.ts │ │ │ │ ├── editor-path.ts │ │ │ │ ├── getEdgePoints.ts │ │ │ │ ├── getEditorString.ts │ │ │ │ ├── getEndPoint.ts │ │ │ │ ├── getFirstNode.ts │ │ │ │ ├── getFragment.ts │ │ │ │ ├── getLeafNode.ts │ │ │ │ ├── getLevels.ts │ │ │ │ ├── getMarks.ts │ │ │ │ ├── getPathRefs.ts │ │ │ │ ├── getPoint.ts │ │ │ │ ├── getPointAfter.ts │ │ │ │ ├── getPointBefore.spec.tsx │ │ │ │ ├── getPointBefore.ts │ │ │ │ ├── getPointRefs.ts │ │ │ │ ├── getPositions.ts │ │ │ │ ├── getRange.spec.tsx │ │ │ │ ├── getRangeRefs.ts │ │ │ │ ├── getStartPoint.ts │ │ │ │ ├── getVoidNode.ts │ │ │ │ ├── hasBlocks.ts │ │ │ │ ├── hasInlines.ts │ │ │ │ ├── hasTexts.ts │ │ │ │ ├── insertBreak.ts │ │ │ │ ├── insertNode.ts │ │ │ │ ├── isBlock.ts │ │ │ │ ├── isEdgePoint.ts │ │ │ │ ├── isEditorNormalizing.ts │ │ │ │ ├── isElementReadOnly.ts │ │ │ │ ├── isEmpty.spec.tsx │ │ │ │ ├── isEmpty.ts │ │ │ │ ├── isEndPoint.ts │ │ │ │ ├── isStartPoint.ts │ │ │ │ ├── last.spec.tsx │ │ │ │ ├── last.ts │ │ │ │ ├── next.spec.tsx │ │ │ │ ├── next.ts │ │ │ │ ├── nodes.ts │ │ │ │ ├── normalizeEditor.ts │ │ │ │ ├── parent.spec.tsx │ │ │ │ ├── parent.ts │ │ │ │ ├── previous.spec.tsx │ │ │ │ ├── previous.ts │ │ │ │ ├── range.ts │ │ │ │ ├── removeEditorMark.ts │ │ │ │ ├── unhangRange.spec.ts │ │ │ │ ├── unhangRange.ts │ │ │ │ └── withoutNormalizing.ts │ │ │ ├── transforms-extension │ │ │ │ ├── addMarks.ts │ │ │ │ ├── duplicateNodes.ts │ │ │ │ ├── removeMarks.spec.tsx │ │ │ │ ├── removeMarks.ts │ │ │ │ ├── replaceNodes.spec.tsx │ │ │ │ ├── replaceNodes.ts │ │ │ │ ├── reset.spec.ts │ │ │ │ ├── reset.ts │ │ │ │ ├── toggleBlock.spec.tsx │ │ │ │ ├── toggleBlock.ts │ │ │ │ ├── toggleMark.spec.tsx │ │ │ │ └── toggleMark.ts │ │ │ └── transforms │ │ │ │ ├── collapseSelection.ts │ │ │ │ ├── deleteText.ts │ │ │ │ ├── deselect.spec.ts │ │ │ │ ├── deselect.ts │ │ │ │ ├── insertFragment.ts │ │ │ │ ├── insertNodes.ts │ │ │ │ ├── insertText.spec.tsx │ │ │ │ ├── insertText.ts │ │ │ │ ├── liftNodes.ts │ │ │ │ ├── mergeNodes.ts │ │ │ │ ├── moveNodes.spec.tsx │ │ │ │ ├── moveNodes.ts │ │ │ │ ├── moveSelection.ts │ │ │ │ ├── removeNodes.spec.tsx │ │ │ │ ├── removeNodes.ts │ │ │ │ ├── select.spec.tsx │ │ │ │ ├── select.ts │ │ │ │ ├── setNodes.spec.tsx │ │ │ │ ├── setNodes.ts │ │ │ │ ├── setPoint.ts │ │ │ │ ├── setSelection.ts │ │ │ │ ├── splitNodes.ts │ │ │ │ ├── unsetNodes.ts │ │ │ │ ├── unwrapNodes.ts │ │ │ │ ├── wrapNodes.spec.tsx │ │ │ │ └── wrapNodes.ts │ │ ├── slate-dom.ts │ │ ├── slate-history │ │ │ ├── history.ts │ │ │ ├── index.ts │ │ │ └── with-history.ts │ │ ├── types.ts │ │ └── utils │ │ │ ├── assignLegacyTransforms.ts │ │ │ ├── deleteMerge.ts │ │ │ ├── getAt.ts │ │ │ ├── index.ts │ │ │ ├── match.spec.ts │ │ │ ├── match.ts │ │ │ ├── queryEditor.ts │ │ │ └── queryNode.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── suggestion │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseSuggestionPlugin.ts │ │ │ ├── diffToSuggestions.ts │ │ │ ├── index.ts │ │ │ ├── insertBreakSuggestion.spec.tsx │ │ │ ├── queries │ │ │ │ ├── findSuggestionNode.ts │ │ │ │ ├── findSuggestionProps.ts │ │ │ │ └── index.ts │ │ │ ├── transforms │ │ │ │ ├── acceptSuggestion.spec.tsx │ │ │ │ ├── acceptSuggestion.ts │ │ │ │ ├── addMarkSuggestion.spec.tsx │ │ │ │ ├── addMarkSuggestion.ts │ │ │ │ ├── deleteFragmentSuggestion.ts │ │ │ │ ├── deleteSuggestion.ts │ │ │ │ ├── getSuggestionProps.ts │ │ │ │ ├── index.ts │ │ │ │ ├── insertFragmentSuggestion.ts │ │ │ │ ├── insertTextSuggestion.ts │ │ │ │ ├── rejectSuggestion.spec.tsx │ │ │ │ ├── rejectSuggestion.ts │ │ │ │ ├── removeMarkSuggestion.spec.tsx │ │ │ │ ├── removeMarkSuggestion.ts │ │ │ │ ├── removeNodesSuggestion.ts │ │ │ │ └── setSuggestionNodes.ts │ │ │ ├── types.ts │ │ │ ├── utils │ │ │ │ ├── getActiveSuggestionDescriptions.ts │ │ │ │ ├── getSuggestionId.ts │ │ │ │ ├── getSuggestionKeys.ts │ │ │ │ ├── getSuggestionNodeEntries.ts │ │ │ │ └── index.ts │ │ │ ├── withSuggestion.spec.tsx │ │ │ └── withSuggestion.ts │ │ └── react │ │ │ ├── SuggestionPlugin.tsx │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── tabbable │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseTabbablePlugin.ts │ │ │ ├── findTabDestination.spec.tsx │ │ │ ├── findTabDestination.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ └── react │ │ │ ├── TabbableEffects.tsx │ │ │ ├── TabbablePlugin.tsx │ │ │ └── index.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── table │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseTablePlugin.ts │ │ │ ├── api │ │ │ │ ├── getEmptyCellNode.ts │ │ │ │ ├── getEmptyRowNode.ts │ │ │ │ ├── getEmptyTableNode.ts │ │ │ │ └── index.ts │ │ │ ├── constants.ts │ │ │ ├── index.ts │ │ │ ├── merge │ │ │ │ ├── deleteColumn.ts │ │ │ │ ├── deleteColumnWhenExpanded.ts │ │ │ │ ├── deleteRow.ts │ │ │ │ ├── deleteRowWhenExpanded.ts │ │ │ │ ├── findCellByIndexes.ts │ │ │ │ ├── getCellIndicesWithSpans.ts │ │ │ │ ├── getCellPath.ts │ │ │ │ ├── getSelectionWidth.ts │ │ │ │ ├── getTableGridByRange.ts │ │ │ │ ├── getTableMergedColumnCount.ts │ │ │ │ ├── index.ts │ │ │ │ ├── insertTableColumn.ts │ │ │ │ ├── insertTableRow.ts │ │ │ │ ├── isTableRectangular.ts │ │ │ │ ├── mergeTableCells.ts │ │ │ │ └── splitTableCell.ts │ │ │ ├── normalizeInitialValueTable.ts │ │ │ ├── queries │ │ │ │ ├── getCellInNextTableRow.ts │ │ │ │ ├── getCellInPreviousTableRow.ts │ │ │ │ ├── getColSpan.ts │ │ │ │ ├── getLeftTableCell.ts │ │ │ │ ├── getNextTableCell.ts │ │ │ │ ├── getPreviousTableCell.ts │ │ │ │ ├── getRowSpan.ts │ │ │ │ ├── getSelectedCellsBorders.spec.tsx │ │ │ │ ├── getSelectedCellsBorders.ts │ │ │ │ ├── getSelectedCellsBoundingBox.spec.tsx │ │ │ │ ├── getSelectedCellsBoundingBox.ts │ │ │ │ ├── getTableAbove.ts │ │ │ │ ├── getTableCellBorders.ts │ │ │ │ ├── getTableCellSize.ts │ │ │ │ ├── getTableColumnCount.spec.tsx │ │ │ │ ├── getTableColumnCount.ts │ │ │ │ ├── getTableColumnIndex.ts │ │ │ │ ├── getTableEntries.ts │ │ │ │ ├── getTableGridAbove.ts │ │ │ │ ├── getTableGridByRange.spec.tsx │ │ │ │ ├── getTableGridByRange.ts │ │ │ │ ├── getTableOverriddenColSizes.spec.ts │ │ │ │ ├── getTableOverriddenColSizes.ts │ │ │ │ ├── getTableRowIndex.ts │ │ │ │ ├── getTopTableCell.spec.tsx │ │ │ │ ├── getTopTableCell.ts │ │ │ │ ├── index.ts │ │ │ │ ├── isTableBorderHidden.spec.tsx │ │ │ │ └── isTableBorderHidden.ts │ │ │ ├── transforms │ │ │ │ ├── deleteColumn.spec.tsx │ │ │ │ ├── deleteColumn.ts │ │ │ │ ├── deleteRow.ts │ │ │ │ ├── deleteTable.ts │ │ │ │ ├── index.ts │ │ │ │ ├── insertTable.spec.tsx │ │ │ │ ├── insertTable.ts │ │ │ │ ├── insertTableColumn.spec.tsx │ │ │ │ ├── insertTableColumn.ts │ │ │ │ ├── insertTableRow.spec.tsx │ │ │ │ ├── insertTableRow.ts │ │ │ │ ├── moveSelectionFromCell.ts │ │ │ │ ├── overrideSelectionFromCell.ts │ │ │ │ ├── setBorderSize.spec.tsx │ │ │ │ ├── setBorderSize.ts │ │ │ │ ├── setCellBackground.spec.tsx │ │ │ │ ├── setCellBackground.ts │ │ │ │ ├── setTableColSize.ts │ │ │ │ ├── setTableMarginLeft.ts │ │ │ │ └── setTableRowSize.ts │ │ │ ├── types.ts │ │ │ ├── utils │ │ │ │ ├── computeCellIndices.ts │ │ │ │ ├── getCellIndices.ts │ │ │ │ ├── getCellRowIndexByPath.ts │ │ │ │ ├── getCellType.ts │ │ │ │ └── index.ts │ │ │ ├── withApplyTable.ts │ │ │ ├── withDeleteTable.spec.tsx │ │ │ ├── withDeleteTable.ts │ │ │ ├── withGetFragmentTable.spec.tsx │ │ │ ├── withGetFragmentTable.ts │ │ │ ├── withInsertFragmentTable.spec.tsx │ │ │ ├── withInsertFragmentTable.ts │ │ │ ├── withInsertTextTable.spec.tsx │ │ │ ├── withInsertTextTable.ts │ │ │ ├── withMarkTable.tsx │ │ │ ├── withNormalizeTable.spec.tsx │ │ │ ├── withNormalizeTable.ts │ │ │ ├── withSetFragmentDataTable.ts │ │ │ └── withTable.ts │ │ └── react │ │ │ ├── TablePlugin.tsx │ │ │ ├── components │ │ │ ├── TableCellElement │ │ │ │ ├── TableCellElement.fixtures.tsx │ │ │ │ ├── getOnSelectTableBorderFactory.ts │ │ │ │ ├── index.ts │ │ │ │ ├── roundCellSizeToStep.spec.ts │ │ │ │ ├── roundCellSizeToStep.ts │ │ │ │ ├── setSelectedCellsBorder.spec.tsx │ │ │ │ ├── useIsCellSelected.ts │ │ │ │ ├── useTableBordersDropdownMenuContentState.ts │ │ │ │ ├── useTableCellBorders.ts │ │ │ │ ├── useTableCellElement.ts │ │ │ │ ├── useTableCellElementResizable.ts │ │ │ │ └── useTableCellSize.ts │ │ │ ├── TableElement │ │ │ │ ├── index.ts │ │ │ │ ├── useSelectedCells.ts │ │ │ │ ├── useTableColSizes.ts │ │ │ │ └── useTableElement.ts │ │ │ └── index.ts │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useCellIndices.ts │ │ │ └── useTableMergeState.ts │ │ │ ├── index.ts │ │ │ ├── onKeyDownTable.spec.tsx │ │ │ ├── onKeyDownTable.ts │ │ │ └── stores │ │ │ ├── index.ts │ │ │ └── useTableStore.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── tag │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseTagPlugin.ts │ │ │ ├── index.ts │ │ │ └── isEqualTags.ts │ │ └── react │ │ │ ├── TagPlugin.tsx │ │ │ ├── index.ts │ │ │ ├── useSelectEditorCombobox.ts │ │ │ ├── useSelectableItems.ts │ │ │ └── useSelectedItems.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── test-utils │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── createDataTransfer.ts │ │ ├── getHtmlDocument.ts │ │ ├── index.ts │ │ ├── internals │ │ │ ├── creators.ts │ │ │ ├── hyperscript.ts │ │ │ └── tokens.ts │ │ └── jsx.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── toggle │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── BaseTogglePlugin.ts │ │ │ ├── index.ts │ │ │ └── queries │ │ │ │ ├── index.ts │ │ │ │ └── someToggle.ts │ │ └── react │ │ │ ├── TogglePlugin.tsx │ │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useToggleButton.ts │ │ │ └── useToggleToolbarButton.ts │ │ │ ├── index.ts │ │ │ ├── queries │ │ │ ├── findElementIdsHiddenInToggle.ts │ │ │ ├── getEnclosingToggleIds.ts │ │ │ ├── getLastEntryEnclosedInToggle.ts │ │ │ ├── index.ts │ │ │ └── isInClosedToggle.ts │ │ │ ├── renderToggleAboveNodes.tsx │ │ │ ├── toggleIndexAtom.ts │ │ │ ├── transforms │ │ │ ├── index.ts │ │ │ ├── moveCurrentBlockAfterPreviousSelectable.ts │ │ │ ├── moveNextSelectableAfterCurrentBlock.ts │ │ │ └── openNextToggles.ts │ │ │ ├── useHooksToggle.ts │ │ │ └── withToggle.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── trailing-block │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── TrailingBlockPlugin.spec.tsx │ │ │ ├── TrailingBlockPlugin.ts │ │ │ ├── index.ts │ │ │ └── withTrailingBlock.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── utils │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── environment.ts │ │ ├── escapeRegexp.ts │ │ ├── findHtmlParentElement.ts │ │ ├── getHandler.spec.ts │ │ ├── getHandler.ts │ │ ├── hexToBase64.ts │ │ ├── index.ts │ │ ├── isUrl.spec.ts │ │ ├── isUrl.ts │ │ ├── mergeProps.ts │ │ ├── sanitizeUrl.spec.ts │ │ ├── sanitizeUrl.ts │ │ ├── type-utils.ts │ │ └── types │ │ │ ├── AnyObject.ts │ │ │ ├── Deep.ts │ │ │ ├── FunctionProperties.ts │ │ │ ├── Nullable.ts │ │ │ ├── WithOptional.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ ├── tsconfig.build.json │ └── tsconfig.json └── yjs │ ├── .npmignore │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ ├── index.ts │ ├── lib │ │ ├── BaseYjsPlugin.ts │ │ ├── index.ts │ │ ├── providers │ │ │ ├── hocuspocus-provider.ts │ │ │ ├── index.ts │ │ │ ├── registry.ts │ │ │ ├── types.ts │ │ │ └── webrtc-provider.ts │ │ ├── withPlateYjs.ts │ │ ├── withTCursors.ts │ │ ├── withTYHistory.ts │ │ └── withTYjs.ts │ ├── react │ │ ├── YjsPlugin.tsx │ │ └── index.ts │ └── utils │ │ ├── index.ts │ │ └── slateToDeterministicYjsState.ts │ ├── tsconfig.build.json │ └── tsconfig.json ├── postcss.config.mjs ├── prettier.config.mjs ├── templates ├── plate-playground-template │ ├── .cursor │ │ └── mcp.json │ ├── .env.example │ ├── .github │ │ └── workflows │ │ │ └── build.yml │ ├── .gitignore │ ├── .prettierignore │ ├── LICENSE │ ├── README.md │ ├── components.json │ ├── eslint.config.mjs │ ├── next-env.d.ts │ ├── next.config.mjs │ ├── package.json │ ├── pnpm-lock.yaml │ ├── postcss.config.mjs │ ├── prettier.config.mjs │ ├── src │ │ ├── app │ │ │ ├── api │ │ │ │ ├── ai │ │ │ │ │ ├── command │ │ │ │ │ │ └── route.ts │ │ │ │ │ └── copilot │ │ │ │ │ │ └── route.ts │ │ │ │ └── uploadthing │ │ │ │ │ └── route.ts │ │ │ ├── editor │ │ │ │ └── page.tsx │ │ │ ├── favicon.ico │ │ │ ├── fonts │ │ │ │ ├── GeistMonoVF.woff │ │ │ │ └── GeistVF.woff │ │ │ ├── globals.css │ │ │ ├── layout.tsx │ │ │ └── page.tsx │ │ ├── components │ │ │ ├── editor │ │ │ │ ├── plate-editor.tsx │ │ │ │ ├── plate-types.ts │ │ │ │ ├── plugins │ │ │ │ │ ├── ai-plugins.tsx │ │ │ │ │ ├── align-plugin.ts │ │ │ │ │ ├── autoformat-plugin.ts │ │ │ │ │ ├── basic-nodes-plugins.tsx │ │ │ │ │ ├── block-menu-plugins.ts │ │ │ │ │ ├── block-selection-plugins.tsx │ │ │ │ │ ├── comments-plugin.tsx │ │ │ │ │ ├── copilot-plugins.tsx │ │ │ │ │ ├── cursor-overlay-plugin.tsx │ │ │ │ │ ├── delete-plugins.ts │ │ │ │ │ ├── discussion-plugin.tsx │ │ │ │ │ ├── dnd-plugins.tsx │ │ │ │ │ ├── editor-plugins.tsx │ │ │ │ │ ├── equation-plugins.ts │ │ │ │ │ ├── exit-break-plugin.ts │ │ │ │ │ ├── fixed-toolbar-plugin.tsx │ │ │ │ │ ├── floating-toolbar-plugin.tsx │ │ │ │ │ ├── indent-list-plugins.ts │ │ │ │ │ ├── line-height-plugin.ts │ │ │ │ │ ├── link-plugin.tsx │ │ │ │ │ ├── markdown-plugin.tsx │ │ │ │ │ ├── media-plugins.tsx │ │ │ │ │ ├── mention-plugin.ts │ │ │ │ │ ├── reset-block-type-plugin.ts │ │ │ │ │ ├── skip-mark-plugin.ts │ │ │ │ │ ├── soft-break-plugin.ts │ │ │ │ │ ├── suggestion-plugin.tsx │ │ │ │ │ ├── table-plugin.ts │ │ │ │ │ └── toc-plugin.ts │ │ │ │ ├── settings.tsx │ │ │ │ ├── transforms.ts │ │ │ │ ├── use-chat.ts │ │ │ │ └── use-create-editor.ts │ │ │ └── ui │ │ │ │ ├── ai-anchor-element.tsx │ │ │ │ ├── ai-chat-editor.tsx │ │ │ │ ├── ai-leaf.tsx │ │ │ │ ├── ai-loading-bar.tsx │ │ │ │ ├── ai-menu-items.tsx │ │ │ │ ├── ai-menu.tsx │ │ │ │ ├── ai-toolbar-button.tsx │ │ │ │ ├── alert-dialog.tsx │ │ │ │ ├── align-dropdown-menu.tsx │ │ │ │ ├── avatar.tsx │ │ │ │ ├── block-context-menu.tsx │ │ │ │ ├── block-discussion.tsx │ │ │ │ ├── block-selection.tsx │ │ │ │ ├── block-suggestion.tsx │ │ │ │ ├── blockquote-element-static.tsx │ │ │ │ ├── blockquote-element.tsx │ │ │ │ ├── button.tsx │ │ │ │ ├── calendar.tsx │ │ │ │ ├── callout-element-static.tsx │ │ │ │ ├── callout-element.tsx │ │ │ │ ├── caption.tsx │ │ │ │ ├── checkbox.tsx │ │ │ │ ├── code-block-combobox.tsx │ │ │ │ ├── code-block-element-static.tsx │ │ │ │ ├── code-block-element.tsx │ │ │ │ ├── code-leaf-static.tsx │ │ │ │ ├── code-leaf.tsx │ │ │ │ ├── code-line-element-static.tsx │ │ │ │ ├── code-line-element.tsx │ │ │ │ ├── code-syntax-leaf-static.tsx │ │ │ │ ├── code-syntax-leaf.tsx │ │ │ │ ├── color-constants.ts │ │ │ │ ├── color-dropdown-menu-items.tsx │ │ │ │ ├── color-dropdown-menu.tsx │ │ │ │ ├── color-input.tsx │ │ │ │ ├── color-picker.tsx │ │ │ │ ├── colors-custom.tsx │ │ │ │ ├── column-element-static.tsx │ │ │ │ ├── column-element.tsx │ │ │ │ ├── column-group-element-static.tsx │ │ │ │ ├── column-group-element.tsx │ │ │ │ ├── command.tsx │ │ │ │ ├── comment-create-form.tsx │ │ │ │ ├── comment-leaf-static.tsx │ │ │ │ ├── comment-leaf.tsx │ │ │ │ ├── comment-toolbar-button.tsx │ │ │ │ ├── comment.tsx │ │ │ │ ├── context-menu.tsx │ │ │ │ ├── cursor-overlay.tsx │ │ │ │ ├── date-element-static.tsx │ │ │ │ ├── date-element.tsx │ │ │ │ ├── dialog.tsx │ │ │ │ ├── draggable.tsx │ │ │ │ ├── dropdown-menu.tsx │ │ │ │ ├── editor-static.tsx │ │ │ │ ├── editor.tsx │ │ │ │ ├── emoji-dropdown-menu.tsx │ │ │ │ ├── emoji-icons.tsx │ │ │ │ ├── emoji-input-element.tsx │ │ │ │ ├── emoji-picker-content.tsx │ │ │ │ ├── emoji-picker-navigation.tsx │ │ │ │ ├── emoji-picker-preview.tsx │ │ │ │ ├── emoji-picker-search-and-clear.tsx │ │ │ │ ├── emoji-picker-search-bar.tsx │ │ │ │ ├── emoji-picker.tsx │ │ │ │ ├── emoji-toolbar-dropdown.tsx │ │ │ │ ├── equation-element-static.tsx │ │ │ │ ├── equation-element.tsx │ │ │ │ ├── equation-popover.tsx │ │ │ │ ├── excalidraw-element.tsx │ │ │ │ ├── export-toolbar-button.tsx │ │ │ │ ├── fixed-toolbar-buttons.tsx │ │ │ │ ├── fixed-toolbar.tsx │ │ │ │ ├── floating-toolbar-buttons.tsx │ │ │ │ ├── floating-toolbar.tsx │ │ │ │ ├── font-size-toolbar-button.tsx │ │ │ │ ├── ghost-text.tsx │ │ │ │ ├── heading-element-static.tsx │ │ │ │ ├── heading-element.tsx │ │ │ │ ├── highlight-leaf-static.tsx │ │ │ │ ├── highlight-leaf.tsx │ │ │ │ ├── history-toolbar-button.tsx │ │ │ │ ├── hr-element-static.tsx │ │ │ │ ├── hr-element.tsx │ │ │ │ ├── image-element-static.tsx │ │ │ │ ├── image-element.tsx │ │ │ │ ├── image-preview.tsx │ │ │ │ ├── import-toolbar-button.tsx │ │ │ │ ├── indent-fire-marker.tsx │ │ │ │ ├── indent-list-toolbar-button.tsx │ │ │ │ ├── indent-todo-marker-static.tsx │ │ │ │ ├── indent-todo-marker.tsx │ │ │ │ ├── indent-todo-toolbar-button.tsx │ │ │ │ ├── indent-toolbar-button.tsx │ │ │ │ ├── inline-combobox.tsx │ │ │ │ ├── inline-equation-element-static.tsx │ │ │ │ ├── inline-equation-element.tsx │ │ │ │ ├── inline-equation-toolbar-button.tsx │ │ │ │ ├── input.tsx │ │ │ │ ├── insert-dropdown-menu.tsx │ │ │ │ ├── kbd-leaf-static.tsx │ │ │ │ ├── kbd-leaf.tsx │ │ │ │ ├── line-height-dropdown-menu.tsx │ │ │ │ ├── link-element-static.tsx │ │ │ │ ├── link-element.tsx │ │ │ │ ├── link-floating-toolbar.tsx │ │ │ │ ├── link-toolbar-button.tsx │ │ │ │ ├── mark-toolbar-button.tsx │ │ │ │ ├── media-audio-element-static.tsx │ │ │ │ ├── media-audio-element.tsx │ │ │ │ ├── media-embed-element.tsx │ │ │ │ ├── media-file-element-static.tsx │ │ │ │ ├── media-file-element.tsx │ │ │ │ ├── media-placeholder-element.tsx │ │ │ │ ├── media-popover.tsx │ │ │ │ ├── media-toolbar-button.tsx │ │ │ │ ├── media-upload-toast.tsx │ │ │ │ ├── media-video-element-static.tsx │ │ │ │ ├── media-video-element.tsx │ │ │ │ ├── mention-element-static.tsx │ │ │ │ ├── mention-element.tsx │ │ │ │ ├── mention-input-element.tsx │ │ │ │ ├── mode-dropdown-menu.tsx │ │ │ │ ├── more-dropdown-menu.tsx │ │ │ │ ├── outdent-toolbar-button.tsx │ │ │ │ ├── paragraph-element-static.tsx │ │ │ │ ├── paragraph-element.tsx │ │ │ │ ├── placeholder.tsx │ │ │ │ ├── popover.tsx │ │ │ │ ├── resize-handle.tsx │ │ │ │ ├── separator.tsx │ │ │ │ ├── slash-input-element.tsx │ │ │ │ ├── suggestion-leaf-static.tsx │ │ │ │ ├── suggestion-leaf.tsx │ │ │ │ ├── suggestion-line-break.tsx │ │ │ │ ├── suggestion-toolbar-button.tsx │ │ │ │ ├── table-cell-element-static.tsx │ │ │ │ ├── table-cell-element.tsx │ │ │ │ ├── table-dropdown-menu.tsx │ │ │ │ ├── table-element-static.tsx │ │ │ │ ├── table-element.tsx │ │ │ │ ├── table-icons.tsx │ │ │ │ ├── table-row-element-static.tsx │ │ │ │ ├── table-row-element.tsx │ │ │ │ ├── toc-element-static.tsx │ │ │ │ ├── toc-element.tsx │ │ │ │ ├── toggle-element-static.tsx │ │ │ │ ├── toggle-element.tsx │ │ │ │ ├── toggle-toolbar-button.tsx │ │ │ │ ├── toolbar.tsx │ │ │ │ ├── tooltip.tsx │ │ │ │ └── turn-into-dropdown-menu.tsx │ │ ├── hooks │ │ │ ├── use-debounce.ts │ │ │ ├── use-is-touch-device.ts │ │ │ ├── use-mounted.ts │ │ │ └── use-upload-file.ts │ │ └── lib │ │ │ ├── uploadthing.ts │ │ │ └── utils.ts │ └── tsconfig.json └── plate-template │ ├── .cursor │ └── mcp.json │ ├── .github │ └── workflows │ │ └── build.yml │ ├── .gitignore │ ├── .prettierignore │ ├── LICENSE │ ├── README.md │ ├── components.json │ ├── eslint.config.mjs │ ├── next-env.d.ts │ ├── next.config.mjs │ ├── package.json │ ├── pnpm-lock.yaml │ ├── postcss.config.mjs │ ├── prettier.config.mjs │ ├── src │ ├── app │ │ ├── editor │ │ │ └── page.tsx │ │ ├── favicon.ico │ │ ├── fonts │ │ │ ├── GeistMonoVF.woff │ │ │ └── GeistVF.woff │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── page.tsx │ ├── components │ │ ├── editor │ │ │ ├── plate-editor.tsx │ │ │ └── use-create-editor.ts │ │ └── ui │ │ │ ├── editor-static.tsx │ │ │ └── editor.tsx │ └── lib │ │ └── utils.ts │ └── tsconfig.json ├── tooling ├── CHANGELOG_36.md ├── CONTRIBUTING.md ├── cn │ ├── CONTRIBUTING.md │ └── README.md ├── config │ ├── .ncurc.yml │ ├── aliases.cjs │ ├── deprecate │ │ ├── README.md │ │ └── package.json │ ├── playwright.config.ts │ ├── renovate.json │ ├── setupTests.ts │ ├── styleMock.cjs │ ├── tsconfig.base.json │ ├── tsconfig.build.json │ ├── tsconfig.test.json │ ├── tsup.config.ts │ ├── turbowatch.config.ts │ ├── vitest.config.ts │ └── vitest.setup.ts ├── e2e │ └── plate-controller.spec.ts ├── eslint │ ├── eslint.config.js │ ├── eslint.d.ts │ ├── package.json │ ├── src │ │ ├── configs │ │ │ ├── base.js │ │ │ ├── jest.js │ │ │ ├── next.js │ │ │ ├── perfectionist.js │ │ │ ├── playwright.js │ │ │ ├── prettier.base.config.js │ │ │ ├── prettier.js │ │ │ ├── react.js │ │ │ ├── rtl.js │ │ │ ├── security.js │ │ │ ├── tailwind.js │ │ │ ├── typescript.js │ │ │ └── unicorn.js │ │ ├── index.d.ts │ │ ├── index.js │ │ └── utils.js │ └── tsconfig.json ├── patches │ ├── is-hotkey+0.2.0.patch │ └── react-dnd+16.0.1.patch ├── scripts │ ├── add-ai.sh │ ├── add-basic.sh │ ├── brl.sh │ ├── init-plate-template.sh │ ├── init-plate.sh │ ├── init.sh │ ├── init2.sh │ ├── jsdom+19.0.0.patch │ ├── post-ai.sh │ ├── post-basic.sh │ ├── pre-ai.sh │ ├── pre-basic.sh │ ├── sync-templates.sh │ ├── translate.mjs │ └── vendor.sh └── vendor.md ├── tsconfig.json ├── turbo.json ├── vercel.json └── yarn.lock /.cursor/rules/mdx.mdc: -------------------------------------------------------------------------------- 1 | --- 2 | description: Codeblocks in mdx files 3 | globs: *.mdx 4 | --- 5 | - for mdx output, always use `` instead of ``` EXCEPT for the start and end of the file 6 | -------------------------------------------------------------------------------- /.cursor/rules/react-components.mdc: -------------------------------------------------------------------------------- 1 | --- 2 | description: React components 3 | globs: *.tsx 4 | --- 5 | - components: always export function, never export default except pages and layout, never type React.FC, use props inline type. 6 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: zbeyens 2 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v22 -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/dist 2 | **/node_modules 3 | **/.next 4 | **/build 5 | **/index.ts 6 | **/*.mdx 7 | **/__tests__/**/*.html 8 | **/.contentlayer 9 | **/__registry__ 10 | **/og 11 | apps/www/src/app/globals.css -------------------------------------------------------------------------------- /apps/www/.gitignore: -------------------------------------------------------------------------------- 1 | .next 2 | .contentlayer 3 | tsconfig.tsbuildinfo 4 | -------------------------------------------------------------------------------- /apps/www/README.md: -------------------------------------------------------------------------------- 1 | # Documentation 2 | 3 | This is the documentation for the Plate project. 4 | 5 | ## Usage 6 | 7 | Anytime you make a change in the `registry` folder, run: 8 | 9 | ```bash 10 | yarn build:registry 11 | ``` 12 | 13 | ## License 14 | 15 | [MIT](./LICENSE) 16 | -------------------------------------------------------------------------------- /apps/www/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { plugins: { '@tailwindcss/postcss': {} } }; 2 | -------------------------------------------------------------------------------- /apps/www/public/_og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/public/_og.png -------------------------------------------------------------------------------- /apps/www/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/public/apple-touch-icon.png -------------------------------------------------------------------------------- /apps/www/public/favicon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/public/favicon-48x48.png -------------------------------------------------------------------------------- /apps/www/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/public/favicon.ico -------------------------------------------------------------------------------- /apps/www/public/web-app-manifest-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/public/web-app-manifest-192x192.png -------------------------------------------------------------------------------- /apps/www/public/web-app-manifest-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/public/web-app-manifest-512x512.png -------------------------------------------------------------------------------- /apps/www/src/assets/fonts/CalSans-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/src/assets/fonts/CalSans-SemiBold.ttf -------------------------------------------------------------------------------- /apps/www/src/assets/fonts/CalSans-SemiBold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/src/assets/fonts/CalSans-SemiBold.woff -------------------------------------------------------------------------------- /apps/www/src/assets/fonts/CalSans-SemiBold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/src/assets/fonts/CalSans-SemiBold.woff2 -------------------------------------------------------------------------------- /apps/www/src/assets/fonts/Inter-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/src/assets/fonts/Inter-Bold.ttf -------------------------------------------------------------------------------- /apps/www/src/assets/fonts/Inter-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/src/assets/fonts/Inter-Regular.ttf -------------------------------------------------------------------------------- /apps/www/src/config/routes.ts: -------------------------------------------------------------------------------- 1 | export const routes = { 2 | alignment: '/docs/alignment', 3 | home: '/', 4 | list: '/docs/list', 5 | }; 6 | -------------------------------------------------------------------------------- /apps/www/src/hooks/useLocale.ts: -------------------------------------------------------------------------------- 1 | import { useSearchParams } from 'next/navigation'; 2 | 3 | export const useLocale = () => { 4 | const searchParams = useSearchParams(); 5 | const locale = searchParams?.get('locale') || 'en'; 6 | 7 | return locale; 8 | }; 9 | -------------------------------------------------------------------------------- /apps/www/src/lib/absoluteUrl.ts: -------------------------------------------------------------------------------- 1 | export function absoluteUrl(path: string) { 2 | return `${process.env.NEXT_PUBLIC_APP_URL ?? 'http://localhost:3000'}${path}`; 3 | } 4 | -------------------------------------------------------------------------------- /apps/www/src/lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from 'clsx'; 2 | import { twMerge } from 'tailwind-merge'; 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)); 6 | } 7 | -------------------------------------------------------------------------------- /apps/www/src/lib/withLocale.ts: -------------------------------------------------------------------------------- 1 | export const hrefWithLocale = (href: string, locale: string) => { 2 | if (locale === 'cn') { 3 | return `/cn${href}?locale=${locale}`; 4 | } 5 | 6 | return href; 7 | }; 8 | -------------------------------------------------------------------------------- /apps/www/src/pages/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/src/pages/.gitkeep -------------------------------------------------------------------------------- /apps/www/src/pages/api/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/apps/www/src/pages/api/.gitkeep -------------------------------------------------------------------------------- /apps/www/src/registry/app/api/uploadthing/route.ts: -------------------------------------------------------------------------------- 1 | import { createRouteHandler } from 'uploadthing/next'; 2 | 3 | import { ourFileRouter } from '@/registry/lib/uploadthing'; 4 | 5 | export const { GET, POST } = createRouteHandler({ router: ourFileRouter }); 6 | -------------------------------------------------------------------------------- /apps/www/src/registry/components/editor/plugins/equation-plugins.ts: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { 4 | EquationPlugin, 5 | InlineEquationPlugin, 6 | } from '@udecode/plate-math/react'; 7 | 8 | export const equationPlugins = [InlineEquationPlugin, EquationPlugin]; 9 | -------------------------------------------------------------------------------- /apps/www/src/registry/components/editor/plugins/mention-plugin.ts: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { MentionPlugin } from '@udecode/plate-mention/react'; 4 | 5 | export const mentionPlugin = MentionPlugin.configure({ 6 | options: { triggerPreviousCharPattern: /^$|^[\s"']$/ }, 7 | }); 8 | -------------------------------------------------------------------------------- /apps/www/src/registry/components/editor/plugins/table-plugin.ts: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { TablePlugin } from '@udecode/plate-table/react'; 4 | 5 | export const tablePlugin = TablePlugin.configure({ 6 | options: {}, 7 | }); 8 | -------------------------------------------------------------------------------- /apps/www/src/registry/components/editor/plugins/toc-plugin.ts: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { TocPlugin } from '@udecode/plate-heading/react'; 4 | 5 | export const tocPlugin = TocPlugin.configure({ 6 | options: { 7 | // isScroll: true, 8 | topOffset: 80, 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /apps/www/src/registry/hooks/use-mounted.ts: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | export function useMounted() { 4 | const [mounted, setMounted] = React.useState(false); 5 | 6 | React.useEffect(() => { 7 | setMounted(true); 8 | }, []); 9 | 10 | return mounted; 11 | } 12 | -------------------------------------------------------------------------------- /apps/www/src/registry/ui/code-line-element-static.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | import { type SlateElementProps, SlateElement } from '@udecode/plate'; 4 | 5 | export function CodeLineElementStatic(props: SlateElementProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /apps/www/src/registry/ui/code-line-element.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { type PlateElementProps, PlateElement } from '@udecode/plate/react'; 4 | 5 | export function CodeLineElement(props: PlateElementProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /apps/www/src/registry/ui/search-highlight-leaf.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { type PlateLeafProps, PlateLeaf } from '@udecode/plate/react'; 4 | 5 | export function SearchHighlightLeaf(props: PlateLeafProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /docs/examples/collaboration-example.cn.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 协作演示 3 | --- 4 | 5 | -------------------------------------------------------------------------------- /docs/examples/collaboration-example.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Collaboration Demo 3 | --- 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/examples/editable-voids.cn.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 可编辑的空元素 3 | --- 4 | 5 | 6 | ``` -------------------------------------------------------------------------------- /docs/examples/editable-voids.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Editable Voids 3 | --- 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/examples/hundreds-blocks.cn.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 百位方块 3 | --- 4 | 5 | 6 | ``` -------------------------------------------------------------------------------- /docs/examples/hundreds-blocks.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Hundreds Blocks 3 | --- 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/examples/hundreds-editors.cn.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Hundreds Editors 3 | --- 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/examples/hundreds-editors.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Hundreds Editors 3 | --- 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/examples/preview-markdown.cn.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: 预览 Markdown 3 | --- 4 | 5 | 6 | ``` -------------------------------------------------------------------------------- /docs/examples/preview-markdown.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Preview Markdown 3 | --- 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/docs/img.png -------------------------------------------------------------------------------- /languine.json: -------------------------------------------------------------------------------- 1 | { 2 | "language": { 3 | "source": "en", 4 | "targets": ["cn"] 5 | }, 6 | "content": [ 7 | { 8 | "source": "docs/*.mdx", 9 | "target": "docs/*.cn.mdx" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /packages/ai/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/ai/README.md: -------------------------------------------------------------------------------- 1 | # Plate ai 2 | 3 | Visit https://platejs.org/docs/ai to view the documentation. 4 | 5 | ## License 6 | 7 | [MIT](../../LICENSE) 8 | -------------------------------------------------------------------------------- /packages/ai/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/ai/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseAIPlugin'; 6 | export * from './streaming/index'; 7 | export * from './transforms/index'; 8 | -------------------------------------------------------------------------------- /packages/ai/src/lib/streaming/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './escapeInput'; 6 | export * from './getIndentListNode'; 7 | export * from './isSameNode'; 8 | export * from './nodesWithProps'; 9 | export * from './utils'; 10 | -------------------------------------------------------------------------------- /packages/ai/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertAINodes'; 6 | export * from './removeAIMarks'; 7 | export * from './removeAINodes'; 8 | export * from './undoAI'; 9 | export * from './withAIBatch'; 10 | -------------------------------------------------------------------------------- /packages/ai/src/react/ai-chat/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useAIChatEditor'; 6 | export * from './useChatChunk'; 7 | export * from './useEditorChat'; 8 | -------------------------------------------------------------------------------- /packages/ai/src/react/ai-chat/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './acceptAIChat'; 6 | export * from './insertBelowAIChat'; 7 | export * from './removeAnchorAIChat'; 8 | export * from './replaceSelectionAIChat'; 9 | -------------------------------------------------------------------------------- /packages/ai/src/react/ai/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './AIPlugin'; 6 | -------------------------------------------------------------------------------- /packages/ai/src/react/copilot/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './acceptCopilot'; 6 | export * from './acceptCopilotNextWord'; 7 | -------------------------------------------------------------------------------- /packages/ai/src/react/copilot/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './callCompletionApi'; 6 | export * from './getNextWord'; 7 | export * from './triggerCopilotSuggestion'; 8 | export * from './withoutAbort'; 9 | -------------------------------------------------------------------------------- /packages/ai/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './ai/index'; 6 | export * from './ai-chat/index'; 7 | export * from './copilot/index'; 8 | -------------------------------------------------------------------------------- /packages/ai/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/ai/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/alignment/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/alignment/README.md: -------------------------------------------------------------------------------- 1 | # Plate alignment 2 | 3 | Visit https://platejs.org/docs/alignment to view the documentation. 4 | 5 | ## License 6 | 7 | [MIT](../../LICENSE) 8 | -------------------------------------------------------------------------------- /packages/alignment/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/alignment/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseAlignPlugin'; 6 | export * from './types'; 7 | export * from './transforms/index'; 8 | -------------------------------------------------------------------------------- /packages/alignment/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './setAlign'; 6 | -------------------------------------------------------------------------------- /packages/alignment/src/lib/types.ts: -------------------------------------------------------------------------------- 1 | export type Alignment = 2 | | 'center' 3 | | 'end' 4 | | 'justify' 5 | | 'left' 6 | | 'right' 7 | | 'start'; 8 | -------------------------------------------------------------------------------- /packages/alignment/src/react/AlignPlugin.tsx: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseAlignPlugin } from '../lib/index'; 4 | 5 | export const AlignPlugin = toPlatePlugin(BaseAlignPlugin); 6 | -------------------------------------------------------------------------------- /packages/alignment/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './AlignPlugin'; 6 | export * from './useAlignDropdownMenu'; 7 | -------------------------------------------------------------------------------- /packages/alignment/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/alignment/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/autoformat/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/autoformat/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/autoformat/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './autoformatBlock'; 6 | export * from './autoformatMark'; 7 | export * from './autoformatText'; 8 | -------------------------------------------------------------------------------- /packages/autoformat/src/lib/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './getMatchPoints'; 6 | export * from './getMatchRange'; 7 | export * from './isPreviousCharacterEmpty'; 8 | -------------------------------------------------------------------------------- /packages/autoformat/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './AutoformatPlugin'; 6 | export * from './onKeyDownAutoformat'; 7 | -------------------------------------------------------------------------------- /packages/autoformat/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/autoformat/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/basic-elements/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/basic-elements/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/basic-elements/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseBasicElementsPlugin'; 6 | -------------------------------------------------------------------------------- /packages/basic-elements/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BasicElementsPlugin'; 6 | -------------------------------------------------------------------------------- /packages/basic-elements/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/basic-elements/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/basic-marks/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/basic-marks/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/basic-marks/src/react/SkipMarkPlugin.ts: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseSkipMarkPlugin } from '../lib/BaseSkipMarkPlugin'; 4 | 5 | export const SkipMarkPlugin = toPlatePlugin(BaseSkipMarkPlugin); 6 | -------------------------------------------------------------------------------- /packages/basic-marks/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/basic-marks/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/block-quote/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/block-quote/README.md: -------------------------------------------------------------------------------- 1 | # Plate block quote plugin 2 | 3 | This package implements the block quote plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out 8 | [Basic Elements](https://platejs.org/docs/basic-elements). 9 | 10 | ## License 11 | 12 | [MIT](../../LICENSE) 13 | -------------------------------------------------------------------------------- /packages/block-quote/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/block-quote/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseBlockquotePlugin'; 6 | export * from './withBlockquote'; 7 | -------------------------------------------------------------------------------- /packages/block-quote/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BlockquotePlugin'; 6 | -------------------------------------------------------------------------------- /packages/block-quote/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/block-quote/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/break/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/break/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/break/src/lib/exit-break/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseExitBreakPlugin'; 6 | export * from './types'; 7 | export * from './queries/index'; 8 | export * from './transforms/index'; 9 | -------------------------------------------------------------------------------- /packages/break/src/lib/exit-break/queries/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './exitBreakAtEdges'; 6 | -------------------------------------------------------------------------------- /packages/break/src/lib/exit-break/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './exitBreak'; 6 | -------------------------------------------------------------------------------- /packages/break/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './exit-break/index'; 6 | export * from './single-line/index'; 7 | export * from './soft-break/index'; 8 | -------------------------------------------------------------------------------- /packages/break/src/lib/single-line/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseSingleLinePlugin'; 6 | export * from './withSingleLine'; 7 | -------------------------------------------------------------------------------- /packages/break/src/lib/soft-break/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseSoftBreakPlugin'; 6 | -------------------------------------------------------------------------------- /packages/break/src/react/exit-break/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './ExitBreakPlugin'; 6 | export * from './onKeyDownExitBreak'; 7 | -------------------------------------------------------------------------------- /packages/break/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './exit-break/index'; 6 | export * from './single-line/index'; 7 | export * from './soft-break/index'; 8 | -------------------------------------------------------------------------------- /packages/break/src/react/single-line/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './SingleLinePlugin'; 6 | export * from './onKeyDownSingleLine'; 7 | -------------------------------------------------------------------------------- /packages/break/src/react/soft-break/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './SoftBreakPlugin'; 6 | export * from './onKeyDownSoftBreak'; 7 | -------------------------------------------------------------------------------- /packages/break/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/break/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/callout/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/callout/README.md: -------------------------------------------------------------------------------- 1 | # Plate callout plugins 2 | 3 | This package implements the callout block plugins for Plate. 4 | 5 | ## License 6 | 7 | [MIT](../../LICENSE) 8 | -------------------------------------------------------------------------------- /packages/callout/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/callout/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseCalloutPlugin'; 6 | export * from './transforms/index'; 7 | -------------------------------------------------------------------------------- /packages/callout/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertCallout'; 6 | -------------------------------------------------------------------------------- /packages/callout/src/react/CalloutPlugin.tsx: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseCalloutPlugin } from '../lib'; 4 | 5 | export const CalloutPlugin = toPlatePlugin(BaseCalloutPlugin); 6 | -------------------------------------------------------------------------------- /packages/callout/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useCalloutEmojiPicker'; 6 | -------------------------------------------------------------------------------- /packages/callout/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './CalloutPlugin'; 6 | export * from './hooks/index'; 7 | -------------------------------------------------------------------------------- /packages/callout/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/callout/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/caption/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/caption/README.md: -------------------------------------------------------------------------------- 1 | # Caption 2 | 3 | ## License 4 | 5 | [MIT](../../LICENSE) 6 | -------------------------------------------------------------------------------- /packages/caption/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/caption/src/lib/TCaptionElement.ts: -------------------------------------------------------------------------------- 1 | import type { Descendant, TElement } from '@udecode/plate'; 2 | 3 | export interface TCaptionElement extends TElement { 4 | caption?: Descendant[]; 5 | } 6 | -------------------------------------------------------------------------------- /packages/caption/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseCaptionPlugin'; 6 | export * from './TCaptionElement'; 7 | export * from './withCaption'; 8 | -------------------------------------------------------------------------------- /packages/caption/src/react/components/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './Caption'; 6 | export * from './CaptionButton'; 7 | export * from './CaptionTextarea'; 8 | export * from './TextareaAutosize'; 9 | -------------------------------------------------------------------------------- /packages/caption/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useCaptionString'; 6 | -------------------------------------------------------------------------------- /packages/caption/src/react/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './showCaption'; 6 | -------------------------------------------------------------------------------- /packages/caption/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/caption/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/cmdk/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/cmdk/README.md: -------------------------------------------------------------------------------- 1 | # cmdk 2 | 3 | Fork of [cmdk](https://github.com/pacocoursey/cmdk) with control actions. 4 | 5 | - `useCommandActions` hook to control the command menu. 6 | 7 | ## License 8 | 9 | [MIT](../../LICENSE) 10 | -------------------------------------------------------------------------------- /packages/cmdk/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './cmdk'; 6 | -------------------------------------------------------------------------------- /packages/cmdk/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/cmdk/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/cn/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/cn/README.md: -------------------------------------------------------------------------------- 1 | # `cn` utils 2 | 3 | React & Tailwind utils used by Plate UI. 4 | 5 | ## Documentation 6 | 7 | Visit https://platejs.org/docs/api/cn to view the documentation. 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/cn/src/index.tsx: -------------------------------------------------------------------------------- 1 | /** @file Automatically generated by barrelsby. */ 2 | 3 | export * from './cn'; 4 | 5 | export * from './withCn'; 6 | 7 | export * from './withProps'; 8 | 9 | export * from './withVariants'; 10 | 11 | export * from '@udecode/react-utils'; 12 | -------------------------------------------------------------------------------- /packages/cn/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/cn/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/code-block/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/code-block/README.md: -------------------------------------------------------------------------------- 1 | # Plate code block plugin 2 | 3 | This package implements the code block plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out 8 | [Basic Elements](https://platejs.org/docs/basic-elements). 9 | 10 | ## License 11 | 12 | [MIT](../../LICENSE) 13 | -------------------------------------------------------------------------------- /packages/code-block/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/code-block/src/lib/deserializer/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './htmlDeserializerCodeBlock'; 6 | -------------------------------------------------------------------------------- /packages/code-block/src/lib/formatter/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './formatter'; 6 | export * from './jsonFormatter'; 7 | -------------------------------------------------------------------------------- /packages/code-block/src/lib/queries/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './getCodeLineEntry'; 6 | export * from './getIndentDepth'; 7 | export * from './isCodeBlockEmpty'; 8 | export * from './isSelectionAtCodeBlockStart'; 9 | -------------------------------------------------------------------------------- /packages/code-block/src/lib/types.ts: -------------------------------------------------------------------------------- 1 | import type { TElement } from '@udecode/plate'; 2 | 3 | export interface TCodeBlockElement extends TElement { 4 | lang?: string; 5 | } 6 | -------------------------------------------------------------------------------- /packages/code-block/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './CodeBlockPlugin'; 6 | export * from './onKeyDownCodeBlock'; 7 | -------------------------------------------------------------------------------- /packages/code-block/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/code-block/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/combobox/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/combobox/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/combobox/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './types'; 6 | export * from './withTriggerCombobox'; 7 | export * from './utils/index'; 8 | -------------------------------------------------------------------------------- /packages/combobox/src/lib/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './filterWords'; 6 | -------------------------------------------------------------------------------- /packages/combobox/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useComboboxInput'; 6 | export * from './useHTMLInputCursorState'; 7 | -------------------------------------------------------------------------------- /packages/combobox/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './hooks/index'; 6 | -------------------------------------------------------------------------------- /packages/combobox/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/combobox/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/comments/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/comments/README.md: -------------------------------------------------------------------------------- 1 | # Plate comments plugin 2 | 3 | This package implements the comments plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [comments](https://platejs.org/docs/comments). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/comments/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/comments/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseCommentsPlugin'; 6 | export * from './types'; 7 | export * from './withComments'; 8 | export * from './utils/index'; 9 | -------------------------------------------------------------------------------- /packages/comments/src/lib/types.ts: -------------------------------------------------------------------------------- 1 | import type { TText } from '@udecode/plate'; 2 | 3 | export interface TCommentText extends TText { 4 | comment?: boolean; 5 | } 6 | -------------------------------------------------------------------------------- /packages/comments/src/lib/utils/getCommentKey.ts: -------------------------------------------------------------------------------- 1 | import { BaseCommentsPlugin } from '../BaseCommentsPlugin'; 2 | 3 | export const getCommentKey = (id: string) => `${BaseCommentsPlugin.key}_${id}`; 4 | -------------------------------------------------------------------------------- /packages/comments/src/lib/utils/getCommentKeyId.ts: -------------------------------------------------------------------------------- 1 | import { BaseCommentsPlugin } from '../BaseCommentsPlugin'; 2 | 3 | export const getCommentKeyId = (key: string) => 4 | key.replace(`${BaseCommentsPlugin.key}_`, ''); 5 | -------------------------------------------------------------------------------- /packages/comments/src/lib/utils/getDraftCommentKey.ts: -------------------------------------------------------------------------------- 1 | import { BaseCommentsPlugin } from '../BaseCommentsPlugin'; 2 | 3 | export const getDraftCommentKey = () => `${BaseCommentsPlugin.key}_draft`; 4 | -------------------------------------------------------------------------------- /packages/comments/src/lib/utils/isCommentKey.ts: -------------------------------------------------------------------------------- 1 | import { BaseCommentsPlugin } from '../BaseCommentsPlugin'; 2 | 3 | export const isCommentKey = (key: string) => 4 | key.startsWith(`${BaseCommentsPlugin.key}_`); 5 | -------------------------------------------------------------------------------- /packages/comments/src/react/CommentsPlugin.tsx: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseCommentsPlugin } from '../lib'; 4 | 5 | export const CommentsPlugin = toPlatePlugin(BaseCommentsPlugin); 6 | -------------------------------------------------------------------------------- /packages/comments/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useCommentId'; 6 | -------------------------------------------------------------------------------- /packages/comments/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './CommentsPlugin'; 6 | export * from './hooks/index'; 7 | -------------------------------------------------------------------------------- /packages/comments/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/comments/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/core/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/core/README.md: -------------------------------------------------------------------------------- 1 | # Plate Core 2 | 3 | This package provides the foundational structure of the Plate editor framework. 4 | 5 | ## Documentation 6 | 7 | Visit https://platejs.org/docs/api/core to view the documentation. 8 | 9 | ## License 10 | 11 | [MIT](./LICENSE) 12 | -------------------------------------------------------------------------------- /packages/core/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/core/src/internal/types.ts: -------------------------------------------------------------------------------- 1 | export type MaybeReturnType = T extends (...args: any) => any 2 | ? ReturnType 3 | : T; 4 | 5 | export type NoInfer = [T][T extends any ? 0 : never]; 6 | -------------------------------------------------------------------------------- /packages/core/src/internal/utils/isFunction.ts: -------------------------------------------------------------------------------- 1 | export function isFunction(value: any): value is Function { 2 | return typeof value === 'function'; 3 | } 4 | -------------------------------------------------------------------------------- /packages/core/src/lib/editor/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './SlateEditor'; 6 | export * from './withSlate'; 7 | -------------------------------------------------------------------------------- /packages/core/src/lib/libs/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './nanoid'; 6 | export * from './zustand'; 7 | -------------------------------------------------------------------------------- /packages/core/src/lib/libs/nanoid.ts: -------------------------------------------------------------------------------- 1 | export { nanoid } from 'nanoid'; 2 | -------------------------------------------------------------------------------- /packages/core/src/lib/libs/zustand.ts: -------------------------------------------------------------------------------- 1 | export type { TStateApi as ZustandStoreApi } from 'zustand-x'; 2 | 3 | export { createZustandStore } from 'zustand-x'; 4 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugin/HandlerReturnType.ts: -------------------------------------------------------------------------------- 1 | /** If true, the next handlers will be skipped. */ 2 | export type HandlerReturnType = boolean | void; 3 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/debug/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './DebugPlugin'; 6 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/dom/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './DOMPlugin'; 6 | export * from './withScrolling'; 7 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './HtmlPlugin'; 6 | export * from './constants'; 7 | export * from './types'; 8 | export * from './utils/index'; 9 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/cleanHtmlCrLf.spec.ts: -------------------------------------------------------------------------------- 1 | import { cleanHtmlCrLf } from './cleanHtmlCrLf'; 2 | 3 | const output = 'a\nb\nc\n'; 4 | 5 | it('should be', () => { 6 | expect(cleanHtmlCrLf(`a\r\nb\nc\r`)).toEqual(output); 7 | }); 8 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/cleanHtmlCrLf.ts: -------------------------------------------------------------------------------- 1 | /** Replace \r\n and \r with \n */ 2 | export const cleanHtmlCrLf = (html: string): string => { 3 | return html.replaceAll(/\r\n|\r/g, '\n'); 4 | }; 5 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/htmlBrToNewLine.ts: -------------------------------------------------------------------------------- 1 | /** Deserialize HTML to break line. */ 2 | export const htmlBrToNewLine = (node: ChildNode | HTMLElement) => { 3 | if (node.nodeName === 'BR') { 4 | return '\n'; 5 | } 6 | }; 7 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/htmlStringToDOMNode.ts: -------------------------------------------------------------------------------- 1 | /** Convert HTML string into HTML element. */ 2 | export const htmlStringToDOMNode = (rawHtml: string) => { 3 | const node = document.createElement('body'); 4 | node.innerHTML = rawHtml; 5 | 6 | return node; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/isHtmlComment.ts: -------------------------------------------------------------------------------- 1 | export const isHtmlComment = (node: Node): node is Comment => 2 | node.nodeType === Node.COMMENT_NODE; 3 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/isHtmlElement.ts: -------------------------------------------------------------------------------- 1 | export const isHtmlElement = (node: Node): node is Element => 2 | node.nodeType === Node.ELEMENT_NODE; 3 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/isHtmlFragmentHref.ts: -------------------------------------------------------------------------------- 1 | /** If href starts with '#'. */ 2 | export const isHtmlFragmentHref = (href: string): boolean => 3 | href.startsWith('#'); 4 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/isHtmlTable.ts: -------------------------------------------------------------------------------- 1 | export const isHtmlTable = (element: Element) => element.nodeName === 'TABLE'; 2 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/isHtmlText.ts: -------------------------------------------------------------------------------- 1 | export const isHtmlText = (node: Node): node is Text => 2 | node.nodeType === Node.TEXT_NODE; 3 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/isOlSymbol.ts: -------------------------------------------------------------------------------- 1 | export const isOlSymbol = (symbol: string): boolean => { 2 | return /[\da-np-z]\S/.test(symbol.toLowerCase()); 3 | }; 4 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/parseHtmlDocument.ts: -------------------------------------------------------------------------------- 1 | export const parseHtmlDocument = (html: string) => { 2 | return new DOMParser().parseFromString(html, 'text/html'); 3 | }; 4 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/parseHtmlElement.ts: -------------------------------------------------------------------------------- 1 | import { parseHtmlDocument } from './parseHtmlDocument'; 2 | 3 | export const parseHtmlElement = (html: string) => { 4 | const { body } = parseHtmlDocument(html); 5 | 6 | return body.firstElementChild as HTMLElement; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/html/utils/unwrapHtmlElement.ts: -------------------------------------------------------------------------------- 1 | /** Unwrap the given HTML element. */ 2 | export const unwrapHtmlElement = (element: Element): void => { 3 | element.outerHTML = element.innerHTML; 4 | }; 5 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/length/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './LengthPlugin'; 6 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/paragraph/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseParagraphPlugin'; 6 | -------------------------------------------------------------------------------- /packages/core/src/lib/plugins/slate-extension/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './SlateExtensionPlugin'; 6 | -------------------------------------------------------------------------------- /packages/core/src/lib/static/components/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './PlateStatic'; 6 | export * from './slate-nodes'; 7 | -------------------------------------------------------------------------------- /packages/core/src/lib/static/deserialize/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './checkUtils'; 6 | export * from './htmlStringToEditorDOM'; 7 | -------------------------------------------------------------------------------- /packages/core/src/lib/types/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './EditableProps'; 6 | export * from './RenderElementProps'; 7 | export * from './RenderLeafProps'; 8 | export * from './RenderTextProps'; 9 | -------------------------------------------------------------------------------- /packages/core/src/lib/utils/getSlateClass.ts: -------------------------------------------------------------------------------- 1 | /** Get slate class name: slate- */ 2 | export const getSlateClass = (type?: string) => (type ? `slate-${type}` : ''); 3 | -------------------------------------------------------------------------------- /packages/core/src/react/editor/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './PlateEditor'; 6 | export * from './getPlateCorePlugins'; 7 | export * from './usePlateEditor'; 8 | export * from './withPlate'; 9 | -------------------------------------------------------------------------------- /packages/core/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useEditableProps'; 6 | export * from './useNodePath'; 7 | export * from './useSlateProps'; 8 | -------------------------------------------------------------------------------- /packages/core/src/react/libs/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './jotai'; 6 | -------------------------------------------------------------------------------- /packages/core/src/react/plugins/event-editor/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './EventEditorPlugin'; 6 | export * from './EventEditorStore'; 7 | export * from './getEventPlateId'; 8 | export * from './useFocusEditorEvents'; 9 | -------------------------------------------------------------------------------- /packages/core/src/react/plugins/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './SlateReactExtensionPlugin'; 6 | export * from './event-editor/index'; 7 | export * from './paragraph/index'; 8 | export * from './react/index'; -------------------------------------------------------------------------------- /packages/core/src/react/plugins/paragraph/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './ParagraphPlugin'; 6 | -------------------------------------------------------------------------------- /packages/core/src/react/plugins/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './ReactPlugin'; 6 | export * from './withPlateReact'; 7 | -------------------------------------------------------------------------------- /packages/core/src/react/stores/element/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useElement'; 6 | export * from './useElementSelector'; 7 | export * from './useElementStore'; 8 | export * from './usePath'; 9 | -------------------------------------------------------------------------------- /packages/core/src/react/stores/event-editor/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useEventPlateId'; 6 | -------------------------------------------------------------------------------- /packages/core/src/react/stores/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './element/index'; 6 | export * from './event-editor/index'; 7 | export * from './plate/index'; 8 | export * from './plate-controller/index'; 9 | -------------------------------------------------------------------------------- /packages/core/src/react/stores/plate-controller/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './plateControllerStore'; 6 | -------------------------------------------------------------------------------- /packages/core/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [], 5 | "compilerOptions": { 6 | "paths": { 7 | "@/*": ["../../apps/www/src/*"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/csv/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/csv/README.md: -------------------------------------------------------------------------------- 1 | # Plate CSV serializer plugin 2 | 3 | This package implements the CSV serializer for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [Playground](https://platejs.org/docs/playground). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/csv/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/csv/src/lib/deserializer/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './utils/index'; 6 | -------------------------------------------------------------------------------- /packages/csv/src/lib/deserializer/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './deserializeCsv'; 6 | -------------------------------------------------------------------------------- /packages/csv/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './CsvPlugin'; 6 | export * from './deserializer/index'; 7 | -------------------------------------------------------------------------------- /packages/csv/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/csv/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/cursor/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/cursor/README.md: -------------------------------------------------------------------------------- 1 | # Plate Cursor Overlay 2 | 3 | This package implements a cursor overlay for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out 8 | [Cursor Overlay](https://platejs.org/docs/components/cursor-overlay). 9 | 10 | ## License 11 | 12 | [MIT](../../LICENSE) 13 | -------------------------------------------------------------------------------- /packages/cursor/src/components/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './CursorOverlay'; 6 | -------------------------------------------------------------------------------- /packages/cursor/src/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useCursorOverlayPositions'; 6 | export * from './useRefreshOnResize'; 7 | export * from './useRequestReRender'; 8 | -------------------------------------------------------------------------------- /packages/cursor/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './types'; 6 | export * from './components/index'; 7 | export * from './hooks/index'; 8 | export * from './queries/index'; 9 | -------------------------------------------------------------------------------- /packages/cursor/src/queries/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './getCaretPosition'; 6 | export * from './getCursorOverlayState'; 7 | export * from './getSelectionRects'; 8 | -------------------------------------------------------------------------------- /packages/cursor/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/cursor/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/date/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/date/README.md: -------------------------------------------------------------------------------- 1 | # Plate date plugin 2 | 3 | This package implements the date plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [date](https://platejs.org/docs/date). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/date/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/date/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseDatePlugin'; 6 | export * from './queries/index'; 7 | export * from './transforms/index'; 8 | -------------------------------------------------------------------------------- /packages/date/src/lib/queries/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './isPointNextToNode'; 6 | -------------------------------------------------------------------------------- /packages/date/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertDate'; 6 | -------------------------------------------------------------------------------- /packages/date/src/react/DatePlugin.tsx: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseDatePlugin } from '../lib'; 4 | 5 | export const DatePlugin = toPlatePlugin(BaseDatePlugin); 6 | -------------------------------------------------------------------------------- /packages/date/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './DatePlugin'; 6 | -------------------------------------------------------------------------------- /packages/date/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/date/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/depset/CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/depset/CHANGELOG.md -------------------------------------------------------------------------------- /packages/depset/src/utils/spinner.ts: -------------------------------------------------------------------------------- 1 | import ora, { type Options } from 'ora'; 2 | 3 | export function spinner( 4 | text: Options['text'], 5 | options?: { 6 | silent?: boolean; 7 | } 8 | ) { 9 | return ora({ 10 | isSilent: options?.silent, 11 | text, 12 | }); 13 | } 14 | -------------------------------------------------------------------------------- /packages/depset/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/diff/.npmignore: -------------------------------------------------------------------------------- 1 | src/diff/internal 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/diff/README.md: -------------------------------------------------------------------------------- 1 | # Compute a diff of two Slate documents 2 | 3 | ## License 4 | 5 | [See LICENSE](./LICENSE) 6 | -------------------------------------------------------------------------------- /packages/diff/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/diff/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './computeDiff'; 6 | export * from './types'; 7 | export * from './withGetFragmentExcludeDiff'; 8 | -------------------------------------------------------------------------------- /packages/diff/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/diff/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/dnd/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/dnd/README.md: -------------------------------------------------------------------------------- 1 | # Plate Drag & Drop 2 | 3 | Visit https://platejs.org/docs/dnd to view the documentation. 4 | 5 | ## License 6 | 7 | [MIT](../../LICENSE) 8 | -------------------------------------------------------------------------------- /packages/dnd/src/components/Scroller/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './DndScroller'; 6 | export * from './ScrollArea'; 7 | export * from './Scroller'; 8 | -------------------------------------------------------------------------------- /packages/dnd/src/components/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useDraggable'; 6 | export * from './useDropLine'; 7 | export * from './Scroller/index'; 8 | -------------------------------------------------------------------------------- /packages/dnd/src/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useDndNode'; 6 | export * from './useDragNode'; 7 | export * from './useDropNode'; 8 | -------------------------------------------------------------------------------- /packages/dnd/src/queries/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './getBlocksWithId'; 6 | -------------------------------------------------------------------------------- /packages/dnd/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './getHoverDirection'; 6 | export * from './getNewDirection'; 7 | -------------------------------------------------------------------------------- /packages/dnd/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/dnd/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/docx/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/docx/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/align.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/align.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/alternate_document_path.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/alternate_document_path.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/block_quotes.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/block_quotes.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/char_styles.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/char_styles.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/codeblock.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/codeblock.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/custom-style-reference.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/custom-style-reference.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/dummy_item_after_list_item.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/dummy_item_after_list_item.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/dummy_item_after_paragraph.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/dummy_item_after_paragraph.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/font.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/font.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/headers.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/headers.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/inline_code.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/inline_code.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/inline_formatting.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/inline_formatting.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/legal.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/legal.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/line-height.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/line-height.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/links.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/links.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/lists.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/lists.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/lists_continuing.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/lists_continuing.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/lists_restarting.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/lists_restarting.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/lists_sublist_reset.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/lists_sublist_reset.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/numbered_header.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/numbered_header.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/numbered_sublist.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/numbered_sublist.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/tables.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/tables.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/__tests__/tabs.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/packages/docx/src/lib/__tests__/tabs.docx -------------------------------------------------------------------------------- /packages/docx/src/lib/docx-cleaner/__tests__/input/empty-paragraphs.html: -------------------------------------------------------------------------------- 1 |

 

2 |

 

-------------------------------------------------------------------------------- /packages/docx/src/lib/docx-cleaner/__tests__/input/whitespaces-1.html: -------------------------------------------------------------------------------- 1 |

Bold Normal text Italics Underline Bold 2 | italics underline superscript2 subscript2 normal 3 | text, prezly.com,

-------------------------------------------------------------------------------- /packages/docx/src/lib/docx-cleaner/__tests__/input/whitespaces-2.html: -------------------------------------------------------------------------------- 1 |

aaaa
2 | bbbb

-------------------------------------------------------------------------------- /packages/docx/src/lib/docx-cleaner/__tests__/input/whitespaces-3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
    4 |
  • “Share 5 | this page” in the CTA should just say “Share”.  The landing page CTA 6 | rule would apply.
  • 7 |
8 | 9 | -------------------------------------------------------------------------------- /packages/docx/src/lib/docx-cleaner/__tests__/output/empty-paragraphs.html: -------------------------------------------------------------------------------- 1 |

2 | -------------------------------------------------------------------------------- /packages/docx/src/lib/docx-cleaner/__tests__/output/whitespaces-2.html: -------------------------------------------------------------------------------- 1 |

aaaa 2 | bbbb

3 | -------------------------------------------------------------------------------- /packages/docx/src/lib/docx-cleaner/__tests__/output/whitespaces-3.html: -------------------------------------------------------------------------------- 1 |
  • “Share this page” in the CTA should just say “Share”.  The landing page CTA rule would apply.
2 | -------------------------------------------------------------------------------- /packages/docx/src/lib/docx-cleaner/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './cleanDocx'; 6 | export * from './types'; 7 | export * from './utils/index'; 8 | -------------------------------------------------------------------------------- /packages/docx/src/lib/docx-cleaner/types.ts: -------------------------------------------------------------------------------- 1 | export interface RtfImage { 2 | hex: string; 3 | mimeType: string; 4 | spid: string; 5 | } 6 | 7 | export type RtfImagesMap = Record; 8 | -------------------------------------------------------------------------------- /packages/docx/src/lib/docx-cleaner/utils/getDocxListNode.ts: -------------------------------------------------------------------------------- 1 | export const getDocxListNode = (element: Element): Node | null => { 2 | return ( 3 | element.querySelector('[style="mso-list:Ignore"]') || 4 | element.querySelector('span[lang]') 5 | ); 6 | }; 7 | -------------------------------------------------------------------------------- /packages/docx/src/lib/docx-cleaner/utils/isDocxBookmark.ts: -------------------------------------------------------------------------------- 1 | export const isDocxBookmark = (element: Element): boolean => { 2 | const styleAttribute = element.getAttribute('style'); 3 | 4 | return ( 5 | (styleAttribute || '').startsWith('mso-bookmark') && !element.textContent 6 | ); 7 | }; 8 | -------------------------------------------------------------------------------- /packages/docx/src/lib/docx-cleaner/utils/isDocxFootnote.ts: -------------------------------------------------------------------------------- 1 | /** Is element a docx footnote. */ 2 | export const isDocxFootnote = (element: Element): boolean => { 3 | return ( 4 | element.tagName === 'SPAN' && 5 | element.classList.contains('MsoFootnoteReference') 6 | ); 7 | }; 8 | -------------------------------------------------------------------------------- /packages/docx/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './DocxPlugin'; 6 | export * from './docx-cleaner/index'; 7 | -------------------------------------------------------------------------------- /packages/docx/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/docx/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/emoji/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/emoji/README.md: -------------------------------------------------------------------------------- 1 | # Plate emoji plugin 2 | 3 | This package implements the emoji plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [Emoji](https://platejs.org/docs/emoji). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/emoji/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/emoji/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseEmojiPlugin'; 6 | export * from './constants'; 7 | export * from './types'; 8 | export * from './transforms/index'; 9 | export * from './utils/index'; 10 | -------------------------------------------------------------------------------- /packages/emoji/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertEmoji'; 6 | -------------------------------------------------------------------------------- /packages/emoji/src/lib/utils/EmojiLibrary/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './EmojiInlineLibrary'; 6 | export * from './EmojiLibrary.types'; 7 | -------------------------------------------------------------------------------- /packages/emoji/src/lib/utils/Grid/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './Grid'; 6 | export * from './Grid.types'; 7 | export * from './GridSection'; 8 | -------------------------------------------------------------------------------- /packages/emoji/src/lib/utils/IndexSearch/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './EmojiFloatingIndexSearch'; 6 | export * from './EmojiInlineIndexSearch'; 7 | export * from './IndexSearch'; 8 | -------------------------------------------------------------------------------- /packages/emoji/src/lib/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './EmojiLibrary/index'; 6 | export * from './Grid/index'; 7 | export * from './IndexSearch/index'; 8 | -------------------------------------------------------------------------------- /packages/emoji/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useEmojiDropdownMenuState'; 6 | export * from './useEmojiPicker'; 7 | -------------------------------------------------------------------------------- /packages/emoji/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './EmojiPlugin'; 6 | export * from './hooks/index'; 7 | export * from './storage/index'; 8 | export * from './utils/index'; 9 | -------------------------------------------------------------------------------- /packages/emoji/src/react/storage/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './FrequentEmojiStorage'; 6 | export * from './LocalStorage'; 7 | -------------------------------------------------------------------------------- /packages/emoji/src/react/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './EmojiObserver'; 6 | export * from './EmojiPickerState'; 7 | export * from './EmojiLibrary/index'; 8 | -------------------------------------------------------------------------------- /packages/emoji/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/emoji/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/excalidraw/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/excalidraw/README.md: -------------------------------------------------------------------------------- 1 | # Plate excalidraw plugin 2 | 3 | This package implements the excalidraw plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out 8 | [Excalidraw](https://platejs.org/docs/excalidraw). 9 | 10 | ## License 11 | 12 | [MIT](../../LICENSE) 13 | -------------------------------------------------------------------------------- /packages/excalidraw/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/excalidraw/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseExcalidrawPlugin'; 6 | export * from './types'; 7 | export * from './transforms/index'; 8 | -------------------------------------------------------------------------------- /packages/excalidraw/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertExcalidraw'; 6 | -------------------------------------------------------------------------------- /packages/excalidraw/src/react/ExcalidrawPlugin.tsx: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseExcalidrawPlugin } from '../lib'; 4 | 5 | export const ExcalidrawPlugin = toPlatePlugin(BaseExcalidrawPlugin); 6 | -------------------------------------------------------------------------------- /packages/excalidraw/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useExcalidrawElement'; 6 | -------------------------------------------------------------------------------- /packages/excalidraw/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './ExcalidrawPlugin'; 6 | export * from './types'; 7 | export * from './hooks/index'; 8 | -------------------------------------------------------------------------------- /packages/excalidraw/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/excalidraw/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/find-replace/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/find-replace/README.md: -------------------------------------------------------------------------------- 1 | # Plate find and replace plugin 2 | 3 | This package implements the find and replace plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [Find & Replace](https://platejs.org/docs/find-replace). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/find-replace/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/find-replace/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './FindReplacePlugin'; 6 | export * from './decorateFindReplace'; 7 | -------------------------------------------------------------------------------- /packages/find-replace/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/find-replace/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/floating/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/floating/README.md: -------------------------------------------------------------------------------- 1 | # Plate floating UI 2 | 3 | This package implements the floating UI for Plate. 4 | 5 | ## Documentation 6 | 7 | See Link, Mention. 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/floating/src/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useFloatingToolbar'; 6 | export * from './useVirtualFloating'; 7 | -------------------------------------------------------------------------------- /packages/floating/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './createVirtualElement'; 6 | export * from './hooks/index'; 7 | export * from './libs/index'; 8 | export * from './utils/index'; 9 | -------------------------------------------------------------------------------- /packages/floating/src/libs/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './floating-ui'; 6 | -------------------------------------------------------------------------------- /packages/floating/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/floating/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/font/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/font/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/font/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './setBlockBackgroundColor'; 6 | export * from './setFontSize'; 7 | -------------------------------------------------------------------------------- /packages/font/src/lib/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './toUnitLess'; 6 | -------------------------------------------------------------------------------- /packages/font/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useColorDropdownMenu'; 6 | export * from './useColorInput'; 7 | export * from './useColorsCustom'; 8 | -------------------------------------------------------------------------------- /packages/font/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './FontPlugin'; 6 | export * from './hooks/index'; 7 | -------------------------------------------------------------------------------- /packages/font/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/font/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/heading/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/heading/README.md: -------------------------------------------------------------------------------- 1 | # Plate headings plugin 2 | 3 | This package implements the headings plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out 8 | [Basic Elements](https://platejs.org/docs/basic-elements). 9 | 10 | ## License 11 | 12 | [MIT](../../LICENSE) 13 | -------------------------------------------------------------------------------- /packages/heading/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/heading/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertToc'; 6 | -------------------------------------------------------------------------------- /packages/heading/src/lib/types.ts: -------------------------------------------------------------------------------- 1 | import type { Path } from '@udecode/plate'; 2 | 3 | export interface Heading { 4 | id: string; 5 | depth: number; 6 | path: Path; 7 | title: string; 8 | type: string; 9 | } 10 | -------------------------------------------------------------------------------- /packages/heading/src/lib/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './isHeading'; 6 | -------------------------------------------------------------------------------- /packages/heading/src/lib/utils/isHeading.ts: -------------------------------------------------------------------------------- 1 | import type { TNode } from '@udecode/plate'; 2 | 3 | import { HEADING_LEVELS } from '../constants'; 4 | 5 | export const isHeading = (node: TNode) => { 6 | return node.type && HEADING_LEVELS.includes(node.type as any); 7 | }; 8 | -------------------------------------------------------------------------------- /packages/heading/src/react/TocPlugin.tsx: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseTocPlugin } from '../lib'; 4 | 5 | export const TocPlugin = toPlatePlugin(BaseTocPlugin); 6 | -------------------------------------------------------------------------------- /packages/heading/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './HeadingPlugin'; 6 | export * from './TocPlugin'; 7 | export * from './types'; 8 | export * from './hooks/index'; 9 | export * from './utils/index'; 10 | -------------------------------------------------------------------------------- /packages/heading/src/react/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './checkIn'; 6 | export * from './heightToTop'; 7 | -------------------------------------------------------------------------------- /packages/heading/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/heading/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/highlight/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/highlight/README.md: -------------------------------------------------------------------------------- 1 | # Plate highlight plugin 2 | 3 | This package implements the text highlight plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [Highlight](https://platejs.org/docs/highlight). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/highlight/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/highlight/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseHighlightPlugin'; 6 | -------------------------------------------------------------------------------- /packages/highlight/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './HighlightPlugin'; 6 | -------------------------------------------------------------------------------- /packages/highlight/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/highlight/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/horizontal-rule/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/horizontal-rule/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/horizontal-rule/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseHorizontalRulePlugin'; 6 | -------------------------------------------------------------------------------- /packages/horizontal-rule/src/react/HorizontalRulePlugin.tsx: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseHorizontalRulePlugin } from '../lib'; 4 | 5 | export const HorizontalRulePlugin = toPlatePlugin(BaseHorizontalRulePlugin); 6 | -------------------------------------------------------------------------------- /packages/horizontal-rule/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './HorizontalRulePlugin'; 6 | -------------------------------------------------------------------------------- /packages/horizontal-rule/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/horizontal-rule/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/indent-list/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/indent-list/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/indent-list/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useIndentListToolbarButton'; 6 | export * from './useIndentTodoListElement'; 7 | export * from './useIndentTodoToolbarButton'; 8 | -------------------------------------------------------------------------------- /packages/indent-list/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './IndentListPlugin'; 6 | export * from './onKeyDownIndentList'; 7 | export * from './hooks/index'; 8 | -------------------------------------------------------------------------------- /packages/indent-list/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/indent-list/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/indent/README.md: -------------------------------------------------------------------------------- 1 | # Plate block indentation plugin 2 | 3 | This package implements block indentation support for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [Indentation](https://platejs.org/docs/indent). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/indent/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/indent/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseIndentPlugin'; 6 | export * from './BaseTextIndentPlugin'; 7 | export * from './withIndent'; 8 | export * from './transforms/index'; 9 | -------------------------------------------------------------------------------- /packages/indent/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './indent'; 6 | export * from './outdent'; 7 | export * from './setIndent'; 8 | -------------------------------------------------------------------------------- /packages/indent/src/react/TextIndentPlugin.tsx: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseTextIndentPlugin } from '../lib'; 4 | 5 | export const TextIndentPlugin = toPlatePlugin(BaseTextIndentPlugin); 6 | -------------------------------------------------------------------------------- /packages/indent/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useIndentButton'; 6 | export * from './useOutdentButton'; 7 | -------------------------------------------------------------------------------- /packages/indent/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './IndentPlugin'; 6 | export * from './TextIndentPlugin'; 7 | export * from './onKeyDownIndent'; 8 | export * from './hooks/index'; 9 | -------------------------------------------------------------------------------- /packages/indent/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/indent/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/juice/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/juice/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/juice/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './JuicePlugin'; 6 | -------------------------------------------------------------------------------- /packages/juice/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/juice/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/kbd/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/kbd/README.md: -------------------------------------------------------------------------------- 1 | # Plate keyboard input plugin 2 | 3 | This package implements the keyboard input plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [Keyboard Input](https://platejs.org/docs/kbd). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/kbd/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/kbd/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseKbdPlugin'; 6 | -------------------------------------------------------------------------------- /packages/kbd/src/react/KbdPlugin.tsx: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseKbdPlugin } from '../lib/BaseKbdPlugin'; 4 | 5 | /** Enables support for code formatting with React-specific features */ 6 | export const KbdPlugin = toPlatePlugin(BaseKbdPlugin); 7 | -------------------------------------------------------------------------------- /packages/kbd/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './KbdPlugin'; 6 | -------------------------------------------------------------------------------- /packages/kbd/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/kbd/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/layout/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/layout/README.md: -------------------------------------------------------------------------------- 1 | # Plate Column plugin 2 | -------------------------------------------------------------------------------- /packages/layout/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/layout/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseColumnPlugin'; 6 | export * from './types'; 7 | export * from './withColumn'; 8 | export * from './transforms/index'; 9 | export * from './utils/index'; 10 | -------------------------------------------------------------------------------- /packages/layout/src/lib/utils/columnsToWidths.ts: -------------------------------------------------------------------------------- 1 | export const columnsToWidths = ({ columns = 2 }: { columns?: number } = {}) => 2 | new Array(columns).fill(null).map(() => `${100 / columns}%`); 3 | -------------------------------------------------------------------------------- /packages/layout/src/lib/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './columnsToWidths'; 6 | -------------------------------------------------------------------------------- /packages/layout/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useDebouncePopoverOpen'; 6 | -------------------------------------------------------------------------------- /packages/layout/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './ColumnPlugin'; 6 | export * from './onKeyDownColumn'; 7 | export * from './hooks/index'; 8 | -------------------------------------------------------------------------------- /packages/layout/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/layout/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/line-height/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/line-height/README.md: -------------------------------------------------------------------------------- 1 | # Plate line height plugin 2 | 3 | This package implements the line height plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [Line height](https://platejs.org/docs/line-height). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/line-height/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/line-height/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseLineHeightPlugin'; 6 | export * from './transforms/index'; 7 | -------------------------------------------------------------------------------- /packages/line-height/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './setLineHeight'; 6 | -------------------------------------------------------------------------------- /packages/line-height/src/react/LineHeightPlugin.tsx: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseLineHeightPlugin } from '../lib'; 4 | 5 | export const LineHeightPlugin = toPlatePlugin(BaseLineHeightPlugin); 6 | -------------------------------------------------------------------------------- /packages/line-height/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useLineHeightDropdownMenu'; 6 | -------------------------------------------------------------------------------- /packages/line-height/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './LineHeightPlugin'; 6 | export * from './hooks/index'; 7 | -------------------------------------------------------------------------------- /packages/line-height/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/line-height/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/link/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/link/README.md: -------------------------------------------------------------------------------- 1 | # Plate link plugin 2 | 3 | This package implements the link plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [Link](https://platejs.org/docs/link). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/link/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/link/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseLinkPlugin'; 6 | export * from './types'; 7 | export * from './withLink'; 8 | export * from './transforms/index'; 9 | export * from './utils/index'; 10 | -------------------------------------------------------------------------------- /packages/link/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertLink'; 6 | export * from './unwrapLink'; 7 | export * from './upsertLink'; 8 | export * from './upsertLinkText'; 9 | export * from './wrapLink'; 10 | -------------------------------------------------------------------------------- /packages/link/src/lib/types.ts: -------------------------------------------------------------------------------- 1 | import type { TElement } from '@udecode/plate'; 2 | 3 | export interface TLinkElement extends TElement { 4 | url: string; 5 | target?: string; 6 | } 7 | -------------------------------------------------------------------------------- /packages/link/src/lib/utils/safeDecodeUrl.ts: -------------------------------------------------------------------------------- 1 | export const safeDecodeUrl = (url: string) => { 2 | try { 3 | return decodeURI(url); 4 | } catch (error) { 5 | if (error instanceof URIError) { 6 | return url; 7 | } 8 | 9 | throw error; 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /packages/link/src/react/components/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useLink'; 6 | export * from './useLinkToolbarButton'; 7 | export * from './FloatingLink/index'; 8 | -------------------------------------------------------------------------------- /packages/link/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './LinkPlugin'; 6 | export * from './components/index'; 7 | export * from './transforms/index'; 8 | export * from './utils/index'; 9 | -------------------------------------------------------------------------------- /packages/link/src/react/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './submitFloatingLink'; 6 | -------------------------------------------------------------------------------- /packages/link/src/react/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './triggerFloatingLink'; 6 | export * from './triggerFloatingLinkEdit'; 7 | export * from './triggerFloatingLinkInsert'; 8 | -------------------------------------------------------------------------------- /packages/link/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/link/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/list/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/list/README.md: -------------------------------------------------------------------------------- 1 | # Plate list plugin 2 | 3 | This package implements the list plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [List](https://platejs.org/docs/list). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/list/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/list/src/lib/normalizers/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './normalizeListItem'; 6 | export * from './normalizeNestedList'; 7 | -------------------------------------------------------------------------------- /packages/list/src/lib/queries/someList.ts: -------------------------------------------------------------------------------- 1 | import type { SlateEditor } from '@udecode/plate'; 2 | 3 | import { getListItemEntry } from '../index'; 4 | 5 | export const someList = (editor: SlateEditor, type: string) => { 6 | return getListItemEntry(editor)?.list?.[0].type === type; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/list/src/lib/transforms/indentListItems.ts: -------------------------------------------------------------------------------- 1 | import type { SlateEditor } from '@udecode/plate'; 2 | 3 | import { moveListItems } from './moveListItems'; 4 | 5 | export const indentListItems = (editor: SlateEditor) => { 6 | moveListItems(editor, { increase: true }); 7 | }; 8 | -------------------------------------------------------------------------------- /packages/list/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useListToolbarButton'; 6 | export * from './useTodoListElement'; 7 | -------------------------------------------------------------------------------- /packages/list/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/list/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/markdown/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/markdown/README.md: -------------------------------------------------------------------------------- 1 | # Plate MD serializer plugin 2 | 3 | This package implements the Markdown serializer for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out 8 | [Serializing Markdown](https://platejs.org/docs/markdown). 9 | 10 | ## License 11 | 12 | [MIT](./LICENSE) 13 | -------------------------------------------------------------------------------- /packages/markdown/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/markdown/src/lib/__snapshots__/mdx.spec.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`roundTrip should serialize callout correctly 1`] = ` 4 | " 5 | Callout 6 | 7 | " 8 | `; 9 | -------------------------------------------------------------------------------- /packages/markdown/src/lib/deserializer/__snapshots__/deserializeMd.spec.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`fixures when deserializing a empty value 1`] = `[]`; 4 | -------------------------------------------------------------------------------- /packages/markdown/src/lib/plugins/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './remarkMdx'; 6 | export * from './remarkMention'; 7 | -------------------------------------------------------------------------------- /packages/markdown/src/lib/plugins/remarkMdx.ts: -------------------------------------------------------------------------------- 1 | import baseRemarkMdx from 'remark-mdx'; 2 | 3 | import { REMARK_MDX_TAG, tagRemarkPlugin } from '../utils'; 4 | 5 | export const remarkMdx = tagRemarkPlugin( 6 | baseRemarkMdx, 7 | REMARK_MDX_TAG 8 | ) as typeof baseRemarkMdx; 9 | -------------------------------------------------------------------------------- /packages/markdown/src/lib/rules/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './parseAttributes'; 6 | -------------------------------------------------------------------------------- /packages/markdown/src/lib/serializer/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './getCustomMark'; 6 | export * from './getMergedOptionsSerialize'; 7 | export * from './getSerializerByKey'; 8 | export * from './unreachable'; 9 | -------------------------------------------------------------------------------- /packages/markdown/src/lib/serializer/utils/unreachable.ts: -------------------------------------------------------------------------------- 1 | export const unreachable = (value: any) => { 2 | console.warn(`Unreachable code: ${JSON.stringify(value)}`); 3 | }; 4 | -------------------------------------------------------------------------------- /packages/markdown/src/lib/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './getRemarkPluginsWithoutMdx'; 6 | export * from './mapTypeUtils'; 7 | -------------------------------------------------------------------------------- /packages/markdown/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/markdown/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/math/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/math/README.md: -------------------------------------------------------------------------------- 1 | # Plate math plugin 2 | 3 | This package implements the math plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [math](https://platejs.org/docs/math). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/math/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/math/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseEquationPlugin'; 6 | export * from './BaseInlineEquationPlugin'; 7 | export * from './transforms/index'; 8 | export * from './utils/index'; 9 | -------------------------------------------------------------------------------- /packages/math/src/lib/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertEquation'; 6 | export * from './insertInlineEquation'; 7 | -------------------------------------------------------------------------------- /packages/math/src/lib/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './getEquationHtml'; 6 | -------------------------------------------------------------------------------- /packages/math/src/react/EquationPlugin.tsx: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseEquationPlugin } from '../lib'; 4 | 5 | export const EquationPlugin = toPlatePlugin(BaseEquationPlugin); 6 | -------------------------------------------------------------------------------- /packages/math/src/react/InlineEquationPlugin.tsx: -------------------------------------------------------------------------------- 1 | import { toPlatePlugin } from '@udecode/plate/react'; 2 | 3 | import { BaseInlineEquationPlugin } from '../lib'; 4 | 5 | export const InlineEquationPlugin = toPlatePlugin(BaseInlineEquationPlugin); 6 | -------------------------------------------------------------------------------- /packages/math/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useEquationElement'; 6 | export * from './useEquationInput'; 7 | -------------------------------------------------------------------------------- /packages/math/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './EquationPlugin'; 6 | export * from './InlineEquationPlugin'; 7 | export * from './hooks/index'; 8 | -------------------------------------------------------------------------------- /packages/math/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/math/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/media/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/media/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/media/src/lib/image/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertImage'; 6 | export * from './insertImageFromFiles'; 7 | -------------------------------------------------------------------------------- /packages/media/src/lib/image/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './isImageUrl'; 6 | -------------------------------------------------------------------------------- /packages/media/src/lib/media-embed/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertMediaEmbed'; 6 | -------------------------------------------------------------------------------- /packages/media/src/lib/media/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertMedia'; 6 | export * from './parseMediaUrl'; 7 | export * from './types'; 8 | -------------------------------------------------------------------------------- /packages/media/src/lib/placeholder/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BasePlaceholderPlugin'; 6 | export * from './transforms/index'; 7 | -------------------------------------------------------------------------------- /packages/media/src/lib/placeholder/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertPlaceholder'; 6 | export * from './setMediaNode'; 7 | -------------------------------------------------------------------------------- /packages/media/src/react/image/components/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './Image'; 6 | export * from './PreviewImage'; 7 | export * from './useScaleInput'; 8 | -------------------------------------------------------------------------------- /packages/media/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './plugins'; 6 | export * from './image/index'; 7 | export * from './media/index'; 8 | export * from './placeholder/index'; 9 | -------------------------------------------------------------------------------- /packages/media/src/react/placeholder/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './usePlaceholderElement'; 6 | export * from './usePlaceholderPopover'; 7 | -------------------------------------------------------------------------------- /packages/media/src/react/placeholder/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './insertMedia'; 6 | -------------------------------------------------------------------------------- /packages/media/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/media/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/mention/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/mention/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/mention/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseMentionPlugin'; 6 | export * from './getMentionOnSelectItem'; 7 | export * from './types'; 8 | -------------------------------------------------------------------------------- /packages/mention/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './MentionPlugin'; 6 | -------------------------------------------------------------------------------- /packages/mention/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/mention/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/node-id/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/node-id/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/node-id/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './NodeIdPlugin'; 6 | export * from './withNodeId'; 7 | -------------------------------------------------------------------------------- /packages/node-id/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/node-id/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/normalizers/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/normalizers/README.md: -------------------------------------------------------------------------------- 1 | # Plate normalizer plugins 2 | 3 | This package implements the normalizer plugins for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out 8 | [Forced Layout](https://platejs.org/docs/forced-layout). 9 | 10 | ## License 11 | 12 | [MIT](../../LICENSE) 13 | -------------------------------------------------------------------------------- /packages/normalizers/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/normalizers/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './NormalizeTypesPlugin'; 6 | export * from './RemoveEmptyNodesPlugin'; 7 | export * from './withNormalizeTypes'; 8 | export * from './withRemoveEmptyNodes'; 9 | -------------------------------------------------------------------------------- /packages/normalizers/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/normalizers/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/plate-utils/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/plate-utils/README.md: -------------------------------------------------------------------------------- 1 | # Plate utils 2 | 3 | ## Documentation 4 | 5 | Visit https://platejs.org/docs/api/utils to view the documentation. 6 | 7 | ## License 8 | 9 | [MIT](../../LICENSE) 10 | -------------------------------------------------------------------------------- /packages/plate-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/plate-utils/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './keep'; 6 | -------------------------------------------------------------------------------- /packages/plate-utils/src/lib/keep.ts: -------------------------------------------------------------------------------- 1 | export const __plateUtils__ = true; 2 | -------------------------------------------------------------------------------- /packages/plate-utils/src/react/useEditorString.ts: -------------------------------------------------------------------------------- 1 | import { useEditorSelector } from '@udecode/plate-core/react'; 2 | 3 | export const useEditorString = () => { 4 | return useEditorSelector((editor) => editor.api.string([]), []); 5 | }; 6 | -------------------------------------------------------------------------------- /packages/plate-utils/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/plate-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/plate/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/plate/README.md: -------------------------------------------------------------------------------- 1 | # Plate utils 2 | 3 | ## License 4 | 5 | [MIT](../../LICENSE) 6 | -------------------------------------------------------------------------------- /packages/plate/src/index.tsx: -------------------------------------------------------------------------------- 1 | export * from '@udecode/plate-core'; 2 | 3 | export * from '@udecode/slate'; 4 | 5 | export * from '@udecode/utils'; 6 | -------------------------------------------------------------------------------- /packages/plate/src/react/index.tsx: -------------------------------------------------------------------------------- 1 | export * from '@udecode/plate-core/react'; 2 | 3 | export * from '@udecode/plate-utils/react'; 4 | 5 | export * from '@udecode/react-hotkeys'; 6 | 7 | export * from '@udecode/react-utils'; 8 | -------------------------------------------------------------------------------- /packages/plate/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/plate/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/playwright/README.md: -------------------------------------------------------------------------------- 1 | # Interact with a Plate editor from inside a Playwright test 2 | 3 | ## License 4 | 5 | [See LICENSE](./LICENSE) 6 | -------------------------------------------------------------------------------- /packages/playwright/src/getEditable.ts: -------------------------------------------------------------------------------- 1 | import type { Locator, Page } from '@playwright/test'; 2 | 3 | export const getEditable = (context: Locator | Page) => 4 | context.locator('[data-slate-editor]'); 5 | -------------------------------------------------------------------------------- /packages/playwright/src/internal/globals.d.ts: -------------------------------------------------------------------------------- 1 | import type { TPlatePlaywrightAdapter } from './types'; 2 | 3 | declare global { 4 | interface Window { 5 | platePlaywrightAdapter?: TPlatePlaywrightAdapter; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/playwright/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/playwright/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/react-hotkeys/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/react-hotkeys/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # @udecode/react-hotkeys 2 | 3 | ## 37.0.0 4 | 5 | ### Minor Changes 6 | 7 | - [#3420](https://github.com/udecode/plate/pull/3420) by [@zbeyens](https://github.com/zbeyens) – 8 | - NEW package: fork of `react-hotkeys-hook` 9 | -------------------------------------------------------------------------------- /packages/react-hotkeys/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/react-hotkeys/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/react-utils/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/react-utils/README.md: -------------------------------------------------------------------------------- 1 | # Udecode React utils 2 | 3 | React utils used by the many packages of the Udecode ecosystem. 4 | 5 | ## Documentation 6 | 7 | Visit https://platejs.org/docs/api/react-utils to view the documentation. 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/react-utils/src/Box.tsx: -------------------------------------------------------------------------------- 1 | import type React from 'react'; 2 | 3 | import { createSlotComponent } from './createSlotComponent'; 4 | 5 | export const Box = createSlotComponent('div'); 6 | 7 | export type BoxProps = React.ComponentPropsWithRef; 8 | -------------------------------------------------------------------------------- /packages/react-utils/src/MemoizedChildren.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export const MemoizedChildren = React.memo( 4 | ({ children }: { children: React.ReactNode }) => { 5 | return <>{children}; 6 | } 7 | ); 8 | -------------------------------------------------------------------------------- /packages/react-utils/src/Text.tsx: -------------------------------------------------------------------------------- 1 | import type React from 'react'; 2 | 3 | import { createSlotComponent } from './createSlotComponent'; 4 | 5 | export const Text = createSlotComponent('span'); 6 | 7 | export type TextProps = React.ComponentPropsWithRef; 8 | -------------------------------------------------------------------------------- /packages/react-utils/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/react-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/reset-node/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/reset-node/README.md: -------------------------------------------------------------------------------- 1 | # Plate reset node plugin 2 | 3 | This package implements the reset node plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out 8 | [Reset Node](https://platejs.org/docs/reset-node). 9 | 10 | ## License 11 | 12 | [MIT](../../LICENSE) 13 | -------------------------------------------------------------------------------- /packages/reset-node/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/reset-node/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseResetNodePlugin'; 6 | export * from './types'; 7 | -------------------------------------------------------------------------------- /packages/reset-node/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './ResetNodePlugin'; 6 | export * from './onKeyDownResetNode'; 7 | -------------------------------------------------------------------------------- /packages/reset-node/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/reset-node/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/resizable/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/resizable/README.md: -------------------------------------------------------------------------------- 1 | # Resizable 2 | 3 | ## License 4 | 5 | [MIT](../../LICENSE) 6 | -------------------------------------------------------------------------------- /packages/resizable/src/components/TResizableElement.ts: -------------------------------------------------------------------------------- 1 | import type { TElement } from '@udecode/plate'; 2 | 3 | export interface TResizableElement extends TElement { 4 | align?: 'center' | 'left' | 'right'; 5 | width?: number; 6 | } 7 | -------------------------------------------------------------------------------- /packages/resizable/src/components/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './Resizable'; 6 | export * from './ResizeHandle'; 7 | export * from './TResizableElement'; 8 | export * from './useResizableStore'; 9 | -------------------------------------------------------------------------------- /packages/resizable/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './types'; 6 | export * from './components/index'; 7 | export * from './utils/index'; 8 | -------------------------------------------------------------------------------- /packages/resizable/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './isTouchEvent'; 6 | export * from './resizeLengthClamp'; 7 | export * from './resizeLengthToRelative'; 8 | export * from './resizeLengthToStatic'; 9 | -------------------------------------------------------------------------------- /packages/resizable/src/utils/isTouchEvent.ts: -------------------------------------------------------------------------------- 1 | export const isTouchEvent = ( 2 | event: MouseEvent | TouchEvent 3 | ): event is TouchEvent => 'touches' in event; 4 | -------------------------------------------------------------------------------- /packages/resizable/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/resizable/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/select/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/select/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/select/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './DeletePlugin'; 6 | export * from './SelectOnBackspacePlugin'; 7 | export * from './withSelectOnBackspace'; 8 | -------------------------------------------------------------------------------- /packages/select/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/select/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/selection/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/selection/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/selection/src/internal/index.ts: -------------------------------------------------------------------------------- 1 | export * from './EventEmitter' 2 | export * from './SelectionArea' 3 | export type * from './types' 4 | export * from './utils' -------------------------------------------------------------------------------- /packages/selection/src/internal/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './css'; 2 | export * from './events'; 3 | export * from './intersects'; 4 | export * from './selectAll'; 5 | export * from './constants'; 6 | export * from './frames'; 7 | export * from './shouldTrigger'; 8 | -------------------------------------------------------------------------------- /packages/selection/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './extractSelectableIds'; 6 | export * from './getAboveDomNode'; 7 | export * from './isSelecting'; 8 | -------------------------------------------------------------------------------- /packages/selection/src/react/components/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BlockSelectionAfterEditable'; 6 | -------------------------------------------------------------------------------- /packages/selection/src/react/queries/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './getCaretPosition'; 6 | export * from './getCursorOverlayState'; 7 | export * from './getSelectionRects'; 8 | -------------------------------------------------------------------------------- /packages/selection/src/react/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './copySelectedBlocks'; 6 | export * from './pasteSelectedBlocks'; 7 | export * from './selectInsertedBlocks'; 8 | -------------------------------------------------------------------------------- /packages/selection/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "compilerOptions": { 4 | "paths": {} 5 | }, 6 | "include": ["src"], 7 | "exclude": [] 8 | } 9 | -------------------------------------------------------------------------------- /packages/slash-command/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/slash-command/README.md: -------------------------------------------------------------------------------- 1 | # Plate slash commands plugin 2 | 3 | This package implements the slash commands plugin for Plate. 4 | 5 | ## License 6 | 7 | [MIT](../../LICENSE) 8 | -------------------------------------------------------------------------------- /packages/slash-command/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/slash-command/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseSlashPlugin'; 6 | -------------------------------------------------------------------------------- /packages/slash-command/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './SlashPlugin'; 6 | -------------------------------------------------------------------------------- /packages/slash-command/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/slash-command/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/slate/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/slate/README.md: -------------------------------------------------------------------------------- 1 | # Slate extension 2 | 3 | ## Documentation 4 | 5 | Visit https://platejs.org/docs/api/slate to view the documentation. 6 | 7 | ## License 8 | 9 | [MIT](../../LICENSE) 10 | -------------------------------------------------------------------------------- /packages/slate/src/interfaces/editor/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './editor-api'; 6 | export * from './editor-transforms'; 7 | export * from './editor-type'; 8 | export * from './legacy-editor'; 9 | -------------------------------------------------------------------------------- /packages/slate/src/interfaces/scroll.ts: -------------------------------------------------------------------------------- 1 | import type { StandardBehaviorOptions } from 'scroll-into-view-if-needed'; 2 | 3 | export type ScrollIntoViewOptions = StandardBehaviorOptions | boolean; 4 | -------------------------------------------------------------------------------- /packages/slate/src/internal/dom-editor/blur.ts: -------------------------------------------------------------------------------- 1 | import { DOMEditor } from 'slate-dom'; 2 | 3 | import type { Editor } from '../../interfaces/editor'; 4 | 5 | export const blur = (editor: Editor) => DOMEditor.blur(editor as any); 6 | -------------------------------------------------------------------------------- /packages/slate/src/internal/dom-editor/deselectDOM.ts: -------------------------------------------------------------------------------- 1 | import { DOMEditor } from 'slate-dom'; 2 | 3 | import type { Editor } from '../../interfaces/editor'; 4 | 5 | export const deselectDOM = (editor: Editor) => 6 | DOMEditor.deselect(editor as any); 7 | -------------------------------------------------------------------------------- /packages/slate/src/internal/dom-editor/insertData.ts: -------------------------------------------------------------------------------- 1 | import { DOMEditor } from 'slate-dom'; 2 | 3 | import type { Editor } from '../../interfaces/editor'; 4 | 5 | export const insertData = (editor: Editor, data: DataTransfer) => 6 | DOMEditor.insertData(editor as any, data); 7 | -------------------------------------------------------------------------------- /packages/slate/src/internal/dom-editor/isComposing.ts: -------------------------------------------------------------------------------- 1 | import { DOMEditor } from 'slate-dom'; 2 | 3 | import type { Editor } from '../../interfaces/editor'; 4 | 5 | export const isComposing = (editor: Editor) => 6 | DOMEditor.isComposing(editor as any); 7 | -------------------------------------------------------------------------------- /packages/slate/src/internal/dom-editor/isFocused.ts: -------------------------------------------------------------------------------- 1 | import { DOMEditor } from 'slate-dom'; 2 | 3 | import type { Editor } from '../../interfaces/editor'; 4 | 5 | export const isFocused = (editor: Editor) => DOMEditor.isFocused(editor as any); 6 | -------------------------------------------------------------------------------- /packages/slate/src/internal/dom-editor/isReadOnly.ts: -------------------------------------------------------------------------------- 1 | import { DOMEditor } from 'slate-dom'; 2 | 3 | import type { Editor } from '../../interfaces/editor'; 4 | 5 | export const isReadOnly = (editor: Editor) => 6 | DOMEditor.isReadOnly(editor as any); 7 | -------------------------------------------------------------------------------- /packages/slate/src/internal/dom-editor/setFragmentData.ts: -------------------------------------------------------------------------------- 1 | import { DOMEditor } from 'slate-dom'; 2 | 3 | import type { Editor } from '../../interfaces/editor'; 4 | 5 | export const setFragmentData = (editor: Editor, data: DataTransfer) => 6 | DOMEditor.setFragmentData(editor as any, data); 7 | -------------------------------------------------------------------------------- /packages/slate/src/internal/editor-extension/editor-mark.ts: -------------------------------------------------------------------------------- 1 | import type { Editor } from '../../interfaces/index'; 2 | 3 | export const mark = (editor: Editor, key: string) => { 4 | const marks = editor.api.marks(); 5 | 6 | return (marks as any)?.[key] as unknown; 7 | }; 8 | -------------------------------------------------------------------------------- /packages/slate/src/internal/editor-extension/hasMark.ts: -------------------------------------------------------------------------------- 1 | import type { Editor } from '../../interfaces/editor/editor-type'; 2 | 3 | export const hasMark = (editor: Editor, key: string) => { 4 | return !!editor.api.mark(key); 5 | }; 6 | -------------------------------------------------------------------------------- /packages/slate/src/internal/editor/addMark.ts: -------------------------------------------------------------------------------- 1 | import { addMark as addMarkBase } from 'slate'; 2 | 3 | import type { Editor } from '../../interfaces/editor/editor-type'; 4 | 5 | export const addMark = (editor: Editor, key: string, value: any) => 6 | addMarkBase(editor as any, key, value); 7 | -------------------------------------------------------------------------------- /packages/slate/src/internal/editor/getPathRefs.ts: -------------------------------------------------------------------------------- 1 | import { pathRefs } from 'slate'; 2 | 3 | import type { Editor } from '../../interfaces/editor/editor-type'; 4 | 5 | export const getPathRefs = (editor: Editor) => pathRefs(editor as any); 6 | -------------------------------------------------------------------------------- /packages/slate/src/internal/editor/getPointRefs.ts: -------------------------------------------------------------------------------- 1 | import { pointRefs } from 'slate'; 2 | 3 | import type { Editor } from '../../interfaces/editor/editor-type'; 4 | 5 | export const getPointRefs = (editor: Editor) => pointRefs(editor as any); 6 | -------------------------------------------------------------------------------- /packages/slate/src/internal/editor/getRangeRefs.ts: -------------------------------------------------------------------------------- 1 | import { rangeRefs } from 'slate'; 2 | 3 | import type { Editor } from '../../interfaces/editor/editor-type'; 4 | 5 | export const getRangeRefs = (editor: Editor) => rangeRefs(editor as any); 6 | -------------------------------------------------------------------------------- /packages/slate/src/internal/editor/insertBreak.ts: -------------------------------------------------------------------------------- 1 | import { insertBreak as insertBreakBase } from 'slate'; 2 | 3 | import type { Editor } from '../../interfaces/editor/editor-type'; 4 | 5 | export const insertBreak = (editor: Editor) => insertBreakBase(editor as any); 6 | -------------------------------------------------------------------------------- /packages/slate/src/internal/editor/isEditorNormalizing.ts: -------------------------------------------------------------------------------- 1 | import { isNormalizing } from 'slate'; 2 | 3 | import type { Editor } from '../../interfaces/editor/editor-type'; 4 | 5 | export const isEditorNormalizing = (editor: Editor) => 6 | isNormalizing(editor as any); 7 | -------------------------------------------------------------------------------- /packages/slate/src/internal/editor/removeEditorMark.ts: -------------------------------------------------------------------------------- 1 | import { removeMark } from 'slate'; 2 | 3 | import type { Editor } from '../../interfaces/editor/editor-type'; 4 | 5 | export const removeEditorMark = (editor: Editor, key: string) => 6 | removeMark(editor as any, key); 7 | -------------------------------------------------------------------------------- /packages/slate/src/internal/transforms/deselect.ts: -------------------------------------------------------------------------------- 1 | import { deselect as deselectBase } from 'slate'; 2 | 3 | import type { Editor } from '../../interfaces'; 4 | 5 | export const deselect = (editor: Editor) => { 6 | deselectBase(editor as any); 7 | }; 8 | -------------------------------------------------------------------------------- /packages/slate/src/slate-history/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './history'; 6 | export * from './with-history'; 7 | -------------------------------------------------------------------------------- /packages/slate/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/slate/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/suggestion/.npmignore: -------------------------------------------------------------------------------- 1 | src/diff/internal 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/suggestion/README.md: -------------------------------------------------------------------------------- 1 | # Plate plugin for suggestion 2 | 3 | ## License 4 | 5 | [MIT](../../LICENSE) 6 | -------------------------------------------------------------------------------- /packages/suggestion/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/suggestion/src/lib/queries/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './findSuggestionNode'; 6 | export * from './findSuggestionProps'; 7 | -------------------------------------------------------------------------------- /packages/suggestion/src/lib/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './getActiveSuggestionDescriptions'; 6 | export * from './getSuggestionId'; 7 | export * from './getSuggestionKeys'; 8 | export * from './getSuggestionNodeEntries'; 9 | -------------------------------------------------------------------------------- /packages/suggestion/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './SuggestionPlugin'; 6 | -------------------------------------------------------------------------------- /packages/suggestion/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/suggestion/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/tabbable/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/tabbable/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/tabbable/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseTabbablePlugin'; 6 | export * from './findTabDestination'; 7 | export * from './types'; 8 | -------------------------------------------------------------------------------- /packages/tabbable/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './TabbableEffects'; 6 | export * from './TabbablePlugin'; 7 | -------------------------------------------------------------------------------- /packages/tabbable/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/tabbable/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/table/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/table/README.md: -------------------------------------------------------------------------------- 1 | # Plate table plugin 2 | 3 | This package implements the table plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [Table](https://platejs.org/docs/table). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/table/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/table/src/lib/api/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './getEmptyCellNode'; 6 | export * from './getEmptyRowNode'; 7 | export * from './getEmptyTableNode'; 8 | -------------------------------------------------------------------------------- /packages/table/src/lib/constants.ts: -------------------------------------------------------------------------------- 1 | export const KEY_SHIFT_EDGES = { 2 | 'shift+down': 'bottom', 3 | 'shift+left': 'left', 4 | 'shift+right': 'right', 5 | 'shift+up': 'top', 6 | }; 7 | -------------------------------------------------------------------------------- /packages/table/src/lib/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './computeCellIndices'; 6 | export * from './getCellIndices'; 7 | export * from './getCellRowIndexByPath'; 8 | export * from './getCellType'; 9 | -------------------------------------------------------------------------------- /packages/table/src/react/components/TableElement/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useSelectedCells'; 6 | export * from './useTableColSizes'; 7 | export * from './useTableElement'; 8 | -------------------------------------------------------------------------------- /packages/table/src/react/components/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './TableCellElement/index'; 6 | export * from './TableElement/index'; 7 | -------------------------------------------------------------------------------- /packages/table/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useCellIndices'; 6 | export * from './useTableMergeState'; 7 | -------------------------------------------------------------------------------- /packages/table/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './TablePlugin'; 6 | export * from './onKeyDownTable'; 7 | export * from './components/index'; 8 | export * from './hooks/index'; 9 | export * from './stores/index'; 10 | -------------------------------------------------------------------------------- /packages/table/src/react/stores/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useTableStore'; 6 | -------------------------------------------------------------------------------- /packages/table/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/table/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/tag/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/tag/README.md: -------------------------------------------------------------------------------- 1 | # Plate tag plugin 2 | 3 | This package implements the tag plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out [Tag](https://platejs.org/docs/tag). 8 | 9 | ## License 10 | 11 | [MIT](../../LICENSE) 12 | -------------------------------------------------------------------------------- /packages/tag/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/tag/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseTagPlugin'; 6 | export * from './isEqualTags'; 7 | -------------------------------------------------------------------------------- /packages/tag/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './TagPlugin'; 6 | export * from './useSelectEditorCombobox'; 7 | export * from './useSelectableItems'; 8 | export * from './useSelectedItems'; 9 | -------------------------------------------------------------------------------- /packages/tag/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/tag/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/test-utils/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __mocks__ 3 | -------------------------------------------------------------------------------- /packages/test-utils/README.md: -------------------------------------------------------------------------------- 1 | # Plate test utilities 2 | 3 | This package implements the test utilities for Plate. 4 | 5 | ## License 6 | 7 | [MIT](../../LICENSE) 8 | -------------------------------------------------------------------------------- /packages/test-utils/src/getHtmlDocument.ts: -------------------------------------------------------------------------------- 1 | export const getHtmlDocument = (html: string) => 2 | new DOMParser().parseFromString(html, 'text/html'); 3 | -------------------------------------------------------------------------------- /packages/test-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './createDataTransfer'; 6 | export * from './getHtmlDocument'; 7 | export * from './jsx'; 8 | -------------------------------------------------------------------------------- /packages/test-utils/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/test-utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/toggle/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/toggle/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/toggle/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './BaseTogglePlugin'; 6 | export * from './queries/index'; 7 | -------------------------------------------------------------------------------- /packages/toggle/src/lib/queries/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './someToggle'; 6 | -------------------------------------------------------------------------------- /packages/toggle/src/react/hooks/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './useToggleButton'; 6 | export * from './useToggleToolbarButton'; 7 | -------------------------------------------------------------------------------- /packages/toggle/src/react/queries/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './findElementIdsHiddenInToggle'; 6 | export * from './getEnclosingToggleIds'; 7 | export * from './getLastEntryEnclosedInToggle'; 8 | export * from './isInClosedToggle'; 9 | -------------------------------------------------------------------------------- /packages/toggle/src/react/transforms/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './moveCurrentBlockAfterPreviousSelectable'; 6 | export * from './moveNextSelectableAfterCurrentBlock'; 7 | export * from './openNextToggles'; 8 | -------------------------------------------------------------------------------- /packages/toggle/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/toggle/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/trailing-block/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/trailing-block/README.md: -------------------------------------------------------------------------------- 1 | # Plate trailing-block plugin 2 | 3 | This package implements the trailing-block plugin for Plate. 4 | 5 | ## Documentation 6 | 7 | Check out 8 | [Playground](https://platejs.org/docs/playground). 9 | 10 | ## License 11 | 12 | [MIT](../../LICENSE) 13 | -------------------------------------------------------------------------------- /packages/trailing-block/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | -------------------------------------------------------------------------------- /packages/trailing-block/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './TrailingBlockPlugin'; 6 | export * from './withTrailingBlock'; 7 | -------------------------------------------------------------------------------- /packages/trailing-block/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/trailing-block/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/utils/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/utils/README.md: -------------------------------------------------------------------------------- 1 | # Udecode Utils 2 | 3 | Utils used by the many packages of the Udecode ecosystem. 4 | 5 | ## License 6 | 7 | [MIT](../../LICENSE) 8 | -------------------------------------------------------------------------------- /packages/utils/src/environment.ts: -------------------------------------------------------------------------------- 1 | export const IS_APPLE = 2 | typeof navigator !== 'undefined' && navigator.userAgent.includes('Mac OS X'); 3 | -------------------------------------------------------------------------------- /packages/utils/src/escapeRegexp.ts: -------------------------------------------------------------------------------- 1 | export const escapeRegExp = (text: string) => { 2 | return text.replaceAll(/[#$()*+,.?[\\\]^s{|}-]/g, String.raw`\$&`); 3 | }; 4 | -------------------------------------------------------------------------------- /packages/utils/src/getHandler.ts: -------------------------------------------------------------------------------- 1 | /** Call a handler if defined */ 2 | export const getHandler = 3 | any>(cb?: T, ...args: Parameters) => 4 | () => { 5 | cb?.(...(args as any)); 6 | }; 7 | -------------------------------------------------------------------------------- /packages/utils/src/types/AnyObject.ts: -------------------------------------------------------------------------------- 1 | /** Any function. */ 2 | export type AnyFunction = (...args: any) => any; 3 | 4 | export type AnyObject = Record; 5 | 6 | export type UnknownObject = Record; 7 | -------------------------------------------------------------------------------- /packages/utils/src/types/Nullable.ts: -------------------------------------------------------------------------------- 1 | export type Nullable = { 2 | [P in keyof T]: T[P] | null; 3 | }; 4 | -------------------------------------------------------------------------------- /packages/utils/src/types/WithOptional.ts: -------------------------------------------------------------------------------- 1 | export type WithOptional = Omit & 2 | Partial>; 3 | -------------------------------------------------------------------------------- /packages/utils/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /packages/yjs/.npmignore: -------------------------------------------------------------------------------- 1 | __tests__ 2 | __test-utils__ 3 | __mocks__ 4 | -------------------------------------------------------------------------------- /packages/yjs/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './lib/index'; 6 | export * from './utils/index'; 7 | -------------------------------------------------------------------------------- /packages/yjs/src/lib/providers/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './hocuspocus-provider'; 6 | export * from './registry'; 7 | export * from './types'; 8 | export * from './webrtc-provider'; 9 | -------------------------------------------------------------------------------- /packages/yjs/src/react/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './YjsPlugin'; 6 | -------------------------------------------------------------------------------- /packages/yjs/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @file Automatically generated by barrelsby. 3 | */ 4 | 5 | export * from './slateToDeterministicYjsState'; 6 | -------------------------------------------------------------------------------- /packages/yjs/tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./dist" 5 | }, 6 | "include": ["src"] 7 | } 8 | -------------------------------------------------------------------------------- /packages/yjs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tooling/config/tsconfig.base.json", 3 | "include": ["src"], 4 | "exclude": [] 5 | } 6 | -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | export default { plugins: { '@tailwindcss/postcss': {} } }; 2 | -------------------------------------------------------------------------------- /prettier.config.mjs: -------------------------------------------------------------------------------- 1 | import config from './tooling/eslint/src/configs/prettier.base.config.js'; 2 | 3 | /** @type {import('prettier').Config} */ 4 | export default { 5 | ...config, 6 | tailwindStylesheet: './apps/www/src/app/globals.css', 7 | }; 8 | -------------------------------------------------------------------------------- /templates/plate-playground-template/.env.example: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY= 2 | UPLOADTHING_TOKEN= -------------------------------------------------------------------------------- /templates/plate-playground-template/.prettierignore: -------------------------------------------------------------------------------- 1 | cache 2 | .cache 3 | package.json 4 | package-lock.json 5 | public 6 | CHANGELOG.md 7 | .yarn 8 | dist 9 | node_modules 10 | .next 11 | build 12 | .contentlayer -------------------------------------------------------------------------------- /templates/plate-playground-template/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /templates/plate-playground-template/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | export default { plugins: { '@tailwindcss/postcss': {} } }; 2 | -------------------------------------------------------------------------------- /templates/plate-playground-template/src/app/api/uploadthing/route.ts: -------------------------------------------------------------------------------- 1 | import { createRouteHandler } from 'uploadthing/next'; 2 | 3 | import { ourFileRouter } from '@/lib/uploadthing'; 4 | 5 | export const { GET, POST } = createRouteHandler({ router: ourFileRouter }); 6 | -------------------------------------------------------------------------------- /templates/plate-playground-template/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/templates/plate-playground-template/src/app/favicon.ico -------------------------------------------------------------------------------- /templates/plate-playground-template/src/app/fonts/GeistMonoVF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/templates/plate-playground-template/src/app/fonts/GeistMonoVF.woff -------------------------------------------------------------------------------- /templates/plate-playground-template/src/app/fonts/GeistVF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/templates/plate-playground-template/src/app/fonts/GeistVF.woff -------------------------------------------------------------------------------- /templates/plate-playground-template/src/components/editor/plugins/equation-plugins.ts: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { 4 | EquationPlugin, 5 | InlineEquationPlugin, 6 | } from '@udecode/plate-math/react'; 7 | 8 | export const equationPlugins = [InlineEquationPlugin, EquationPlugin]; 9 | -------------------------------------------------------------------------------- /templates/plate-playground-template/src/components/editor/plugins/table-plugin.ts: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { TablePlugin } from '@udecode/plate-table/react'; 4 | 5 | export const tablePlugin = TablePlugin.configure({ 6 | options: {}, 7 | }); 8 | -------------------------------------------------------------------------------- /templates/plate-playground-template/src/components/ui/code-line-element.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { type PlateElementProps, PlateElement } from '@udecode/plate/react'; 4 | 5 | export function CodeLineElement(props: PlateElementProps) { 6 | return ; 7 | } 8 | -------------------------------------------------------------------------------- /templates/plate-playground-template/src/lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from 'clsx'; 2 | import { twMerge } from 'tailwind-merge'; 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)); 6 | } 7 | -------------------------------------------------------------------------------- /templates/plate-template/.prettierignore: -------------------------------------------------------------------------------- 1 | cache 2 | .cache 3 | package.json 4 | package-lock.json 5 | public 6 | CHANGELOG.md 7 | .yarn 8 | dist 9 | node_modules 10 | .next 11 | build 12 | .contentlayer -------------------------------------------------------------------------------- /templates/plate-template/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /templates/plate-template/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | export default { plugins: { '@tailwindcss/postcss': {} } }; 2 | -------------------------------------------------------------------------------- /templates/plate-template/src/app/editor/page.tsx: -------------------------------------------------------------------------------- 1 | import { PlateEditor } from '@/components/editor/plate-editor'; 2 | 3 | export default function Page() { 4 | return ( 5 |
6 | 7 |
8 | ); 9 | } 10 | -------------------------------------------------------------------------------- /templates/plate-template/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/templates/plate-template/src/app/favicon.ico -------------------------------------------------------------------------------- /templates/plate-template/src/app/fonts/GeistMonoVF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/templates/plate-template/src/app/fonts/GeistMonoVF.woff -------------------------------------------------------------------------------- /templates/plate-template/src/app/fonts/GeistVF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/udecode/plate/eeab51de48247fffb241449d690f414116d29424/templates/plate-template/src/app/fonts/GeistVF.woff -------------------------------------------------------------------------------- /templates/plate-template/src/lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from 'clsx'; 2 | import { twMerge } from 'tailwind-merge'; 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)); 6 | } 7 | -------------------------------------------------------------------------------- /tooling/config/.ncurc.yml: -------------------------------------------------------------------------------- 1 | # npm-check-updates configuration used by yarn deps:check && yarn deps:update 2 | # convenience scripts. 3 | # @link https://github.com/raineorshine/npm-check-updates 4 | 5 | # Add here exclusions on packages if any 6 | reject: [] -------------------------------------------------------------------------------- /tooling/config/deprecate/README.md: -------------------------------------------------------------------------------- 1 | This package is no longer maintained. 2 | -------------------------------------------------------------------------------- /tooling/config/styleMock.cjs: -------------------------------------------------------------------------------- 1 | module.exports = {}; 2 | -------------------------------------------------------------------------------- /tooling/scripts/add-ai.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # add editor-ai 4 | # node ./packages/cli/dist/index.js add localhost:3000/rd/editor-ai -c ./templates/plate-template 5 | 6 | ./pre-registry.sh && npx shadcn@canary add localhost:3000/rd/editor-ai -o && ./post-registry.sh -------------------------------------------------------------------------------- /tooling/scripts/add-basic.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # add editor-ai 4 | node ./packages/cli/dist/index.js add localhost:3000/r/editor-basic -c ./templates/plate-template -o 5 | -------------------------------------------------------------------------------- /tooling/scripts/init-plate-template.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # init plate in shadcn project 4 | node ./packages/cli/dist/index.js init http://localhost:3000/r -c ./templates/plate-template -------------------------------------------------------------------------------- /tooling/scripts/init-plate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # init plate in new project 4 | rimraf tmp 5 | mkdir -p tmp/my-app 6 | chmod -R 777 ./tmp 7 | node ./packages/cli/dist/index.js init http://localhost:3000/r -c ./tmp --pm pnpm -d -------------------------------------------------------------------------------- /tooling/scripts/init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # init shadcn in new project 4 | rimraf tmp 5 | mkdir -p tmp/my-app 6 | chmod -R 777 ./tmp 7 | node ./packages/cli/dist/index.js init -y -c ./tmp -d --pm pnpm 8 | -------------------------------------------------------------------------------- /tooling/scripts/init2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # init plate in shadcn project 4 | node ./packages/cli/dist/index.js init http://localhost:3000/r -c ./templates/plate-template 5 | -------------------------------------------------------------------------------- /tooling/scripts/post-ai.sh: -------------------------------------------------------------------------------- 1 | sed -i '' 's|"url": "http://localhost:3000/r"|"url": "https://platejs.org/r"|' templates/plate-playground-template/components.json -------------------------------------------------------------------------------- /tooling/scripts/post-basic.sh: -------------------------------------------------------------------------------- 1 | sed -i '' 's|"url": "http://localhost:3000/r"|"url": "https://platejs.org/r"|' templates/plate-template/components.json -------------------------------------------------------------------------------- /tooling/scripts/pre-ai.sh: -------------------------------------------------------------------------------- 1 | sed -i '' 's|"url": "https://platejs.org/r"|"url": "http://localhost:3000/r"|' templates/plate-playground-template/components.json -------------------------------------------------------------------------------- /tooling/scripts/pre-basic.sh: -------------------------------------------------------------------------------- 1 | sed -i '' 's|"url": "https://platejs.org/r"|"url": "http://localhost:3000/r"|' templates/plate-template/components.json -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "functions": { 3 | "app/**/*": { 4 | "maxDuration": 1 5 | } 6 | } 7 | } 8 | --------------------------------------------------------------------------------