@fileverse-dev/ddoc 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +30 -0
  2. package/dist/App.d.ts +2 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.es.js +26234 -0
  5. package/dist/index.umd.js +356 -0
  6. package/dist/main.d.ts +1 -0
  7. package/dist/packages/ddoc/color-selector.d.ts +14 -0
  8. package/dist/packages/ddoc/common/button.d.ts +20 -0
  9. package/dist/packages/ddoc/common/cutsom-tooltip.d.ts +8 -0
  10. package/dist/packages/ddoc/common/dropdown.d.ts +12 -0
  11. package/dist/packages/ddoc/common/icon.d.ts +8 -0
  12. package/dist/packages/ddoc/common/spinner.d.ts +6 -0
  13. package/dist/packages/ddoc/common/surface.d.ts +7 -0
  14. package/dist/packages/ddoc/common/toolbar.d.ts +28 -0
  15. package/dist/packages/ddoc/common/types.d.ts +19 -0
  16. package/dist/packages/ddoc/ddoc-editor.d.ts +4 -0
  17. package/dist/packages/ddoc/editor-bubble-menu.d.ts +12 -0
  18. package/dist/packages/ddoc/editor-toolbar.d.ts +6 -0
  19. package/dist/packages/ddoc/editor-utils.d.ts +56 -0
  20. package/dist/packages/ddoc/extensions/action-button/action-button-node-view.d.ts +3 -0
  21. package/dist/packages/ddoc/extensions/action-button/action-button.d.ts +16 -0
  22. package/dist/packages/ddoc/extensions/action-button/index.d.ts +1 -0
  23. package/dist/packages/ddoc/extensions/action-button/modal.d.ts +8 -0
  24. package/dist/packages/ddoc/extensions/custom-keymap.d.ts +14 -0
  25. package/dist/packages/ddoc/extensions/d-block/dblock-node-view.d.ts +4 -0
  26. package/dist/packages/ddoc/extensions/d-block/dblock.d.ts +19 -0
  27. package/dist/packages/ddoc/extensions/d-block/index.d.ts +1 -0
  28. package/dist/packages/ddoc/extensions/default-extension.d.ts +5 -0
  29. package/dist/packages/ddoc/extensions/doc.d.ts +3 -0
  30. package/dist/packages/ddoc/extensions/document/document.d.ts +2 -0
  31. package/dist/packages/ddoc/extensions/document/index.d.ts +1 -0
  32. package/dist/packages/ddoc/extensions/horizontal-rule.d.ts +2 -0
  33. package/dist/packages/ddoc/extensions/iframe/iframe.d.ts +27 -0
  34. package/dist/packages/ddoc/extensions/iframe/index.d.ts +1 -0
  35. package/dist/packages/ddoc/extensions/multi-column/column-selection.d.ts +17 -0
  36. package/dist/packages/ddoc/extensions/multi-column/column.d.ts +4 -0
  37. package/dist/packages/ddoc/extensions/multi-column/columns.d.ts +18 -0
  38. package/dist/packages/ddoc/extensions/multi-column/index.d.ts +11 -0
  39. package/dist/packages/ddoc/extensions/multi-column/menus/columns-menu.d.ts +4 -0
  40. package/dist/packages/ddoc/extensions/multi-column/menus/index.d.ts +1 -0
  41. package/dist/packages/ddoc/extensions/multi-column/utils.d.ts +22 -0
  42. package/dist/packages/ddoc/extensions/resizable-media/index.d.ts +1 -0
  43. package/dist/packages/ddoc/extensions/resizable-media/media-paste-drop-plugin/index.d.ts +1 -0
  44. package/dist/packages/ddoc/extensions/resizable-media/media-paste-drop-plugin/media-paste-drop-plugin.d.ts +12 -0
  45. package/dist/packages/ddoc/extensions/resizable-media/resizable-media-node-view.d.ts +3 -0
  46. package/dist/packages/ddoc/extensions/resizable-media/resizable-media.d.ts +27 -0
  47. package/dist/packages/ddoc/extensions/supercharged-table/extension-table/index.d.ts +5 -0
  48. package/dist/packages/ddoc/extensions/supercharged-table/extension-table/table-view.d.ts +18 -0
  49. package/dist/packages/ddoc/extensions/supercharged-table/extension-table/table.d.ts +56 -0
  50. package/dist/packages/ddoc/extensions/supercharged-table/extension-table/utilities/create-cell.d.ts +3 -0
  51. package/dist/packages/ddoc/extensions/supercharged-table/extension-table/utilities/create-table.d.ts +3 -0
  52. package/dist/packages/ddoc/extensions/supercharged-table/extension-table/utilities/delete-table-when-all-cells-selected.d.ts +3 -0
  53. package/dist/packages/ddoc/extensions/supercharged-table/extension-table/utilities/get-table-node-types.d.ts +5 -0
  54. package/dist/packages/ddoc/extensions/supercharged-table/extension-table/utilities/is-cell-selection.d.ts +3 -0
  55. package/dist/packages/ddoc/extensions/supercharged-table/extension-table-cell/index.d.ts +4 -0
  56. package/dist/packages/ddoc/extensions/supercharged-table/extension-table-cell/table-cell-node-view.d.ts +4 -0
  57. package/dist/packages/ddoc/extensions/supercharged-table/extension-table-cell/table-cell.d.ts +6 -0
  58. package/dist/packages/ddoc/extensions/supercharged-table/extension-table-header/index.d.ts +4 -0
  59. package/dist/packages/ddoc/extensions/supercharged-table/extension-table-header/table-header.d.ts +6 -0
  60. package/dist/packages/ddoc/extensions/supercharged-table/extension-table-row/index.d.ts +4 -0
  61. package/dist/packages/ddoc/extensions/supercharged-table/extension-table-row/table-row-node-view.d.ts +17 -0
  62. package/dist/packages/ddoc/extensions/supercharged-table/extension-table-row/table-row.d.ts +7 -0
  63. package/dist/packages/ddoc/extensions/supercharged-table/index.d.ts +5 -0
  64. package/dist/packages/ddoc/extensions/supercharged-table/supercharged-table-kit.d.ts +3 -0
  65. package/dist/packages/ddoc/extensions/trailing-node/index.d.ts +1 -0
  66. package/dist/packages/ddoc/extensions/trailing-node/trailing-node.d.ts +12 -0
  67. package/dist/packages/ddoc/extensions/twitter-embed/embedded-tweet.d.ts +18 -0
  68. package/dist/packages/ddoc/extensions/twitter-embed/index.d.ts +1 -0
  69. package/dist/packages/ddoc/extensions/twitter-embed/tweet-component-node-view.d.ts +3 -0
  70. package/dist/packages/ddoc/hooks/use-content-item-actions.d.ts +10 -0
  71. package/dist/packages/ddoc/hooks/use-editing-context.d.ts +10 -0
  72. package/dist/packages/ddoc/hooks/use-visibility.d.ts +21 -0
  73. package/dist/packages/ddoc/navbar/navbar.d.ts +6 -0
  74. package/dist/packages/ddoc/node-selector.d.ts +10 -0
  75. package/dist/packages/ddoc/props.d.ts +27 -0
  76. package/dist/packages/ddoc/slash-comand.d.ts +5 -0
  77. package/dist/packages/ddoc/utils/debounce.d.ts +1 -0
  78. package/dist/packages/ddoc/utils/get-render-container.d.ts +4 -0
  79. package/dist/packages/ddoc/utils/upload-images.d.ts +8 -0
  80. package/dist/style.css +1 -0
  81. package/dist/vite.svg +1 -0
  82. package/package.json +81 -0
