UNPKG

@udecode/plate-heading

Version:

Headings plugin for Plate

108 lines (95 loc) 4.06 kB
import * as _udecode_plate_core from '@udecode/plate-core'; import { a as HeadingLevel, H as Heading } from '../types-DBDYSKgi.mjs'; import { PlatePlugin } from '@udecode/plate-common/react'; import * as _udecode_plate_core_react from '@udecode/plate-core/react'; import React$1 from 'react'; import '@udecode/plate-common'; import 'slate'; declare const HeadingPlugin: PlatePlugin<_udecode_plate_core.PluginConfig<"heading", { levels?: HeadingLevel | HeadingLevel[]; }, {}, {}>>; declare const TocPlugin: _udecode_plate_core_react.PlatePlugin<_udecode_plate_core.PluginConfig<"toc", { isScroll: boolean; topOffset: number; queryHeading?: (editor: _udecode_plate_core.SlateEditor) => Heading[]; }, {}, {}>>; interface TocSideBarProps { open?: boolean; rootMargin?: string; topOffset?: number; } interface UseContentController { containerRef: React.RefObject<HTMLDivElement>; isObserve: boolean; rootMargin: string; topOffset: number; } declare const useContentController: ({ containerRef, isObserve, rootMargin, topOffset, }: UseContentController) => { activeContentId: string; onContentScroll: ({ id, behavior, el, }: { id: string; el: HTMLElement; behavior?: ScrollBehavior; }) => void; }; interface UseContentObserver { editorContentRef: React$1.RefObject<HTMLElement>; isObserve: boolean; isScroll: boolean; rootMargin: string; status: number; } declare const useContentObserver: ({ editorContentRef, isObserve, isScroll, rootMargin, status, }: UseContentObserver) => { activeId: string; }; interface UseTocController { activeId: string; isObserve: boolean; tocRef: React$1.RefObject<HTMLElement>; } declare const useTocController: ({ activeId, isObserve, tocRef, }: UseTocController) => void; declare const useTocElementState: () => { editor: _udecode_plate_core_react.PlateEditor; headingList: Heading[]; onContentScroll: (el: HTMLElement, id: string, behavior?: ScrollBehavior) => void; }; declare const useTocElement: ({ editor, onContentScroll, }: ReturnType<typeof useTocElementState>) => { props: { onClick: (e: React$1.MouseEvent<HTMLElement, globalThis.MouseEvent>, item: Heading, behavior: ScrollBehavior) => void; }; }; interface UseTocObserver { activeId: string; isObserve: boolean; tocRef: React$1.RefObject<HTMLElement>; } declare const useTocObserver: ({ activeId, isObserve, tocRef, }: UseTocObserver) => { offset: number; visible: boolean; }; declare const useTocSideBarState: ({ open, rootMargin, topOffset, }: TocSideBarProps) => { activeContentId: string; editor: _udecode_plate_core_react.PlateEditor; headingList: Heading[]; mouseInToc: boolean; open: boolean; setIsObserve: React$1.Dispatch<React$1.SetStateAction<boolean>>; setMouseInToc: React$1.Dispatch<React$1.SetStateAction<boolean>>; tocRef: React$1.RefObject<HTMLElement>; onContentScroll: ({ id, behavior, el, }: { id: string; el: HTMLElement; behavior?: ScrollBehavior; }) => void; }; declare const useTocSideBar: ({ editor, mouseInToc, open, setIsObserve, setMouseInToc, tocRef, onContentScroll, }: ReturnType<typeof useTocSideBarState>) => { navProps: { ref: React$1.RefObject<HTMLElement>; onMouseEnter: () => void; onMouseLeave: (e: React$1.MouseEvent<HTMLElement, globalThis.MouseEvent>) => void; }; onContentClick: (e: React$1.MouseEvent<HTMLElement, globalThis.MouseEvent>, item: Heading, behavior?: ScrollBehavior) => void; }; declare function checkIn(e: React.MouseEvent<HTMLElement, globalThis.MouseEvent>): boolean; declare const heightToTop: (ele: HTMLElement, editorContentRef?: React$1.RefObject<HTMLDivElement>) => number; export { HeadingPlugin, TocPlugin, type TocSideBarProps, type UseContentController, checkIn, heightToTop, useContentController, useContentObserver, useTocController, useTocElement, useTocElementState, useTocObserver, useTocSideBar, useTocSideBarState };