UNPKG

@atlaskit/renderer

Version:
140 lines (139 loc) • 7.4 kB
import type React from 'react'; import Loadable from 'react-loadable'; import type { Fragment, Node, Mark } from '@atlaskit/editor-prosemirror/model'; import { type EventHandlers } from '@atlaskit/editor-common/ui'; import Blockquote from './blockquote'; import BodiedExtension from './bodiedExtension'; import MultiBodiedExtension from './multiBodiedExtension'; import ExtensionFrame from './extensionFrame'; import BulletList from './bulletList'; import Doc, { DocWithSelectAllTrap } from './doc'; import Extension from './extension'; import HardBreak from './hardBreak'; import Heading from './heading'; import InlineExtension from './inlineExtension'; import LayoutSection from './layoutSection'; import LayoutColumn from './layoutColumn'; import ListItem from './listItem'; import Caption from './caption'; import OrderedList from './orderedList'; import Paragraph from './paragraph'; import Placeholder from './placeholder'; import Rule from './rule'; import Table from './table'; import { TableCell } from './tableCell'; import TableRow from './tableRow'; import UnknownBlock from './unknownBlock'; import type { NodeComponentsProps, RendererAppearance } from '../../ui/Renderer/types'; import type { RichMediaLayout, DatasourceAttributeProperties } from '@atlaskit/adf-schema'; import type { MediaInlineAttrs } from '@atlaskit/editor-common/media-inline'; import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory'; import type { Diff } from '@atlaskit/editor-common/utils'; import type { MediaFeatureFlags } from '@atlaskit/media-common'; import type { WithIntlProps, WrappedComponentProps } from 'react-intl'; import type { MediaSSR } from '../../types/mediaOptions'; import type { SmartLinksOptions } from '../../types/smartLinksOptions'; import type { ExpandProps } from '../../ui/Expand'; import type { WithSmartCardStorageProps } from '../../ui/SmartCardStorage'; import type { NodeProps } from '../types'; import type { Props as CodeBlockNodeProps } from './codeBlock/codeBlock'; import type { Props as DateNodeProps } from './date'; import type { Props as DecisionListNodeProps } from './decisionList'; import type { EmojiProps } from './emoji'; import type { InlineCardProps } from './inlineCard'; import type { MediaProps } from './media'; import type { MediaGroupProps } from './mediaGroup'; import type { Props as MediaSingleNodeProps } from './mediaSingle'; import type { Props as MentionNodeProps } from './mention'; import type { Props as PanelNodeProps } from './panel'; import type { Props as StatusNodeProps } from './status'; import type { Props as TaskItemNodeProps } from './taskItem'; import type { Props as TaskListNodeProps } from './taskList'; declare const WindowedCodeBlock: React.ComponentType<CodeBlockNodeProps> & Loadable.LoadableComponent; declare const CodeBlock: React.ComponentType<WithIntlProps<CodeBlockNodeProps & WrappedComponentProps>> & Loadable.LoadableComponent; declare const TaskList: React.ComponentType<TaskListNodeProps> & Loadable.LoadableComponent; declare const TaskItem: React.ComponentType<NodeProps<TaskItemNodeProps>> & Loadable.LoadableComponent; declare const DecisionList: React.ComponentType<DecisionListNodeProps> & Loadable.LoadableComponent; declare const DecisionItem: React.ComponentType<NodeProps> & Loadable.LoadableComponent; declare const Date: React.ComponentType<DateNodeProps> & Loadable.LoadableComponent; declare const Status: React.ComponentType<StatusNodeProps> & Loadable.LoadableComponent; declare const Emoji: React.ComponentType<EmojiProps> & Loadable.LoadableComponent; declare const Panel: React.ComponentType<PanelNodeProps> & Loadable.LoadableComponent; declare const EmbedCard: React.ComponentType<{ data?: object; eventHandlers?: EventHandlers; isInsideOfBlockNode?: boolean; isInsideOfInlineExtension?: boolean; layout: RichMediaLayout; onSetLinkTarget?: (url: string) => '_blank' | undefined; originalHeight?: number; originalWidth?: number; portal?: HTMLElement; rendererAppearance?: RendererAppearance; smartLinks?: SmartLinksOptions; url?: string; width?: number; }> & Loadable.LoadableComponent; declare const InlineCard: React.ComponentType<Diff<InlineCardProps & WithSmartCardStorageProps, WithSmartCardStorageProps>> & Loadable.LoadableComponent; declare const BlockCard: React.ComponentType<{ data?: object; datasource?: DatasourceAttributeProperties; eventHandlers?: EventHandlers; isNodeNested?: boolean; layout?: string; localId?: string; onSetLinkTarget?: (url: string) => '_blank' | undefined; portal?: HTMLElement; rendererAppearance?: RendererAppearance; smartLinks?: SmartLinksOptions; url?: string; }> & Loadable.LoadableComponent; declare const Media: React.ComponentType<React.PropsWithChildren<MediaProps>> & Loadable.LoadableComponent; declare const MediaGroup: React.ComponentType<MediaGroupProps> & Loadable.LoadableComponent; declare const MediaInline: React.ComponentType<WithIntlProps<{ collection?: string; eventHandlers?: EventHandlers; fallbackMediaNameFetcher?: (id: string) => Promise<string>; featureFlags?: MediaFeatureFlags; id: string; marks?: Array<Mark>; providers: ProviderFactory; rendererAppearance?: RendererAppearance; ssr?: MediaSSR; } & WrappedComponentProps & MediaInlineAttrs>> & Loadable.LoadableComponent; declare const MediaSingle: React.ComponentType<WithIntlProps<MediaSingleNodeProps & WrappedComponentProps>> & Loadable.LoadableComponent; declare const Mention: React.ComponentType<MentionNodeProps> & Loadable.LoadableComponent; declare const Expand: React.ComponentType<WithIntlProps<ExpandProps & WrappedComponentProps>> & Loadable.LoadableComponent; export declare const nodeToReact: { [key: string]: React.ComponentType<React.PropsWithChildren<any>>; }; interface ToReactFlags { allowSelectAllTrap?: boolean; allowWindowedCodeBlock?: boolean; } export declare const toReact: (node: Node, flags?: ToReactFlags, nodeComponents?: NodeComponentsProps) => React.ComponentType<React.PropsWithChildren<any>>; export interface TextWrapper { content: Node[]; nodeSize: number; type: { name: 'textWrapper'; }; } interface NodeSimple { attrs?: any; nodeSize: number; text?: string; type: { name: string; }; } export declare const mergeTextNodes: (nodes: (Node | NodeSimple)[]) => (Node | TextWrapper | NodeSimple)[]; export declare const isText: (type: string) => type is "text"; export declare const isTextWrapper: (node: Node | TextWrapper | NodeSimple) => node is TextWrapper; export declare function isTextNode(node: Node | Mark): node is Node; /** * Detects whether a fragment contains a single paragraph node * whose content satisfies the condition for an emoji block */ export declare const isEmojiDoc: (doc: Fragment) => boolean; export { Blockquote, BodiedExtension, BulletList, BlockCard, Caption, CodeBlock, WindowedCodeBlock, Date, DecisionItem, DecisionList, Doc, DocWithSelectAllTrap, Emoji, Extension, ExtensionFrame, Expand, HardBreak, Heading, ListItem, InlineCard, InlineExtension, LayoutSection, LayoutColumn, Media, MediaGroup, MediaInline, MediaSingle, Mention, MultiBodiedExtension, OrderedList, Panel, Paragraph, Placeholder, Rule, Status, TaskItem, TaskList, Table, TableCell, TableRow, UnknownBlock, EmbedCard, };