package/dist/main.d.ts ADDED
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,14 @@
1
+ import { Editor } from '@tiptap/core';
2
+ import { Dispatch, FC, SetStateAction } from 'react';
3
+
4
+ export interface BubbleColorMenuItem {
5
+ name: string;
6
+ color: string;
7
+ }
8
+ interface ColorSelectorProps {
9
+ editor: Editor;
10
+ isOpen: boolean;
11
+ setIsOpen: Dispatch<SetStateAction<boolean>>;
12
+ }
13
+ export declare const ColorSelector: FC<ColorSelectorProps>;
14
+ export {};
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+
3
+ export type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'quaternary' | 'ghost';
4
+ export type ButtonSize = 'medium' | 'small' | 'icon' | 'iconSmall';
5
+ export type ButtonProps = {
6
+ variant?: ButtonVariant;
7
+ active?: boolean;
8
+ activeClassname?: string;
9
+ buttonSize?: ButtonSize;
10
+ disabled?: boolean;
11
+ className?: string;
12
+ } & React.ButtonHTMLAttributes<HTMLButtonElement>;
13
+ export declare const Button: React.ForwardRefExoticComponent<{
14
+ variant?: ButtonVariant | undefined;
15
+ active?: boolean | undefined;
16
+ activeClassname?: string | undefined;
17
+ buttonSize?: ButtonSize | undefined;
18
+ disabled?: boolean | undefined;
19
+ className?: string | undefined;
20
+ } & React.ButtonHTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,8 @@
1
+ import { ReactNode, FC } from 'react';
2
+
3
+ interface CustomTooltipProps {
4
+ content: ReactNode;
5
+ children: ReactNode;
6
+ }
7
+ declare const CustomTooltip: FC<CustomTooltipProps>;
8
+ export default CustomTooltip;
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+
3
+ export declare const DropdownCategoryTitle: ({ children, }: {
4
+ children: React.ReactNode;
5
+ }) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const DropdownButton: ({ children, isActive, onClick, disabled, className, }: {
7
+ children: React.ReactNode;
8
+ isActive?: boolean;
9
+ onClick?: () => void;
10
+ disabled?: boolean;
11
+ className?: string;
12
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { icons } from 'lucide-react';
2
+
3
+ export type IconProps = {
4
+ name: keyof typeof icons;
5
+ className?: string;
6
+ strokeWidth?: number;
7
+ };
8
+ export declare const Icon: import('react').MemoExoticComponent<({ name, className, strokeWidth }: IconProps) => import("react/jsx-runtime").JSX.Element | null>;
@@ -0,0 +1,6 @@
1
+ interface SpinnerProps {
2
+ height?: number;
3
+ width?: number;
4
+ }
5
+ export declare const Spinner: ({ height, width }: SpinnerProps) => import("react/jsx-runtime").JSX.Element;
6
+ export default Spinner;
@@ -0,0 +1,7 @@
1
+ import { HTMLProps } from 'react';
2
+
3
+ export type SurfaceProps = HTMLProps<HTMLDivElement> & {
4
+ withShadow?: boolean;
5
+ withBorder?: boolean;
6
+ };
7
+ export declare const Surface: import('react').ForwardRefExoticComponent<Omit<SurfaceProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,28 @@
1
+ import { ButtonHTMLAttributes, HTMLProps } from 'react';
2
+ import { ButtonProps } from './button';
3
+
4
+ export type ToolbarWrapperProps = {
5
+ shouldShowContent?: boolean;
6
+ isVertical?: boolean;
7
+ } & HTMLProps<HTMLDivElement>;
8
+ export type ToolbarDividerProps = {
9
+ horizontal?: boolean;
10
+ } & HTMLProps<HTMLDivElement>;
11
+ export type ToolbarButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
12
+ active?: boolean;
13
+ activeClassname?: string;
14
+ tooltip?: string;
15
+ buttonSize?: ButtonProps['buttonSize'];
16
+ variant?: ButtonProps['variant'];
17
+ };
18
+ export declare const Toolbar: {
19
+ Wrapper: import('react').ForwardRefExoticComponent<Omit<ToolbarWrapperProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
20
+ Divider: import('react').ForwardRefExoticComponent<Omit<ToolbarDividerProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
21
+ Button: import('react').ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & {
22
+ active?: boolean | undefined;
23
+ activeClassname?: string | undefined;
24
+ tooltip?: string | undefined;
25
+ buttonSize?: ButtonProps['buttonSize'];
26
+ variant?: ButtonProps['variant'];
27
+ } & import('react').RefAttributes<HTMLButtonElement>>;
28
+ };
@@ -0,0 +1,19 @@
1
+ import { default as React } from 'react';
2
+ import { Editor as CoreEditor } from '@tiptap/core';
3
+ import { Editor } from '@tiptap/react';
4
+ import { EditorState } from '@tiptap/pm/state';
5
+ import { EditorView } from '@tiptap/pm/view';
6
+
7
+ export interface MenuProps {
8
+ editor: Editor;
9
+ appendTo?: React.RefObject<any>;
10
+ shouldHide?: boolean;
11
+ }
12
+ export interface ShouldShowProps {
13
+ editor?: CoreEditor;
14
+ view: EditorView;
15
+ state?: EditorState;
16
+ oldState?: EditorState;
17
+ from?: number;
18
+ to?: number;
19
+ }
@@ -0,0 +1,4 @@
1
+ import { DpageProps } from './props';
2
+
3
+ declare const DdocEditor: ({ isPreviewMode, onPublish, data, togglePreviewMode, }: DpageProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default DdocEditor;
@@ -0,0 +1,12 @@
1
+ import { BubbleMenuProps } from '@tiptap/react';
2
+ import { FC } from 'react';
3
+
4
+ export interface BubbleMenuItem {
5
+ name: string;
6
+ isActive: () => boolean;
7
+ command: () => void;
8
+ icon: any;
9
+ }
10
+ type EditorBubbleMenuProps = Omit<BubbleMenuProps, 'children'>;
11
+ export declare const EditorBubbleMenu: FC<EditorBubbleMenuProps>;
12
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Editor } from '@tiptap/react';
2
+
3
+ declare const EditorToolBar: ({ editor }: {
4
+ editor: Editor;
5
+ }) => import("react/jsx-runtime").JSX.Element;
6
+ export default EditorToolBar;
@@ -0,0 +1,56 @@
1
+ import { default as React, Dispatch, SetStateAction } from 'react';
2
+ import { IEditorTool } from './hooks/use-visibility';
3
+ import { Editor } from '@tiptap/react';
4
+
5
+ interface IEditorToolElement {
6
+ icon: any;
7
+ title: string;
8
+ onClick: () => void;
9
+ isActive: boolean;
10
+ }
11
+ export declare const useEditorToolbar: ({ editor }: {
12
+ editor: Editor;
13
+ }) => {
14
+ toolbar: (IEditorToolElement | null)[];
15
+ toolRef: React.RefObject<HTMLDivElement>;
16
+ toolVisibilty: IEditorTool;
17
+ setToolVisibility: React.Dispatch<React.SetStateAction<IEditorTool>>;
18
+ };
19
+ export declare const TextHighlighter: ({ editor, setVisibility, elementRef, }: {
20
+ editor: Editor;
21
+ elementRef: React.RefObject<HTMLDivElement>;
22
+ setVisibility: Dispatch<SetStateAction<IEditorTool>>;
23
+ }) => import("react/jsx-runtime").JSX.Element;
24
+ export declare const EditorFontFamily: ({ elementRef, editor, setToolVisibility, }: {
25
+ elementRef: React.RefObject<HTMLDivElement>;
26
+ editor: Editor;
27
+ setToolVisibility: Dispatch<SetStateAction<IEditorTool>>;
28
+ }) => import("react/jsx-runtime").JSX.Element;
29
+ export declare const EditorAlignment: ({ elementRef, editor, setToolVisibility, }: {
30
+ elementRef: React.RefObject<HTMLDivElement>;
31
+ editor: Editor;
32
+ setToolVisibility: Dispatch<SetStateAction<IEditorTool>>;
33
+ }) => import("react/jsx-runtime").JSX.Element;
34
+ export declare const EditorList: ({ elementRef, editor, setToolVisibility, }: {
35
+ elementRef: React.RefObject<HTMLDivElement>;
36
+ editor: Editor;
37
+ setToolVisibility: Dispatch<SetStateAction<IEditorTool>>;
38
+ }) => import("react/jsx-runtime").JSX.Element;
39
+ export declare const LinkPopup: ({ elementRef, editor, setToolVisibility, bubbleMenu, setIsLinkPopupOpen, }: {
40
+ elementRef: React.RefObject<HTMLDivElement>;
41
+ editor: Editor;
42
+ setToolVisibility: Dispatch<SetStateAction<IEditorTool>>;
43
+ bubbleMenu?: boolean;
44
+ setIsLinkPopupOpen?: Dispatch<SetStateAction<boolean>>;
45
+ }) => import("react/jsx-runtime").JSX.Element;
46
+ export declare const TextColor: ({ editor, setVisibility, elementRef, }: {
47
+ editor: Editor;
48
+ elementRef: React.RefObject<HTMLDivElement>;
49
+ setVisibility: Dispatch<SetStateAction<IEditorTool>>;
50
+ }) => import("react/jsx-runtime").JSX.Element;
51
+ export declare const TextHeading: ({ editor, setVisibility, elementRef, }: {
52
+ editor: Editor;
53
+ elementRef: React.RefObject<HTMLDivElement>;
54
+ setVisibility: Dispatch<SetStateAction<IEditorTool>>;
55
+ }) => import("react/jsx-runtime").JSX.Element;
56
+ export {};
@@ -0,0 +1,3 @@
1
+ import { NodeViewProps } from '@tiptap/core';
2
+
3
+ export declare const ActionButtonNodeView: ({ node, editor, getPos, }: NodeViewProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { Node } from '@tiptap/core';
2
+
3
+ declare module '@tiptap/core' {
4
+ interface Commands<ReturnType> {
5
+ actionButton: {
6
+ /**
7
+ * Toggle a actionButton
8
+ */
9
+ setActionButton: (option?: string) => ReturnType;
10
+ };
11
+ }
12
+ }
13
+ export interface ActionButtonOptions {
14
+ HTMLAttributes: Record<string, any>;
15
+ }
16
+ export declare const actionButton: Node<ActionButtonOptions, any>;
@@ -0,0 +1 @@
1
+ export * from './action-button';
@@ -0,0 +1,8 @@
1
+ import { Editor } from '@tiptap/core';
2
+ import { Dispatch, SetStateAction } from 'react';
3
+
4
+ export declare const Modal: ({ editor, setShowModal, node, }: {
5
+ editor?: Editor;
6
+ setShowModal: Dispatch<SetStateAction<boolean>>;
7
+ node: any;
8
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { Extension } from '@tiptap/core';
2
+
3
+ declare module '@tiptap/core' {
4
+ interface Commands<ReturnType> {
5
+ customkeymap: {
6
+ /**
7
+ * Select text between node boundaries
8
+ */
9
+ selectTextWithinNodeBoundaries: () => ReturnType;
10
+ };
11
+ }
12
+ }
13
+ declare const CustomKeymap: Extension<any, any>;
14
+ export default CustomKeymap;
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+ import { NodeViewProps } from '@tiptap/react';
3
+
4
+ export declare const DBlockNodeView: React.FC<NodeViewProps>;
@@ -0,0 +1,19 @@
1
+ import { Node } from '@tiptap/core';
2
+
3
+ export interface DBlockOptions {
4
+ HTMLAttributes: Record<string, any>;
5
+ }
6
+ export type ListTypes = 'bulletList' | 'orderedList' | 'taskList';
7
+ declare module '@tiptap/core' {
8
+ interface Commands<ReturnType> {
9
+ dBlock: {
10
+ /**
11
+ * Toggle a dBlock
12
+ */
13
+ setDBlock: (position?: number) => ReturnType;
14
+ mergeDBlocksIntoList: (listType: ListTypes) => ReturnType;
15
+ splitListToDBlocks: (listType: ListTypes) => ReturnType;
16
+ };
17
+ }
18
+ }
19
+ export declare const DBlock: Node<DBlockOptions, any>;
@@ -0,0 +1 @@
1
+ export * from './dblock';
@@ -0,0 +1,5 @@
1
+ import { NodeType } from '@tiptap/pm/model';
2
+ import { InputRule } from '@tiptap/core';
3
+
4
+ export declare const defaultExtensions: (import('@tiptap/core').Extension<any, any> | import('@tiptap/core').Node<any, any> | import('@tiptap/core').Mark<any, any>)[];
5
+ export declare const createInputRule: (pattern: RegExp, data: string, type: NodeType) => InputRule;
@@ -0,0 +1,3 @@
1
+ import { Node } from '@tiptap/core';
2
+
3
+ export declare const Document: Node<any, any>;
@@ -0,0 +1,2 @@
1
+ export declare const Document: import('@tiptap/core').Node<any, any>;
2
+ export default Document;
@@ -0,0 +1 @@
1
+ export * from './document';
@@ -0,0 +1,2 @@
1
+ export declare const HorizontalRule: import('@tiptap/core').Node<import('@tiptap/extension-horizontal-rule').HorizontalRuleOptions, any>;
2
+ export default HorizontalRule;
@@ -0,0 +1,27 @@
1
+ import { Node } from '@tiptap/core';
2
+
3
+ export interface IframeOptions {
4
+ allowFullscreen: boolean;
5
+ HTMLAttributes: {
6
+ [key: string]: any;
7
+ };
8
+ width?: number;
9
+ height?: number;
10
+ }
11
+ declare module '@tiptap/core' {
12
+ interface Commands<ReturnType> {
13
+ iframe: {
14
+ /**
15
+ * Add an iframe
16
+ */
17
+ setIframe: (options: {
18
+ src: string;
19
+ alt?: string;
20
+ title?: string;
21
+ width?: number;
22
+ height?: number;
23
+ }) => ReturnType;
24
+ };
25
+ }
26
+ }
27
+ export declare const Iframe: Node<IframeOptions, any>;
@@ -0,0 +1 @@
1
+ export * from './iframe';
@@ -0,0 +1,17 @@
1
+ import { ResolvedPos, Node } from 'prosemirror-model';
2
+ import { Selection } from 'prosemirror-state';
3
+
4
+ export declare class ColumnSelection extends Selection {
5
+ constructor(selection: Selection);
6
+ _$from: ResolvedPos;
7
+ _$to: ResolvedPos;
8
+ get $from(): ResolvedPos;
9
+ get $to(): ResolvedPos;
10
+ map(): this;
11
+ content(): import('prosemirror-model').Slice;
12
+ eq(other: Selection): boolean;
13
+ toJSON(): any;
14
+ expandSelection(doc: Node): void;
15
+ static create(doc: Node, from: number, to: number): ColumnSelection;
16
+ getFirstNode(): Node | null;
17
+ }
@@ -0,0 +1,4 @@
1
+ import { Node } from '@tiptap/core';
2
+
3
+ export declare const Column: Node<any, any>;
4
+ export default Column;
@@ -0,0 +1,18 @@
1
+ import { Node } from '@tiptap/core';
2
+
3
+ export declare enum ColumnLayout {
4
+ AlignLeft = "align-left",
5
+ AlignRight = "align-right",
6
+ AlignCenter = "align-center"
7
+ }
8
+ declare module '@tiptap/core' {
9
+ interface Commands<ReturnType> {
10
+ columns: {
11
+ unsetColumns: () => ReturnType;
12
+ setColumns: (columns: number) => ReturnType;
13
+ setLayout: (layout: ColumnLayout) => ReturnType;
14
+ };
15
+ }
16
+ }
17
+ export declare const Columns: Node<any, any>;
18
+ export default Columns;
@@ -0,0 +1,11 @@
1
+ import { Extension } from '@tiptap/core';
2
+ import { Column } from './column';
3
+ import { Columns } from './columns';
4
+
5
+ export interface ColumnExtensionOptions {
6
+ column?: boolean;
7
+ columns?: boolean;
8
+ }
9
+ export declare const ColumnExtension: Extension<ColumnExtensionOptions, any>;
10
+ export { Column, Columns };
11
+ export default ColumnExtension;
@@ -0,0 +1,4 @@
1
+ import { MenuProps } from '../../../common/types';
2
+
3
+ export declare const ColumnsMenu: ({ editor, appendTo }: MenuProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default ColumnsMenu;
@@ -0,0 +1 @@
1
+ export * from './columns-menu';
@@ -0,0 +1,22 @@
1
+ import { JSONContent } from '@tiptap/core';
2
+ import { Node, ResolvedPos } from 'prosemirror-model';
3
+
4
+ export declare const buildNode: ({ type, content }: JSONContent) => JSONContent;
5
+ export declare const buildParagraph: ({ content }: Partial<JSONContent>) => JSONContent;
6
+ export declare const buildDBlock: ({ content }: Partial<JSONContent>) => JSONContent;
7
+ export declare const buildColumn: ({ content }: Partial<JSONContent>) => JSONContent;
8
+ export declare const buildColumnBlock: ({ content }: Partial<JSONContent>) => JSONContent;
9
+ export declare const buildNColumns: (n: number) => JSONContent[];
10
+ interface PredicateProps {
11
+ node: Node;
12
+ pos: number;
13
+ start: number;
14
+ }
15
+ export type Predicate = (props: PredicateProps) => boolean;
16
+ export declare const findParentNodeClosestToPos: ($pos: ResolvedPos, predicate: Predicate) => {
17
+ start: number;
18
+ depth: number;
19
+ node: Node;
20
+ pos: number;
21
+ };
22
+ export {};
@@ -0,0 +1 @@
1
+ export * from './resizable-media';
@@ -0,0 +1 @@
1
+ export * from './media-paste-drop-plugin';
@@ -0,0 +1,12 @@
1
+ import { Plugin } from 'prosemirror-state';
2
+
3
+ export type UploadFnType = (image: File) => Promise<string>;
4
+ /**
5
+ * This function creates a Prosemirror plugin that handles pasting and dropping of media files.
6
+ * It accepts an upload function as a parameter which is used to upload the media files.
7
+ * The plugin prevents the default paste and drop event, uploads the media file (if an upload function is provided),
8
+ * creates a new node with the uploaded media file and replaces the current selection with the new node.
9
+ * If no upload function is provided, it reads the media file as DataURL and uses this in the new node.
10
+ * The function returns a new instance of the Plugin.
11
+ */
12
+ export declare const getMediaPasteDropPlugin: (upload: UploadFnType) => Plugin<any>;
@@ -0,0 +1,3 @@
1
+ import { NodeViewProps } from '@tiptap/react';
2
+
3
+ export declare const ResizableMediaNodeView: ({ node, updateAttributes, deleteNode, }: NodeViewProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import { Node } from '@tiptap/core';
2
+ import { UploadFnType } from './media-paste-drop-plugin';
3
+
4
+ declare module '@tiptap/core' {
5
+ interface Commands<ReturnType> {
6
+ resizableMedia: {
7
+ /**
8
+ * Set media
9
+ */
10
+ setMedia: (options: {
11
+ 'media-type': 'img' | 'video';
12
+ src: string;
13
+ alt?: string;
14
+ title?: string;
15
+ width?: string;
16
+ height?: string;
17
+ }) => ReturnType;
18
+ };
19
+ }
20
+ }
21
+ export interface MediaOptions {
22
+ HTMLAttributes: Record<string, any>;
23
+ uploadFn: UploadFnType;
24
+ }
25
+ export declare const IMAGE_INPUT_REGEX: RegExp;
26
+ export declare const VIDEO_INPUT_REGEX: RegExp;
27
+ export declare const ResizableMedia: Node<MediaOptions, any>;
@@ -0,0 +1,5 @@
1
+ import { Table } from './table';
2
+
3
+ export * from './table';
4
+ export * from './utilities/create-table';
5
+ export default Table;
@@ -0,0 +1,18 @@
1
+ import { Node as ProseMirrorNode } from 'prosemirror-model';
2
+ import { NodeView } from 'prosemirror-view';
3
+
4
+ export declare function updateColumns(node: ProseMirrorNode, colgroup: Element, table: HTMLTableElement, cellMinWidth: number, overrideCol?: number, overrideValue?: string): void;
5
+ export declare class TableView implements NodeView {
6
+ node: ProseMirrorNode;
7
+ cellMinWidth: number;
8
+ dom: Element;
9
+ table: HTMLTableElement;
10
+ colgroup: Element;
11
+ contentDOM: HTMLElement;
12
+ constructor(node: ProseMirrorNode, cellMinWidth: number);
13
+ update(node: ProseMirrorNode): boolean;
14
+ ignoreMutation(mutation: MutationRecord | {
15
+ type: 'selection';
16
+ target: Element;
17
+ }): boolean;
18
+ }
@@ -0,0 +1,56 @@
1
+ import { Node, ParentConfig } from '@tiptap/core';
2
+ import { NodeView } from 'prosemirror-view';
3
+
4
+ export interface TableOptions {
5
+ HTMLAttributes: Record<string, never>;
6
+ resizable: boolean;
7
+ handleWidth: number;
8
+ cellMinWidth: number;
9
+ View: NodeView;
10
+ lastColumnResizable: boolean;
11
+ allowTableNodeSelection: boolean;
12
+ }
13
+ declare module '@tiptap/core' {
14
+ interface Commands<ReturnType> {
15
+ table: {
16
+ insertTable: (options?: {
17
+ rows?: number;
18
+ cols?: number;
19
+ withHeaderRow?: boolean;
20
+ }) => ReturnType;
21
+ addColumnBefore: () => ReturnType;
22
+ addColumnAfter: () => ReturnType;
23
+ deleteColumn: () => ReturnType;
24
+ addRowBefore: () => ReturnType;
25
+ addRowAfter: () => ReturnType;
26
+ deleteRow: () => ReturnType;
27
+ deleteTable: () => ReturnType;
28
+ mergeCells: () => ReturnType;
29
+ splitCell: () => ReturnType;
30
+ toggleHeaderColumn: () => ReturnType;
31
+ toggleHeaderRow: () => ReturnType;
32
+ toggleHeaderCell: () => ReturnType;
33
+ mergeOrSplit: () => ReturnType;
34
+ setCellAttribute: (name: string, value: never) => ReturnType;
35
+ goToNextCell: () => ReturnType;
36
+ goToPreviousCell: () => ReturnType;
37
+ fixTables: () => ReturnType;
38
+ setCellSelection: (position: {
39
+ anchorCell: number;
40
+ headCell?: number;
41
+ }) => ReturnType;
42
+ };
43
+ }
44
+ interface NodeConfig<Options, Storage> {
45
+ /**
46
+ * Table Role
47
+ */
48
+ tableRole?: string | ((this: {
49
+ name: string;
50
+ options: Options;
51
+ storage: Storage;
52
+ parent: ParentConfig<NodeConfig<Options>>['tableRole'];
53
+ }) => string);
54
+ }
55
+ }
56
+ export declare const Table: Node<TableOptions, any>;
@@ -0,0 +1,3 @@
1
+ import { Fragment, Node as ProsemirrorNode, NodeType } from 'prosemirror-model';
2
+
3
+ export declare function createCell(cellType: NodeType, cellContent?: Fragment | ProsemirrorNode | Array<ProsemirrorNode>): ProsemirrorNode | null | undefined;
@@ -0,0 +1,3 @@
1
+ import { Fragment, Node as ProsemirrorNode, Schema } from 'prosemirror-model';
2
+
3
+ export declare function createTable(schema: Schema, rowsCount: number, colsCount: number, withHeaderRow: boolean, cellContent?: Fragment | ProsemirrorNode | Array<ProsemirrorNode>): ProsemirrorNode;
@@ -0,0 +1,3 @@
1
+ import { KeyboardShortcutCommand } from '@tiptap/core';
2
+
3
+ export declare const deleteTableWhenAllCellsSelected: KeyboardShortcutCommand;
@@ -0,0 +1,5 @@
1
+ import { NodeType, Schema } from 'prosemirror-model';
2
+
3
+ export declare function getTableNodeTypes(schema: Schema): {
4
+ [key: string]: NodeType;
5
+ };
@@ -0,0 +1,3 @@
1
+ import { CellSelection } from '@_ueberdosis/prosemirror-tables';
2
+
3
+ export declare function isCellSelection(value: unknown): value is CellSelection;
@@ -0,0 +1,4 @@
1
+ import { TableCell } from './table-cell';
2
+
3
+ export * from './table-cell';
4
+ export default TableCell;
@@ -0,0 +1,4 @@
1
+ import { FC } from 'react';
2
+ import { NodeViewProps } from '@tiptap/react';
3
+
4
+ export declare const TableCellNodeView: FC<NodeViewProps>;
@@ -0,0 +1,6 @@
1
+ import { Node } from '@tiptap/core';
2
+
3
+ export interface TableCellOptions {
4
+ HTMLAttributes: Record<string, any>;
5
+ }
6
+ export declare const TableCell: Node<TableCellOptions, any>;