## API Report File for "@eigenpal/docx-editor-react"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

import { createDefaultFindOptions } from '@eigenpal/docx-editor-core/utils/findReplace';
import { createSearchPattern } from '@eigenpal/docx-editor-core/utils/findReplace';
import { CSSProperties } from 'react';
import { escapeRegexString } from '@eigenpal/docx-editor-core/utils/findReplace';
import { findAllMatches } from '@eigenpal/docx-editor-core/utils/findReplace';
import { FindMatch } from '@eigenpal/docx-editor-core/utils/findReplace';
import { FindOptions } from '@eigenpal/docx-editor-core/utils/findReplace';
import { FindResult } from '@eigenpal/docx-editor-core/utils/findReplace';
import { getDefaultHighlightOptions } from '@eigenpal/docx-editor-core/utils/findReplace';
import { getMatchCountText } from '@eigenpal/docx-editor-core/utils/findReplace';
import { HighlightOptions } from '@eigenpal/docx-editor-core/utils/findReplace';
import { isEmptySearch } from '@eigenpal/docx-editor-core/utils/findReplace';
import { ParsedClipboardContent } from '@eigenpal/docx-editor-core/utils';
import React__default from 'react';
import { replaceAllInContent } from '@eigenpal/docx-editor-core/utils/findReplace';
import { replaceFirstInContent } from '@eigenpal/docx-editor-core/utils/findReplace';
import { SectionProperties } from '@eigenpal/docx-editor-core/types/document';
import { TranslationKey } from '@eigenpal/docx-editor-i18n';

// @public
export interface BookmarkOption {
    label?: string;
    name: string;
}

// @public
export function createBookmarkLinkData(bookmark: string, displayText?: string): HyperlinkData;

export { createDefaultFindOptions }

// @public
export function createHyperlinkData(url: string, displayText?: string): HyperlinkData;

export { createSearchPattern }

// @public
export function emailToMailto(email: string): string;

export { escapeRegexString }

// @public
export function extractBookmarksForDialog(bookmarks: {
    name: string;
    id: number;
}[]): BookmarkOption[];

export { findAllMatches }

export { FindMatch }

export { FindOptions }

// @public
export function FindReplaceDialog(input: FindReplaceDialogProps): React__default.ReactElement | null;

// @public
export interface FindReplaceDialogProps {
    className?: string;
    currentResult?: FindResult | null;
    initialSearchText?: string;
    isOpen: boolean;
    onClearHighlights?: () => void;
    onClose: () => void;
    onFind: (searchText: string, options: FindOptions) => FindResult | null;
    onFindNext: () => FindMatch | null;
    onFindPrevious: () => FindMatch | null;
    onHighlightMatches?: (matches: FindMatch[]) => void;
    onReplace: (replaceText: string) => boolean;
    onReplaceAll: (searchText: string, replaceText: string, options: FindOptions) => number;
    replaceMode?: boolean;
    style?: CSSProperties;
}

export { FindResult }

// @public
export function formatShortcutKeys(keys: string): string;

// @public
export function getAllCategories(): ShortcutCategory[];

// @public
export function getAllPasteOptions(): PasteOptionDef[];

// @public
export function getCategoryLabel(category: ShortcutCategory): string;

// @public
export function getCommonShortcuts(): KeyboardShortcut[];

export { getDefaultHighlightOptions }

// @public
export function getDefaultPasteOption(): PasteOption;

// @public
export function getDefaultShortcuts(): KeyboardShortcut[];

// @public
export function getDisplayText(data: HyperlinkData): string;

export { getMatchCountText }

// @public
export function getPasteOption(id: PasteOption): PasteOptionDef | undefined;

// @public
export function getShortcutsByCategory(category: ShortcutCategory): KeyboardShortcut[];

// @public
export function getUrlType(url: string): 'web' | 'email' | 'phone' | 'ftp' | 'unknown';

