export type ToolbarItem = ToolbarItemName | '|'; export type ToolbarItemName = 'undo' | 'redo' | 'blockType' | 'fontFamily' | 'fontSize' | 'bold' | 'italic' | 'underline' | 'strike' | 'color' | 'backgroundColor' | 'align' | 'cellBg' | 'tableMenu' | 'codeLang' | 'bulletList' | 'orderedList' | 'blockquote' | 'codeBlock' | 'link' | 'image' | 'table' | 'hr' | 'clearFormat'; export interface ToolbarConfig { items: ToolbarItem[]; sticky?: boolean; } /** * HTML 출력의 스타일 전략. * * - `'inline'` — 테마 색을 블록 인라인 style 에 베이크. 스타일시트 없이도 * 에디터와 같은 시각으로 렌더된다 (기본값). * - `'class'` — 테마 스타일을 베이크하지 않고 `aw-block-*` / `aw-align-*` * 클래스만 남긴다. `style` 속성을 제거하는 서버 sanitizer 를 통과해야 할 때 * 쓴다. 출력은 `aeriz-wysiwyg.min.css` 가 로드된 페이지의 * `.aeriz-wysiwyg > .aw-content` 안에 넣는 것을 전제로 한다. */ export type HtmlStyleMode = 'inline' | 'class'; /** `getHTML()` 호출 단위 옵션. */ export interface SerializeHtmlOptions { /** 스타일 전략. 미지정 시 인스턴스 기본값을 따른다. */ styles?: HtmlStyleMode; } export interface EditorOptions { element: HTMLElement; initialHTML?: string; placeholder?: string; toolbar?: ToolbarConfig | false; theme?: 'light' | 'dark'; /** UI 언어. 'en' / 'ko' / 'ja' / 'zh'. 기본 'ko'. */ locale?: 'en' | 'ko' | 'ja' | 'zh'; /** * `getHTML()` 과 `onChange` 가 내보내는 HTML 의 스타일 전략. 기본 `'inline'`. * `getHTML({ styles })` 로 호출 단위 재정의 가능. */ htmlStyles?: HtmlStyleMode; onChange?: (html: string) => void; /** * 직접 업로드 핸들러. 우선 적용된다. 미설정 + `imageUploadUrl` 만 있을 때는 * 에디터가 multipart/form-data 로 그 URL 에 POST 한 응답 JSON 의 * `url` 필드를 사용한다. */ onImageUpload?: (file: File) => Promise; /** * 서버 이미지 업로드 API URL. 설정 시 이미지 다이얼로그의 "업로드" 탭이 * 활성화된다. 미설정 시 업로드 탭은 비활성 + 툴팁 안내. */ imageUploadUrl?: string; /** * 파일 첨부 직접 업로드 핸들러. 첨부 다이얼로그의 "업로드" 탭에서 사용. * 미설정 + `fileUploadUrl` 만 있을 때는 에디터가 multipart/form-data 로 * POST 한 응답 JSON 의 `url` 필드를 사용한다. */ onFileUpload?: (file: File) => Promise; /** * 서버 파일 업로드 API URL. 설정 시 파일 첨부 다이얼로그의 "업로드" 탭이 * 활성화된다. 미설정 시 업로드 탭은 비활성 + 툴팁 안내. */ fileUploadUrl?: string; } export declare const DEFAULT_TOOLBAR: ToolbarConfig; // (소스맵은 CJS 선언 사본에서 제외됨 — scripts/finalize-types.mjs)