@aeriz/wysiwyg 1.0.2 → 1.0.4
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.
- package/README.md +634 -96
- package/angular/README.md +112 -0
- package/angular/aeriz-editor.directive.ts +243 -0
- package/angular/aeriz-wysiwyg.module.ts +14 -0
- package/angular/index.ts +5 -0
- package/dist/adapters/jquery.cjs +1 -0
- package/dist/adapters/jquery.js +91 -0
- package/dist/adapters/react.cjs +1 -0
- package/dist/adapters/react.js +66 -0
- package/dist/adapters/shared.cjs +1 -0
- package/dist/adapters/shared.js +87 -0
- package/dist/adapters/svelte.cjs +1 -0
- package/dist/adapters/svelte.js +29 -0
- package/dist/adapters/vue.cjs +1 -0
- package/dist/adapters/vue.js +110 -0
- package/dist/adapters/vue2.cjs +1 -0
- package/dist/adapters/vue2.js +117 -0
- package/dist/adapters/wc.cjs +1 -0
- package/dist/adapters/wc.js +207 -0
- package/dist/aeriz-wysiwyg-adapter.js +169 -0
- package/dist/aeriz-wysiwyg-adapter.min.js +1 -0
- package/dist/aeriz-wysiwyg-jquery.js +275 -0
- package/dist/aeriz-wysiwyg-jquery.min.js +1 -0
- package/dist/aeriz-wysiwyg-wc.js +401 -0
- package/dist/aeriz-wysiwyg-wc.min.js +1 -0
- package/dist/aeriz-wysiwyg.cjs +8759 -0
- package/dist/aeriz-wysiwyg.css +587 -163
- package/dist/aeriz-wysiwyg.esm.js +4249 -1381
- package/dist/aeriz-wysiwyg.esm.min.js +4456 -1995
- package/dist/aeriz-wysiwyg.js +4249 -1381
- package/dist/aeriz-wysiwyg.min.cjs +56 -0
- package/dist/aeriz-wysiwyg.min.css +1 -1
- package/dist/aeriz-wysiwyg.min.js +54 -21
- package/dist/server.cjs +34 -0
- package/dist/server.js +798 -0
- package/dist-types/adapters/jquery.d.ts +34 -0
- package/dist-types/adapters/jquery.d.ts.map +1 -0
- package/dist-types/adapters/react.d.ts +28 -0
- package/dist-types/adapters/react.d.ts.map +1 -0
- package/dist-types/adapters/shared.d.ts +83 -0
- package/dist-types/adapters/shared.d.ts.map +1 -0
- package/dist-types/adapters/svelte.d.ts +38 -0
- package/dist-types/adapters/svelte.d.ts.map +1 -0
- package/dist-types/adapters/vue.d.ts +189 -0
- package/dist-types/adapters/vue.d.ts.map +1 -0
- package/dist-types/adapters/vue2.d.ts +175 -0
- package/dist-types/adapters/vue2.d.ts.map +1 -0
- package/dist-types/adapters/wc.d.ts +96 -0
- package/dist-types/adapters/wc.d.ts.map +1 -0
- package/dist-types/cjs/adapters/jquery.d.cts +34 -0
- package/dist-types/cjs/adapters/react.d.cts +28 -0
- package/dist-types/cjs/adapters/shared.d.cts +83 -0
- package/dist-types/cjs/adapters/svelte.d.cts +38 -0
- package/dist-types/cjs/adapters/vue.d.cts +189 -0
- package/dist-types/cjs/adapters/vue2.d.cts +175 -0
- package/dist-types/cjs/adapters/wc.d.cts +96 -0
- package/dist-types/cjs/core/AerizEditor.d.cts +530 -0
- package/dist-types/cjs/core/AerizViewer.d.cts +61 -0
- package/dist-types/cjs/core/block-meta.d.cts +98 -0
- package/dist-types/cjs/core/block-policy.d.cts +43 -0
- package/dist-types/cjs/core/blocks.d.cts +411 -0
- package/dist-types/cjs/core/fonts.d.cts +60 -0
- package/dist-types/cjs/core/highlight.d.cts +44 -0
- package/dist-types/cjs/core/history.d.cts +86 -0
- package/dist-types/cjs/core/html-mini.d.cts +65 -0
- package/dist-types/cjs/core/i18n.d.cts +221 -0
- package/dist-types/cjs/core/import-html.d.cts +40 -0
- package/dist-types/cjs/core/import-markdown.d.cts +33 -0
- package/dist-types/cjs/core/input-rules.d.cts +46 -0
- package/dist-types/cjs/core/markdown-export.d.cts +30 -0
- package/dist-types/cjs/core/plain-text.d.cts +17 -0
- package/dist-types/cjs/core/render-string.d.cts +68 -0
- package/dist-types/cjs/core/selection.d.cts +46 -0
- package/dist-types/cjs/core/snapshot.d.cts +51 -0
- package/dist-types/cjs/core/table-ops.d.cts +30 -0
- package/dist-types/cjs/index.d.cts +22 -0
- package/dist-types/cjs/server/index.d.cts +37 -0
- package/dist-types/cjs/types/index.d.cts +61 -0
- package/dist-types/cjs/ui/Toolbar.d.cts +21 -0
- package/dist-types/cjs/ui/dialogs.d.cts +74 -0
- package/dist-types/cjs/ui/icons.d.cts +2 -0
- package/dist-types/cjs/ui/popovers.d.cts +70 -0
- package/dist-types/core/AerizEditor.d.ts +210 -17
- package/dist-types/core/AerizEditor.d.ts.map +1 -1
- package/dist-types/core/AerizViewer.d.ts +16 -4
- package/dist-types/core/AerizViewer.d.ts.map +1 -1
- package/dist-types/core/block-meta.d.ts +98 -0
- package/dist-types/core/block-meta.d.ts.map +1 -0
- package/dist-types/core/block-policy.d.ts +43 -0
- package/dist-types/core/block-policy.d.ts.map +1 -0
- package/dist-types/core/blocks.d.ts +109 -11
- package/dist-types/core/blocks.d.ts.map +1 -1
- package/dist-types/core/fonts.d.ts +11 -0
- package/dist-types/core/fonts.d.ts.map +1 -1
- package/dist-types/core/history.d.ts +86 -0
- package/dist-types/core/history.d.ts.map +1 -0
- package/dist-types/core/html-mini.d.ts +65 -0
- package/dist-types/core/html-mini.d.ts.map +1 -0
- package/dist-types/core/i18n.d.ts +12 -0
- package/dist-types/core/i18n.d.ts.map +1 -1
- package/dist-types/core/import-html.d.ts +1 -0
- package/dist-types/core/import-html.d.ts.map +1 -1
- package/dist-types/core/import-markdown.d.ts +0 -4
- package/dist-types/core/import-markdown.d.ts.map +1 -1
- package/dist-types/core/input-rules.d.ts +46 -0
- package/dist-types/core/input-rules.d.ts.map +1 -0
- package/dist-types/core/markdown-export.d.ts +30 -0
- package/dist-types/core/markdown-export.d.ts.map +1 -0
- package/dist-types/core/plain-text.d.ts +17 -0
- package/dist-types/core/plain-text.d.ts.map +1 -0
- package/dist-types/core/render-string.d.ts +68 -0
- package/dist-types/core/render-string.d.ts.map +1 -0
- package/dist-types/core/selection.d.ts +46 -0
- package/dist-types/core/selection.d.ts.map +1 -0
- package/dist-types/core/snapshot.d.ts +51 -0
- package/dist-types/core/snapshot.d.ts.map +1 -0
- package/dist-types/core/table-ops.d.ts +30 -0
- package/dist-types/core/table-ops.d.ts.map +1 -0
- package/dist-types/index.d.ts +21 -10
- package/dist-types/index.d.ts.map +1 -1
- package/dist-types/server/index.d.ts +37 -0
- package/dist-types/server/index.d.ts.map +1 -0
- package/dist-types/types/index.d.ts +21 -0
- package/dist-types/types/index.d.ts.map +1 -1
- package/dist-types/ui/Toolbar.d.ts +1 -1
- package/dist-types/ui/Toolbar.d.ts.map +1 -1
- package/dist-types/ui/dialogs.d.ts.map +1 -1
- package/dist-types/ui/icons.d.ts.map +1 -1
- package/dist-types/ui/popovers.d.ts +1 -1
- package/dist-types/ui/popovers.d.ts.map +1 -1
- package/package.json +213 -58
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOM 없이 `BlockSnapshot[]` → HTML 문자열.
|
|
3
|
+
*
|
|
4
|
+
* `document` / `window` 를 **모듈 최상위에서도, 함수 안에서도** 참조하지 않는다.
|
|
5
|
+
* Cloudflare Workers(workerd) · Node · Deno · Bun 어디서든 그대로 동작한다.
|
|
6
|
+
*
|
|
7
|
+
* ## 보장
|
|
8
|
+
*
|
|
9
|
+
* - **결정적** — 같은 입력이면 항상 같은 문자열. 난수 · 현재 시각 · 순회 순서에
|
|
10
|
+
* 의존하는 값을 쓰지 않는다. 따라서 재렌더 결과의 diff 가 의미를 갖는다.
|
|
11
|
+
* - **멱등** — 같은 스냅샷을 몇 번 렌더해도 결과가 누적되거나 변하지 않는다.
|
|
12
|
+
* - **에디터 전용 마크업 없음** — 리사이즈 핸들 · 정렬 컨트롤 · `contenteditable`
|
|
13
|
+
* 같은 편집 보조 마크업은 출력에 포함되지 않는다.
|
|
14
|
+
*
|
|
15
|
+
* ## 브라우저 렌더 경로와의 관계
|
|
16
|
+
*
|
|
17
|
+
* DOM 경로(`renderBlock`) 와 **같은 결과**를 내는 것이 목표다. 모든 블록은
|
|
18
|
+
* `snapshot.html` 을 그대로 싣고, `html` 이 비어 있을 때만 `attrs` 로 골격을
|
|
19
|
+
* 조립한다 (`AerizViewer` 도 같은 규칙).
|
|
20
|
+
*
|
|
21
|
+
* 원자 블록(이미지 · 유튜브 · 링크 카드 · 파일) 도 예외가 아니다. 예전에는
|
|
22
|
+
* `attrs` 로만 다시 조립했는데, 그러면 `<figcaption>` 처럼 `attrs` 에 없는
|
|
23
|
+
* 사용자 컨텐츠가 **서버 렌더에서만** 사라져 같은 스냅샷이 브라우저와 서버에서
|
|
24
|
+
* 다르게 보였다.
|
|
25
|
+
*
|
|
26
|
+
* 편집 보조 마크업(정렬 컨트롤 · 리사이즈 핸들) 은 1.0.3 부터 `serialize()` 가
|
|
27
|
+
* 애초에 싣지 않지만, 그 이전 데이터를 위해 읽는 쪽에서도 걷어낸다.
|
|
28
|
+
*/
|
|
29
|
+
import type { BlockSnapshot } from './blocks.js';
|
|
30
|
+
export interface RenderHtmlOptions {
|
|
31
|
+
/**
|
|
32
|
+
* 각 블록에 `data-block-id` 를 남길지. 기본 `true`.
|
|
33
|
+
*
|
|
34
|
+
* 저장된 스냅샷과 렌더된 HTML 을 대조해야 하는 경우(앵커 링크, 코멘트 위치
|
|
35
|
+
* 고정 등) 켜 두고, 순수 발행용 HTML 이면 끈다.
|
|
36
|
+
*/
|
|
37
|
+
blockIds?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* 감싸는 컨테이너.
|
|
40
|
+
* - `'none'` (기본) — 블록들만 이어붙인 조각
|
|
41
|
+
* - `'content'` — `<div class="aeriz-wysiwyg"><div class="aw-content">…`
|
|
42
|
+
* 로 감싼다. 배포된 `aeriz-wysiwyg.min.css` 를 함께 로드하면 에디터와 같은
|
|
43
|
+
* 시각으로 렌더된다 (클래스 기반 스타일링 경로).
|
|
44
|
+
*/
|
|
45
|
+
wrapper?: 'none' | 'content';
|
|
46
|
+
/** `wrapper: 'content'` 일 때 컨테이너에 부여할 테마. */
|
|
47
|
+
theme?: 'light' | 'dark';
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 스냅샷 배열을 HTML 문자열로 렌더한다.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* // Cloudflare Worker
|
|
54
|
+
* import { renderBlocksToHTML } from '@aeriz/wysiwyg/server';
|
|
55
|
+
*
|
|
56
|
+
* const html = renderBlocksToHTML(post.blocks, { wrapper: 'content' });
|
|
57
|
+
*/
|
|
58
|
+
export declare function renderBlocksToHTML(snapshots: readonly BlockSnapshot[], options?: RenderHtmlOptions): string;
|
|
59
|
+
/**
|
|
60
|
+
* 단일 스냅샷을 HTML 문자열로 렌더한다.
|
|
61
|
+
*
|
|
62
|
+
* 스트리밍 · 블록 단위 캐시처럼 블록을 하나씩 렌더하는 호출자를 위해 공개돼
|
|
63
|
+
* 있다. `renderBlocksToHTML` 과 **같은 정규화**를 거쳐야 하므로 여기서도
|
|
64
|
+
* `upgradeSnapshot` 을 적용한다 — 빠뜨리면 모르는 kind 가 exhaustive 분기로
|
|
65
|
+
* 떨어져 빈 문자열이 되고, 블록이 조용히 사라진다.
|
|
66
|
+
*/
|
|
67
|
+
export declare function renderBlockToHTML(snapshot: BlockSnapshot, options?: Pick<RenderHtmlOptions, 'blockIds'>): string;
|
|
68
|
+
//# sourceMappingURL=render-string.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-string.d.ts","sourceRoot":"","sources":["../../src/core/render-string.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,UAAU,CAAC;AA8B5D,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAQR;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,EACvB,OAAO,GAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAM,GAChD,MAAM,CAER"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** 문자 오프셋으로 표현한 선택 영역. */
|
|
2
|
+
export interface SelectionOffsets {
|
|
3
|
+
start: number;
|
|
4
|
+
end: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* `<code>` element 안의 셀렉션을 텍스트 오프셋으로 저장한다.
|
|
8
|
+
* 하이라이트가 innerHTML 을 다시 쓰기 직전에 부른다.
|
|
9
|
+
*/
|
|
10
|
+
export declare function saveCodeSelection(codeEl: HTMLElement): SelectionOffsets | null;
|
|
11
|
+
/** {@link saveCodeSelection} 로 저장한 위치에 캐럿을 되돌린다. */
|
|
12
|
+
export declare function restoreCodeSelection(codeEl: HTMLElement, saved: SelectionOffsets): void;
|
|
13
|
+
/**
|
|
14
|
+
* `root` 안의 현재 셀렉션을 문자 오프셋으로 캡처한다.
|
|
15
|
+
* 셀렉션이 `root` 밖이면 null.
|
|
16
|
+
*/
|
|
17
|
+
export declare function captureSelectionOffsets(root: HTMLElement): SelectionOffsets | null;
|
|
18
|
+
/**
|
|
19
|
+
* 문자 오프셋으로 저장해 둔 셀렉션을 되살린다.
|
|
20
|
+
* 문서가 짧아져 오프셋이 넘치면 가장 가까운 위치(문서 끝) 에 둔다.
|
|
21
|
+
*/
|
|
22
|
+
export declare function restoreSelectionOffsets(root: HTMLElement, saved: SelectionOffsets): void;
|
|
23
|
+
/**
|
|
24
|
+
* 캐럿이 블록의 맨 끝에 있는지.
|
|
25
|
+
*
|
|
26
|
+
* 캐럿 뒤에 남은 **글자**가 없으면 끝으로 본다. 빈 단락의 `<br>` 이나 캐럿
|
|
27
|
+
* 고정용 zero-width 문자는 글자로 치지 않는다 — 사용자 눈에는 아무것도 없는
|
|
28
|
+
* 자리이기 때문이다.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isCaretAtBlockEnd(blockEl: HTMLElement): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* 블록 시작부터 캐럿까지의 **보이는 글자**.
|
|
33
|
+
*
|
|
34
|
+
* 마크다운 입력 규칙이 방아쇠(`# ` 등) 를 알아보는 근거다. 노드 구조로
|
|
35
|
+
* 판정하지 않는 이유 — 빈 단락에는 placeholder `<br>` 이 남아 있고 첫 입력의
|
|
36
|
+
* 노드 배치가 브라우저마다 달라서, "첫 텍스트 노드" 같은 조건은 실제
|
|
37
|
+
* 브라우저에서 조용히 빗나간다.
|
|
38
|
+
*
|
|
39
|
+
* 판정에 쓴 Range 를 함께 돌려준다 — 방아쇠를 지우려면 정확히 그 범위가
|
|
40
|
+
* 필요하고, 다시 계산하면 그 사이 캐럿이 움직였을 때 엉뚱한 곳을 지운다.
|
|
41
|
+
*/
|
|
42
|
+
export declare function textBeforeCaret(blockEl: HTMLElement): {
|
|
43
|
+
text: string;
|
|
44
|
+
range: Range;
|
|
45
|
+
} | null;
|
|
46
|
+
//# sourceMappingURL=selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../src/core/selection.ts"],"names":[],"mappings":"AAcA,0BAA0B;AAC1B,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAE9E;AAED,oDAAoD;AACpD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,gBAAgB,GACtB,IAAI,CAEN;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,WAAW,GAChB,gBAAgB,GAAG,IAAI,CAgBzB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,gBAAgB,GACtB,IAAI,CAcN;AAwBD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAa/D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAAG,IAAI,CAavC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BlockSnapshot 스키마 버전과 마이그레이션 진입점.
|
|
3
|
+
*
|
|
4
|
+
* 이 모듈은 **DOM 을 전혀 참조하지 않는다**. `document` / `window` 가 없는
|
|
5
|
+
* 런타임(Cloudflare workerd, Node, Deno) 에서 그대로 import 할 수 있어야 하므로
|
|
6
|
+
* blocks.ts 로부터는 타입만 가져온다.
|
|
7
|
+
*/
|
|
8
|
+
import type { BlockSnapshot } from './blocks.js';
|
|
9
|
+
/**
|
|
10
|
+
* 현재 직렬화 스키마 버전.
|
|
11
|
+
*
|
|
12
|
+
* `serializeBlock()` 은 항상 이 값을 `snapshot.version` 에 기록한다.
|
|
13
|
+
*
|
|
14
|
+
* ## 버전 변경 정책
|
|
15
|
+
*
|
|
16
|
+
* 버전을 올리는 경우 — 저장된 데이터를 그대로 읽으면 **의미가 달라지는** 변경:
|
|
17
|
+
* - `kind` 의 삭제 또는 의미 변경
|
|
18
|
+
* - 기존 `attrs` 필드의 삭제 · 이름 변경 · 타입 변경 · 단위 변경
|
|
19
|
+
* - `html` 필드가 담는 내용의 범위 변경 (예: 인라인 컨텐츠 → 전체 outerHTML)
|
|
20
|
+
*
|
|
21
|
+
* 버전을 올리지 않는 경우 — 구버전 데이터를 그대로 읽어도 안전한 변경:
|
|
22
|
+
* - 새로운 `kind` 추가 (구버전 데이터에는 등장하지 않음)
|
|
23
|
+
* - 새로운 optional `attrs` 필드 추가
|
|
24
|
+
* - 렌더 결과의 시각적 변경 (CSS · 마크업 세부)
|
|
25
|
+
*
|
|
26
|
+
* 버전이 올라가면 {@link upgradeSnapshots} 에 해당 단계의 변환을 추가하고,
|
|
27
|
+
* 이 상수를 올린다. 읽기 경로(`AerizViewer.setBlocks` /
|
|
28
|
+
* `renderBlocksToHTML`) 는 모두 upgrade 를 거치도록 유지한다.
|
|
29
|
+
*/
|
|
30
|
+
export declare const SNAPSHOT_VERSION = 1;
|
|
31
|
+
/**
|
|
32
|
+
* 스냅샷의 스키마 버전. `version` 이 없으면 버전 필드 도입 이전 데이터이므로
|
|
33
|
+
* 1 로 간주한다 (1.0.x 까지의 출력이 여기 해당한다).
|
|
34
|
+
*/
|
|
35
|
+
export declare function snapshotVersionOf(snapshot: BlockSnapshot): number;
|
|
36
|
+
/**
|
|
37
|
+
* 저장된 스냅샷을 현재 스키마로 정규화한다.
|
|
38
|
+
*
|
|
39
|
+
* 읽기 경로의 단일 관문이다. 지금(v1) 은 실질 변환이 없고 다음만 보정한다.
|
|
40
|
+
* - `version` 누락 → 1 로 채움
|
|
41
|
+
* - 모르는 `kind` → `'unknown'` 으로 강등 (미래 버전으로 저장된 글을 구버전
|
|
42
|
+
* 클라이언트가 열었을 때 렌더가 통째로 깨지는 대신 해당 블록만 원문 유지)
|
|
43
|
+
* - `html` 누락 → 빈 문자열
|
|
44
|
+
*
|
|
45
|
+
* 버전이 올라가면 여기에 단계별 변환(1→2, 2→3 …) 을 순차 적용하는 형태로
|
|
46
|
+
* 확장한다.
|
|
47
|
+
*/
|
|
48
|
+
export declare function upgradeSnapshots(input: readonly BlockSnapshot[]): BlockSnapshot[];
|
|
49
|
+
/** 단일 스냅샷 정규화. {@link upgradeSnapshots} 의 단위 연산. */
|
|
50
|
+
export declare function upgradeSnapshot(snapshot: BlockSnapshot): BlockSnapshot;
|
|
51
|
+
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/core/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAa,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAGjE;AAqBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,aAAa,EAAE,GAC9B,aAAa,EAAE,CAEjB;AAED,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CAatE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 표 셀의 기하와 이동.
|
|
3
|
+
*
|
|
4
|
+
* 표 편집은 "지금 어느 셀인가" 를 계속 되묻는 일이다 — 캐럿이 놓인 셀, 드래그
|
|
5
|
+
* 로 걸친 셀 범위, 마우스가 가장자리에 닿았는지, Tab 을 눌렀을 때 다음 셀.
|
|
6
|
+
* 그 판정들만 여기 모은다. 에디터 인스턴스 상태를 보지 않는 순수 계산이라
|
|
7
|
+
* 따로 두면 표 동작을 고칠 때 에디터 본체를 읽지 않아도 된다.
|
|
8
|
+
*
|
|
9
|
+
* **rowspan / colspan 은 고려하지 않는다.** 이 에디터는 둘 다 만들지 않으며,
|
|
10
|
+
* 병합 셀을 지원하게 되면 여기 있는 인덱스 계산은 전부 다시 짜야 한다.
|
|
11
|
+
*/
|
|
12
|
+
/** 임의의 노드에서 가장 가까운 td/th element. 없으면 null. */
|
|
13
|
+
export declare function nearestCell(node: Node): HTMLTableCellElement | null;
|
|
14
|
+
/**
|
|
15
|
+
* 다음 표 셀. 행 끝이면 다음 행의 첫 셀, 표의 마지막 셀이면 **새 행을 만들어**
|
|
16
|
+
* 그 첫 셀을 돌려준다 — Tab 만으로 표를 끝까지 채울 수 있도록.
|
|
17
|
+
*/
|
|
18
|
+
export declare function nextTableCell(cell: HTMLTableCellElement, table: HTMLTableElement): HTMLTableCellElement | null;
|
|
19
|
+
/** 이전 표 셀. 첫 셀이면 null. */
|
|
20
|
+
export declare function previousTableCell(cell: HTMLTableCellElement): HTMLTableCellElement | null;
|
|
21
|
+
/**
|
|
22
|
+
* `startCell` 과 `endCell` 을 모서리로 하는 사각 영역의 모든 td/th.
|
|
23
|
+
*
|
|
24
|
+
* thead 와 tbody 가 섞여 있어도 `querySelectorAll('tr')` 의 document order 로
|
|
25
|
+
* 단일 행 인덱스를 매긴다 — 사용자 눈에 보이는 순서와 같다.
|
|
26
|
+
*/
|
|
27
|
+
export declare function cellsInRectangle(table: HTMLTableElement, startCell: HTMLTableCellElement, endCell: HTMLTableCellElement): HTMLTableCellElement[];
|
|
28
|
+
/** 셀의 우/하 가장자리에 포인터가 있으면 'right' / 'bottom'. 아니면 null. */
|
|
29
|
+
export declare function detectCellEdge(cell: HTMLTableCellElement, x: number, y: number): 'right' | 'bottom' | null;
|
|
30
|
+
//# sourceMappingURL=table-ops.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-ops.d.ts","sourceRoot":"","sources":["../../src/core/table-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,oBAAoB,GAAG,IAAI,CAMnE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,gBAAgB,GACtB,oBAAoB,GAAG,IAAI,CAO7B;AAED,0BAA0B;AAC1B,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,oBAAoB,GACzB,oBAAoB,GAAG,IAAI,CAM7B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,oBAAoB,GAC5B,oBAAoB,EAAE,CA8BxB;AAKD,0DAA0D;AAC1D,wBAAgB,cAAc,CAC5B,IAAI,EAAE,oBAAoB,EAC1B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,OAAO,GAAG,QAAQ,GAAG,IAAI,CAQ3B"}
|
package/dist-types/index.d.ts
CHANGED
|
@@ -1,11 +1,22 @@
|
|
|
1
|
-
import
|
|
2
|
-
export { AerizEditor } from './core/AerizEditor';
|
|
3
|
-
export type { EditorState, EditorStateListener, InlineState, } from './core/AerizEditor';
|
|
4
|
-
export { AerizViewer } from './core/AerizViewer';
|
|
5
|
-
export type { ViewerOptions } from './core/AerizViewer';
|
|
6
|
-
export { ALL_INLINE_MARKS, BLOCK_ID_ATTR, BLOCK_TYPES, BLOCK_TYPE_BY_KIND, BlockIdRegistry, applyBlockInlineStyles, assignMissingIds, classifyBlockElement, extractInlineContent, fillInlineContent, findBlockFrom, getBlockLabel, isElementBlank, listBlocks, normalizeContent, placeCaretAtStart, readBlockStyleTheme, renderBlock, renderBlocks, serializeBlock, serializeBlocks, stripEditorOnlyAttrs, } from './core/blocks';
|
|
7
|
-
export type { BlockStyleTheme } from './core/blocks';
|
|
8
|
-
export type { Block, BlockAttrs, BlockAttrsByKind, BlockIdResolver, BlockKind, BlockMatch, BlockSnapshot, BlockType, BlockquoteAttrs, BulletListAttrs, ClassifyResult, CodeBlockAttrs, FileAttrs, HeadingAttrs, HeadingLevel, HrAttrs, ImageAttrs, ImportedHtmlAttrs, InlineMarkName, LinkCardAttrs, OrderedListAttrs, ParagraphAttrs, Snapshot, TableAttrs, UnknownAttrs, YoutubeAttrs, } from './core/blocks';
|
|
9
|
-
export
|
|
10
|
-
export {
|
|
1
|
+
// (CSS 부수 효과 import 는 타입 선언에서 제거됨 — scripts/strip-css-imports.mjs)
|
|
2
|
+
export { AerizEditor } from './core/AerizEditor.js';
|
|
3
|
+
export type { EditorState, EditorStateListener, InlineState, } from './core/AerizEditor.js';
|
|
4
|
+
export { AerizViewer } from './core/AerizViewer.js';
|
|
5
|
+
export type { ViewerOptions } from './core/AerizViewer.js';
|
|
6
|
+
export { ALIGN_CLASS_BY_VALUE, ALL_INLINE_MARKS, BLOCK_ID_ATTR, BLOCK_TYPES, BLOCK_TYPE_BY_KIND, BlockIdRegistry, applyBlockClassNames, applyBlockInlineStyles, assignMissingIds, classifyBlockElement, extractInlineContent, fillInlineContent, findBlockFrom, getBlockLabel, isElementBlank, listBlocks, normalizeContent, placeCaretAtStart, readBlockStyleTheme, renderBlock, renderBlocks, serializeBlock, serializeBlocks, restoreAlignFromClasses, stripEditorOnlyAttrs, stripEditorOnlyNodes, } from './core/blocks.js';
|
|
7
|
+
export type { BlockStyleTheme } from './core/blocks.js';
|
|
8
|
+
export type { Block, BlockAttrs, BlockAttrsByKind, BlockIdResolver, BlockKind, BlockMatch, BlockSnapshot, BlockType, BlockquoteAttrs, BulletListAttrs, ClassifyResult, CodeBlockAttrs, FileAttrs, HeadingAttrs, HeadingLevel, HrAttrs, ImageAttrs, ImportedHtmlAttrs, InlineMarkName, LinkCardAttrs, OrderedListAttrs, ParagraphAttrs, Snapshot, TableAttrs, UnknownAttrs, YoutubeAttrs, } from './core/blocks.js';
|
|
9
|
+
export { getLocale, setLocale, t } from './core/i18n.js';
|
|
10
|
+
export type { Locale, Strings } from './core/i18n.js';
|
|
11
|
+
export type { EditorOptions, HtmlStyleMode, SerializeHtmlOptions, ToolbarConfig, ToolbarItem, ToolbarItemName, } from './types/index.js';
|
|
12
|
+
export { DEFAULT_TOOLBAR } from './types/index.js';
|
|
13
|
+
export { SNAPSHOT_VERSION, snapshotVersionOf, upgradeSnapshot, upgradeSnapshots, } from './core/snapshot.js';
|
|
14
|
+
export { renderBlockToHTML, renderBlocksToHTML } from './core/render-string.js';
|
|
15
|
+
export type { RenderHtmlOptions } from './core/render-string.js';
|
|
16
|
+
export { blocksToMarkdown } from './core/markdown-export.js';
|
|
17
|
+
export type { MarkdownOptions } from './core/markdown-export.js';
|
|
18
|
+
export { blocksToPlainText } from './core/plain-text.js';
|
|
19
|
+
export type { PlainTextOptions } from './core/plain-text.js';
|
|
20
|
+
export { decodeEntities, escapeAttr, escapeHtml, parseHtmlFragment, serializeNodes, textOf, textWithBlockBreaks, } from './core/html-mini.js';
|
|
21
|
+
export type { HtmlElementNode, HtmlNode, HtmlText } from './core/html-mini.js';
|
|
11
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EACV,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EACV,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AAKvB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEnD,YAAY,EACV,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQ1C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EACL,cAAc,EACd,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@aeriz/wysiwyg/server` — DOM 없는 런타임용 진입점.
|
|
3
|
+
*
|
|
4
|
+
* 이 모듈은 **CSS 를 import 하지 않으며**, import 그래프 전체가
|
|
5
|
+
* `document` / `window` 를 참조하지 않는다. Cloudflare Workers(workerd) ·
|
|
6
|
+
* Node · Deno · Bun 에서 그대로 쓸 수 있다.
|
|
7
|
+
*
|
|
8
|
+
* 브라우저용 기본 진입점(`@aeriz/wysiwyg`) 은 스타일시트를 부수 효과로
|
|
9
|
+
* 불러오고 에디터/뷰어가 DOM 을 직접 만들기 때문에 서버에서 쓸 수 없다.
|
|
10
|
+
* 저장된 스냅샷을 HTML · 마크다운 · 평문으로 바꾸는 일만 필요하면 여기서
|
|
11
|
+
* 가져오면 된다.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // Cloudflare Worker — 저장된 글을 HTML 로 재렌더
|
|
15
|
+
* import { renderBlocksToHTML, blocksToPlainText } from '@aeriz/wysiwyg/server';
|
|
16
|
+
*
|
|
17
|
+
* export default {
|
|
18
|
+
* async fetch(req, env) {
|
|
19
|
+
* const post = await env.DB.get('post:1', 'json');
|
|
20
|
+
* return new Response(
|
|
21
|
+
* renderBlocksToHTML(post.blocks, { wrapper: 'content' }),
|
|
22
|
+
* { headers: { 'content-type': 'text/html; charset=utf-8' } },
|
|
23
|
+
* );
|
|
24
|
+
* },
|
|
25
|
+
* };
|
|
26
|
+
*/
|
|
27
|
+
export { renderBlockToHTML, renderBlocksToHTML, } from '../core/render-string.js';
|
|
28
|
+
export type { RenderHtmlOptions } from '../core/render-string.js';
|
|
29
|
+
export { blocksToMarkdown } from '../core/markdown-export.js';
|
|
30
|
+
export type { MarkdownOptions } from '../core/markdown-export.js';
|
|
31
|
+
export { blocksToPlainText } from '../core/plain-text.js';
|
|
32
|
+
export type { PlainTextOptions } from '../core/plain-text.js';
|
|
33
|
+
export { SNAPSHOT_VERSION, snapshotVersionOf, upgradeSnapshot, upgradeSnapshots, } from '../core/snapshot.js';
|
|
34
|
+
export type { Block, BlockAttrs, BlockAttrsByKind, BlockKind, BlockSnapshot, BlockquoteAttrs, BulletListAttrs, CodeBlockAttrs, FileAttrs, HeadingAttrs, HeadingLevel, HrAttrs, ImageAttrs, ImportedHtmlAttrs, InlineMarkName, LinkCardAttrs, OrderedListAttrs, ParagraphAttrs, Snapshot, TableAttrs, UnknownAttrs, YoutubeAttrs, } from '../core/blocks.js';
|
|
35
|
+
export { decodeEntities, escapeAttr, escapeHtml, parseHtmlFragment, serializeNodes, textOf, textWithBlockBreaks, } from '../core/html-mini.js';
|
|
36
|
+
export type { HtmlElementNode, HtmlNode, HtmlText } from '../core/html-mini.js';
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAI1B,YAAY,EACV,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EACL,cAAc,EACd,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,MAAM,EACN,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -4,6 +4,22 @@ export interface ToolbarConfig {
|
|
|
4
4
|
items: ToolbarItem[];
|
|
5
5
|
sticky?: boolean;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* HTML 출력의 스타일 전략.
|
|
9
|
+
*
|
|
10
|
+
* - `'inline'` — 테마 색을 블록 인라인 style 에 베이크. 스타일시트 없이도
|
|
11
|
+
* 에디터와 같은 시각으로 렌더된다 (기본값).
|
|
12
|
+
* - `'class'` — 테마 스타일을 베이크하지 않고 `aw-block-*` / `aw-align-*`
|
|
13
|
+
* 클래스만 남긴다. `style` 속성을 제거하는 서버 sanitizer 를 통과해야 할 때
|
|
14
|
+
* 쓴다. 출력은 `aeriz-wysiwyg.min.css` 가 로드된 페이지의
|
|
15
|
+
* `.aeriz-wysiwyg > .aw-content` 안에 넣는 것을 전제로 한다.
|
|
16
|
+
*/
|
|
17
|
+
export type HtmlStyleMode = 'inline' | 'class';
|
|
18
|
+
/** `getHTML()` 호출 단위 옵션. */
|
|
19
|
+
export interface SerializeHtmlOptions {
|
|
20
|
+
/** 스타일 전략. 미지정 시 인스턴스 기본값을 따른다. */
|
|
21
|
+
styles?: HtmlStyleMode;
|
|
22
|
+
}
|
|
7
23
|
export interface EditorOptions {
|
|
8
24
|
element: HTMLElement;
|
|
9
25
|
initialHTML?: string;
|
|
@@ -12,6 +28,11 @@ export interface EditorOptions {
|
|
|
12
28
|
theme?: 'light' | 'dark';
|
|
13
29
|
/** UI 언어. 'en' / 'ko' / 'ja' / 'zh'. 기본 'ko'. */
|
|
14
30
|
locale?: 'en' | 'ko' | 'ja' | 'zh';
|
|
31
|
+
/**
|
|
32
|
+
* `getHTML()` 과 `onChange` 가 내보내는 HTML 의 스타일 전략. 기본 `'inline'`.
|
|
33
|
+
* `getHTML({ styles })` 로 호출 단위 재정의 가능.
|
|
34
|
+
*/
|
|
35
|
+
htmlStyles?: HtmlStyleMode;
|
|
15
36
|
onChange?: (html: string) => void;
|
|
16
37
|
/**
|
|
17
38
|
* 직접 업로드 핸들러. 우선 적용된다. 미설정 + `imageUploadUrl` 만 있을 때는
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,GAAG,CAAC;AAEhD,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,MAAM,GACN,WAAW,GACX,YAAY,GACZ,UAAU,GACV,MAAM,GACN,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,OAAO,GACP,iBAAiB,GACjB,OAAO,GACP,QAAQ,GACR,WAAW,GACX,UAAU,GACV,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,WAAW,GACX,MAAM,GACN,OAAO,GACP,OAAO,GACP,IAAI,GACJ,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,iDAAiD;IACjD,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,aAiC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,GAAG,CAAC;AAEhD,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,MAAM,GACN,WAAW,GACX,YAAY,GACZ,UAAU,GACV,MAAM,GACN,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,OAAO,GACP,iBAAiB,GACjB,OAAO,GACP,QAAQ,GACR,WAAW,GACX,UAAU,GACV,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,WAAW,GACX,MAAM,GACN,OAAO,GACP,OAAO,GACP,IAAI,GACJ,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE/C,4BAA4B;AAC5B,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,GAAG,KAAK,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,iDAAiD;IACjD,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,aAiC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/ui/Toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAe,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/ui/Toolbar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAe,eAAe,EAAE,MAAM,UAAU,CAAC;AAI5E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CAChE;AA4CD,qBAAa,OAAO;IAClB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,OAAO,CAAC,OAAO,CAAiD;gBAEpD,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe;IA2B5D,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAOvD,UAAU,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAMzD,0DAA0D;IAC1D,UAAU,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAMzD;;;OAGG;IACH,mBAAmB,IAAI,IAAI;IAU3B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;CA4BrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialogs.d.ts","sourceRoot":"","sources":["../../src/ui/dialogs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dialogs.d.ts","sourceRoot":"","sources":["../../src/ui/dialogs.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,0BAA2B,SAAQ,YAAY;IAC9D,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA2B,SAAQ,YAAY;IAC9D,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAgGD,wBAAgB,cAAc,CAC5B,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,EACnE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAgE3B;AAED,wBAAgB,eAAe,CAC7B,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAAO,EAC5D,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GACvB,OAAO,CAAC,iBAAiB,CAAC,CAmK5B;AAoBD,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAsEpF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GACvB,OAAO,CAAC,sBAAsB,CAAC,CAwGjC;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GACvB,OAAO,CAAC,0BAA0B,CAAC,CAoGrC;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAAO,EAC5D,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GACvB,OAAO,CAAC,0BAA0B,CAAC,CA2KrC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA4CxF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/ui/icons.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/ui/icons.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqCxC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BlockAttrs, BlockKind } from '../core/blocks';
|
|
1
|
+
import type { BlockAttrs, BlockKind } from '../core/blocks.js';
|
|
2
2
|
export declare const COLOR_PALETTE: string[];
|
|
3
3
|
export declare function openColorPicker(anchor: HTMLElement, onPick: (color: string | null) => void, recents?: ReadonlyArray<string>): void;
|
|
4
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popovers.d.ts","sourceRoot":"","sources":["../../src/ui/popovers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"popovers.d.ts","sourceRoot":"","sources":["../../src/ui/popovers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAqB5D,eAAO,MAAM,aAAa,UAKzB,CAAC;AAEF,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,EACtC,OAAO,GAAE,aAAa,CAAC,MAAM,CAAM,GAClC,IAAI,CA6FN;AAID;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,GAAG,YAAY,GAAG,gBAAgB,CAAC;IAClD,KAAK,EAAE,UAAU,CAAC;CACnB;AA+HD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GACxC,IAAI,CA4CN;AAID,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,KAAK,IAAI,GAC/D,IAAI,CAgCN;AAID,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,EAC1C,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAyDN;AAID,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,EAC5C,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CA+BN;AAID,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,UAAU,GACV,SAAS,GACT,UAAU,GACV,WAAW,GACX,WAAW,CAAC;AAoBhB;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GACxC,IAAI,CA2BN;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,EACxC,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CA+BN;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAiB/E;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GACxC,IAAI,CA8FN"}
|