export { HighlightOptions }

// @public
export interface HyperlinkData {
    bookmark?: string;
    displayText?: string;
    tooltip?: string;
    url?: string;
}

// @public
export function HyperlinkDialog(input: HyperlinkDialogProps): React__default.ReactElement | null;

// @public
export interface HyperlinkDialogProps {
    bookmarks?: BookmarkOption[];
    className?: string;
    initialData?: HyperlinkData;
    isEditing?: boolean;
    isOpen: boolean;
    onClose: () => void;
    onRemove?: () => void;
    onSubmit: (data: HyperlinkData) => void;
    selectedText?: string;
    style?: CSSProperties;
}

// @public
export function isBookmarkHyperlinkData(data: HyperlinkData): boolean;

export { isEmptySearch }

// @public
export function isExternalHyperlinkData(data: HyperlinkData): boolean;

// @public
export function isPasteSpecialShortcut(event: KeyboardEvent): boolean;

// @public
export function isValidUrl(url: string): boolean;

// @public
export interface KeyboardShortcut {
    altKeys?: string;
    category: ShortcutCategory;
    common?: boolean;
    description: string;
    descriptionKey?: TranslationKey;
    id: string;
    keys: string;
    name: string;
    nameKey?: TranslationKey;
}

// @public (undocumented)
export const KeyboardShortcutsDialog: React__default.FC<KeyboardShortcutsDialogProps>;

// @public
export interface KeyboardShortcutsDialogProps {
    className?: string;
    customShortcuts?: KeyboardShortcut[];
    isOpen: boolean;
    onClose: () => void;
    showSearch?: boolean;
}

// @public
export function normalizeUrl(url: string): string;

// @public (undocumented)
export function PageSetupDialog(input: PageSetupDialogProps): React__default.ReactElement | null;

// @public
export interface PageSetupDialogProps {
    // (undocumented)
    currentProps?: SectionProperties;
    // (undocumented)
    isOpen: boolean;
    // (undocumented)
    onApply: (props: Partial<SectionProperties>) => void;
    // (undocumented)
    onClose: () => void;
}

// @public
export type PasteOption = 'formatted' | 'plainText';

// @public (undocumented)
export const PasteSpecialDialog: React__default.FC<PasteSpecialDialogProps>;

// @public
export interface PasteSpecialDialogProps {
    className?: string;
    isOpen: boolean;
    onClose: () => void;
    onPaste: (content: ParsedClipboardContent, asPlainText: boolean) => void;
    position?: {
        x: number;
        y: number;
    };
}

// @public
export function phoneToTel(phone: string): string;

export { replaceAllInContent }

export { replaceFirstInContent }

// @public
export type ShortcutCategory = 'editing' | 'formatting' | 'navigation' | 'clipboard' | 'selection' | 'view' | 'file' | 'other';

// @public
export function useKeyboardShortcutsDialog(options?: UseKeyboardShortcutsDialogOptions): UseKeyboardShortcutsDialogReturn;

// @public
export interface UseKeyboardShortcutsDialogOptions {
    enabled?: boolean;
    openShortcut?: string;
}

// @public
export interface UseKeyboardShortcutsDialogReturn {
    close: () => void;
    handleKeyDown: (event: KeyboardEvent) => void;
    isOpen: boolean;
    open: () => void;
    toggle: () => void;
}

// @public
export function usePasteSpecial(options?: UsePasteSpecialOptions): UsePasteSpecialReturn;

// @public
export interface UsePasteSpecialOptions {
    enabled?: boolean;
    onPaste?: (content: ParsedClipboardContent, asPlainText: boolean) => void;
}

// @public
export interface UsePasteSpecialReturn {
    closeDialog: () => void;
    handleKeyDown: (event: KeyboardEvent) => boolean;
    isOpen: boolean;
    openDialog: () => void;
    pasteAsPlainText: () => Promise<void>;
}

```
