@primer/react
Version:
An implementation of GitHub's Primer Design System using React
88 lines (87 loc) • 4.58 kB
TypeScript
/// <reference types="react" />
export type { MarkdownEditorHandle } from './MarkdownEditor';
declare const MarkdownEditor: import("react").ForwardRefExoticComponent<import("../..").SxProp & {
value: string;
onChange: (newMarkdown: string) => void;
onRenderPreview: (markdown: string) => Promise<string>;
children: import("react").ReactNode;
disabled?: boolean | undefined;
placeholder?: string | undefined;
maxLength?: number | undefined;
fullHeight?: boolean | undefined;
'aria-describedby'?: string | undefined;
viewMode?: import("./_ViewSwitch").MarkdownViewMode | undefined;
onChangeViewMode?: ((newViewMode: import("./_ViewSwitch").MarkdownViewMode) => void) | undefined;
onPrimaryAction?: (() => void) | undefined;
minHeightLines?: number | undefined;
maxHeightLines?: number | undefined;
emojiSuggestions?: import("./suggestions").SuggestionOptions<import("./suggestions/_useEmojiSuggestions").Emoji> | undefined;
mentionSuggestions?: import("./suggestions").SuggestionOptions<import("./suggestions/_useMentionSuggestions").Mentionable> | undefined;
referenceSuggestions?: import("./suggestions").SuggestionOptions<import("./suggestions/_useReferenceSuggestions").Reference> | undefined;
onUploadFile?: ((file: File) => Promise<import("./_useFileHandling").FileUploadResult>) | undefined;
acceptedFileTypes?: import("./_useFileHandling").FileType[] | undefined;
monospace?: boolean | undefined;
required?: boolean | undefined;
name?: string | undefined;
savedReplies?: import("./_SavedReplies").SavedReply[] | undefined;
pasteUrlsAsPlainText?: boolean | undefined;
} & import("react").RefAttributes<import("./MarkdownEditor").MarkdownEditorHandle>> & {
/** REQUIRED: An accessible label for the editor. */
Label: import("react").FC<import("../..").SxProp & {
visuallyHidden?: boolean | undefined;
children?: import("react").ReactNode;
}>;
/**
* An optional custom toolbar. The toolbar should contain `ToolbarButton`s before
* and/or after a `DefaultToolbarButtons` instance. To create groups of buttons, wrap
* them in an unstyled `Box`.
*/
Toolbar: {
({ children }: {
children?: import("react").ReactNode;
}): JSX.Element;
displayName: string;
};
/**
* A custom toolbar button. This takes `IconButton` props. Every toolbar button should
* have an `aria-label` defined.
*/
ToolbarButton: import("react").ForwardRefExoticComponent<import("../..").IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
/**
* The full set of default toolbar buttons. This is all the basic formatting tools in a
* standardized order.
*/
DefaultToolbarButtons: import("react").MemoExoticComponent<() => JSX.Element>;
/**
* Optionally define a set of custom buttons to show in the editor footer. Often if you
* are defining custom buttons you should also wrap the editor in a `<form>`. This
* component should only contain `ActionButton`s.
*/
Actions: {
({ children }: {
children?: import("react").ReactNode;
}): JSX.Element;
displayName: string;
};
/** A button to show in the editor footer. */
ActionButton: import("react").ForwardRefExoticComponent<{
icon?: import("react").ComponentType<{}> | null | undefined;
leadingIcon?: import("react").ComponentType<{}> | null | undefined;
trailingIcon?: import("react").ComponentType<{}> | null | undefined;
trailingAction?: import("react").ComponentType<{}> | null | undefined;
children: import("react").ReactNode;
alignContent?: import("../../Button/types").AlignContent | undefined;
} & {
variant?: import("../../Button/types").VariantType | undefined;
size?: import("../../Button/types").Size | undefined;
disabled?: boolean | undefined;
block?: boolean | undefined;
} & import("../..").SxProp & import("react").ButtonHTMLAttributes<HTMLButtonElement> & import("react").RefAttributes<HTMLButtonElement>>;
};
export default MarkdownEditor;
export type { MarkdownEditorProps } from './MarkdownEditor';
export type { Emoji } from './suggestions/_useEmojiSuggestions';
export type { Mentionable } from './suggestions/_useMentionSuggestions';
export type { Reference } from './suggestions/_useReferenceSuggestions';
export type { FileUploadResult, FileType } from './_useFileHandling';
export type { SavedReply } from './_SavedReplies';