@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.
Files changed (131) hide show
  1. package/README.md +634 -96
  2. package/angular/README.md +112 -0
  3. package/angular/aeriz-editor.directive.ts +243 -0
  4. package/angular/aeriz-wysiwyg.module.ts +14 -0
  5. package/angular/index.ts +5 -0
  6. package/dist/adapters/jquery.cjs +1 -0
  7. package/dist/adapters/jquery.js +91 -0
  8. package/dist/adapters/react.cjs +1 -0
  9. package/dist/adapters/react.js +66 -0
  10. package/dist/adapters/shared.cjs +1 -0
  11. package/dist/adapters/shared.js +87 -0
  12. package/dist/adapters/svelte.cjs +1 -0
  13. package/dist/adapters/svelte.js +29 -0
  14. package/dist/adapters/vue.cjs +1 -0
  15. package/dist/adapters/vue.js +110 -0
  16. package/dist/adapters/vue2.cjs +1 -0
  17. package/dist/adapters/vue2.js +117 -0
  18. package/dist/adapters/wc.cjs +1 -0
  19. package/dist/adapters/wc.js +207 -0
  20. package/dist/aeriz-wysiwyg-adapter.js +169 -0
  21. package/dist/aeriz-wysiwyg-adapter.min.js +1 -0
  22. package/dist/aeriz-wysiwyg-jquery.js +275 -0
  23. package/dist/aeriz-wysiwyg-jquery.min.js +1 -0
  24. package/dist/aeriz-wysiwyg-wc.js +401 -0
  25. package/dist/aeriz-wysiwyg-wc.min.js +1 -0
  26. package/dist/aeriz-wysiwyg.cjs +8759 -0
  27. package/dist/aeriz-wysiwyg.css +587 -163
  28. package/dist/aeriz-wysiwyg.esm.js +4249 -1381
  29. package/dist/aeriz-wysiwyg.esm.min.js +4456 -1995
  30. package/dist/aeriz-wysiwyg.js +4249 -1381
  31. package/dist/aeriz-wysiwyg.min.cjs +56 -0
  32. package/dist/aeriz-wysiwyg.min.css +1 -1
  33. package/dist/aeriz-wysiwyg.min.js +54 -21
  34. package/dist/server.cjs +34 -0
  35. package/dist/server.js +798 -0
  36. package/dist-types/adapters/jquery.d.ts +34 -0
  37. package/dist-types/adapters/jquery.d.ts.map +1 -0
  38. package/dist-types/adapters/react.d.ts +28 -0
  39. package/dist-types/adapters/react.d.ts.map +1 -0
  40. package/dist-types/adapters/shared.d.ts +83 -0
  41. package/dist-types/adapters/shared.d.ts.map +1 -0
  42. package/dist-types/adapters/svelte.d.ts +38 -0
  43. package/dist-types/adapters/svelte.d.ts.map +1 -0
  44. package/dist-types/adapters/vue.d.ts +189 -0
  45. package/dist-types/adapters/vue.d.ts.map +1 -0
  46. package/dist-types/adapters/vue2.d.ts +175 -0
  47. package/dist-types/adapters/vue2.d.ts.map +1 -0
  48. package/dist-types/adapters/wc.d.ts +96 -0
  49. package/dist-types/adapters/wc.d.ts.map +1 -0
  50. package/dist-types/cjs/adapters/jquery.d.cts +34 -0
  51. package/dist-types/cjs/adapters/react.d.cts +28 -0
  52. package/dist-types/cjs/adapters/shared.d.cts +83 -0
  53. package/dist-types/cjs/adapters/svelte.d.cts +38 -0
  54. package/dist-types/cjs/adapters/vue.d.cts +189 -0
  55. package/dist-types/cjs/adapters/vue2.d.cts +175 -0
  56. package/dist-types/cjs/adapters/wc.d.cts +96 -0
  57. package/dist-types/cjs/core/AerizEditor.d.cts +530 -0
  58. package/dist-types/cjs/core/AerizViewer.d.cts +61 -0
  59. package/dist-types/cjs/core/block-meta.d.cts +98 -0
  60. package/dist-types/cjs/core/block-policy.d.cts +43 -0
  61. package/dist-types/cjs/core/blocks.d.cts +411 -0
  62. package/dist-types/cjs/core/fonts.d.cts +60 -0
  63. package/dist-types/cjs/core/highlight.d.cts +44 -0
  64. package/dist-types/cjs/core/history.d.cts +86 -0
  65. package/dist-types/cjs/core/html-mini.d.cts +65 -0
  66. package/dist-types/cjs/core/i18n.d.cts +221 -0
  67. package/dist-types/cjs/core/import-html.d.cts +40 -0
  68. package/dist-types/cjs/core/import-markdown.d.cts +33 -0
  69. package/dist-types/cjs/core/input-rules.d.cts +46 -0
  70. package/dist-types/cjs/core/markdown-export.d.cts +30 -0
  71. package/dist-types/cjs/core/plain-text.d.cts +17 -0
  72. package/dist-types/cjs/core/render-string.d.cts +68 -0
  73. package/dist-types/cjs/core/selection.d.cts +46 -0
  74. package/dist-types/cjs/core/snapshot.d.cts +51 -0
  75. package/dist-types/cjs/core/table-ops.d.cts +30 -0
  76. package/dist-types/cjs/index.d.cts +22 -0
  77. package/dist-types/cjs/server/index.d.cts +37 -0
  78. package/dist-types/cjs/types/index.d.cts +61 -0
  79. package/dist-types/cjs/ui/Toolbar.d.cts +21 -0
  80. package/dist-types/cjs/ui/dialogs.d.cts +74 -0
  81. package/dist-types/cjs/ui/icons.d.cts +2 -0
  82. package/dist-types/cjs/ui/popovers.d.cts +70 -0
  83. package/dist-types/core/AerizEditor.d.ts +210 -17
  84. package/dist-types/core/AerizEditor.d.ts.map +1 -1
  85. package/dist-types/core/AerizViewer.d.ts +16 -4
  86. package/dist-types/core/AerizViewer.d.ts.map +1 -1
  87. package/dist-types/core/block-meta.d.ts +98 -0
  88. package/dist-types/core/block-meta.d.ts.map +1 -0
  89. package/dist-types/core/block-policy.d.ts +43 -0
  90. package/dist-types/core/block-policy.d.ts.map +1 -0
  91. package/dist-types/core/blocks.d.ts +109 -11
  92. package/dist-types/core/blocks.d.ts.map +1 -1
  93. package/dist-types/core/fonts.d.ts +11 -0
  94. package/dist-types/core/fonts.d.ts.map +1 -1
  95. package/dist-types/core/history.d.ts +86 -0
  96. package/dist-types/core/history.d.ts.map +1 -0
  97. package/dist-types/core/html-mini.d.ts +65 -0
  98. package/dist-types/core/html-mini.d.ts.map +1 -0
  99. package/dist-types/core/i18n.d.ts +12 -0
  100. package/dist-types/core/i18n.d.ts.map +1 -1
  101. package/dist-types/core/import-html.d.ts +1 -0
  102. package/dist-types/core/import-html.d.ts.map +1 -1
  103. package/dist-types/core/import-markdown.d.ts +0 -4
  104. package/dist-types/core/import-markdown.d.ts.map +1 -1
  105. package/dist-types/core/input-rules.d.ts +46 -0
  106. package/dist-types/core/input-rules.d.ts.map +1 -0
  107. package/dist-types/core/markdown-export.d.ts +30 -0
  108. package/dist-types/core/markdown-export.d.ts.map +1 -0
  109. package/dist-types/core/plain-text.d.ts +17 -0
  110. package/dist-types/core/plain-text.d.ts.map +1 -0
  111. package/dist-types/core/render-string.d.ts +68 -0
  112. package/dist-types/core/render-string.d.ts.map +1 -0
  113. package/dist-types/core/selection.d.ts +46 -0
  114. package/dist-types/core/selection.d.ts.map +1 -0
  115. package/dist-types/core/snapshot.d.ts +51 -0
  116. package/dist-types/core/snapshot.d.ts.map +1 -0
  117. package/dist-types/core/table-ops.d.ts +30 -0
  118. package/dist-types/core/table-ops.d.ts.map +1 -0
  119. package/dist-types/index.d.ts +21 -10
  120. package/dist-types/index.d.ts.map +1 -1
  121. package/dist-types/server/index.d.ts +37 -0
  122. package/dist-types/server/index.d.ts.map +1 -0
  123. package/dist-types/types/index.d.ts +21 -0
  124. package/dist-types/types/index.d.ts.map +1 -1
  125. package/dist-types/ui/Toolbar.d.ts +1 -1
  126. package/dist-types/ui/Toolbar.d.ts.map +1 -1
  127. package/dist-types/ui/dialogs.d.ts.map +1 -1
  128. package/dist-types/ui/icons.d.ts.map +1 -1
  129. package/dist-types/ui/popovers.d.ts +1 -1
  130. package/dist-types/ui/popovers.d.ts.map +1 -1
  131. package/package.json +213 -58
@@ -1,4 +1,4 @@
1
- export type BlockKind = 'paragraph' | 'heading' | 'bulletList' | 'orderedList' | 'blockquote' | 'codeBlock' | 'image' | 'table' | 'hr' | 'linkCard' | 'youtube' | 'file' | 'importedHtml' | 'unknown';
1
+ export type BlockKind = 'paragraph' | 'heading' | 'bulletList' | 'orderedList' | 'taskList' | 'blockquote' | 'codeBlock' | 'image' | 'table' | 'hr' | 'linkCard' | 'youtube' | 'file' | 'importedHtml' | 'unknown';
2
2
  export type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
3
3
  /** 단락 — 메타데이터 없음. */
4
4
  export interface ParagraphAttrs {
@@ -13,6 +13,12 @@ export interface BulletListAttrs {
13
13
  /** 번호 목록(ordered) — kind 자체가 ordered=true 를 의미. 추가 메타 없음. */
14
14
  export interface OrderedListAttrs {
15
15
  }
16
+ /**
17
+ * 체크리스트 — 항목별 완료 여부는 `<li data-checked>` 로 html 안에 담긴다.
18
+ * 블록 단위 메타는 없다.
19
+ */
20
+ export interface TaskListAttrs {
21
+ }
16
22
  /** 인용구 — 메타데이터 없음. */
17
23
  export interface BlockquoteAttrs {
18
24
  }
@@ -25,6 +31,18 @@ export interface CodeBlockAttrs {
25
31
  export interface ImageAttrs {
26
32
  src?: string;
27
33
  alt?: string;
34
+ /**
35
+ * 그림 아래 설명(`<figcaption>`) 의 **텍스트**.
36
+ *
37
+ * `alt` 와는 다른 값이다 — `alt` 는 그림을 못 보는 사람에게 그림을 대신
38
+ * 설명하는 글이고, 캡션은 보는 사람에게도 함께 읽히는 본문의 일부다
39
+ * (출처 · 촬영 정보 · 부연). 둘을 한 필드로 합치면 어느 쪽도 제 역할을
40
+ * 못 한다.
41
+ *
42
+ * 서식이 들어간 캡션(링크 등) 은 `snapshot.html` 에 그대로 실린다. 이
43
+ * 필드는 `html` 이 비어 있을 때 골격을 조립하기 위한 평문이다.
44
+ */
45
+ caption?: string;
28
46
  /** wrapper(figure) 의 인라인 style — width / margin 등 outer 스타일 보존. */
29
47
  wrapperStyle?: string;
30
48
  }
@@ -75,6 +93,14 @@ export interface ImportedHtmlAttrs {
75
93
  }
76
94
  /** 어떤 BlockType 에도 매칭되지 않은 element. */
77
95
  export interface UnknownAttrs {
96
+ /**
97
+ * 원래 태그명 (소문자).
98
+ *
99
+ * `unknown` 은 미래 버전의 블록이 강등되어 오는 자리다. 태그를 버리면 그
100
+ * 블록을 만든 버전에서 다시 열었을 때도 `<div>` 로 남아 영영 복구되지
101
+ * 않는다. 안전한 컨테이너 태그만 되살린다 ({@link SAFE_UNKNOWN_TAGS}).
102
+ */
103
+ tag?: string;
78
104
  }
79
105
  /** BlockKind → 해당 블록의 attrs 타입 매핑. discriminated union 의 기반. */
80
106
  export interface BlockAttrsByKind {
@@ -82,6 +108,7 @@ export interface BlockAttrsByKind {
82
108
  heading: HeadingAttrs;
83
109
  bulletList: BulletListAttrs;
84
110
  orderedList: OrderedListAttrs;
111
+ taskList: TaskListAttrs;
85
112
  blockquote: BlockquoteAttrs;
86
113
  codeBlock: CodeBlockAttrs;
87
114
  image: ImageAttrs;
@@ -99,7 +126,7 @@ export interface BlockAttrsByKind {
99
126
  * 외부에서 직렬화된 BlockSnapshot 의 attrs 는 BlockAttrsByKind[kind] 로 더
100
127
  * 구체적으로 타입이 잡힌다 — 아래 BlockSnapshot 의 discriminated union 참고.
101
128
  */
102
- export interface BlockAttrs extends Partial<HeadingAttrs>, Partial<BulletListAttrs>, Partial<OrderedListAttrs>, Partial<CodeBlockAttrs>, Partial<ImageAttrs>, Partial<TableAttrs>, Partial<LinkCardAttrs>, Partial<YoutubeAttrs>, Partial<FileAttrs>, Partial<ImportedHtmlAttrs> {
129
+ export interface BlockAttrs extends Partial<HeadingAttrs>, Partial<BulletListAttrs>, Partial<OrderedListAttrs>, Partial<CodeBlockAttrs>, Partial<ImageAttrs>, Partial<TableAttrs>, Partial<LinkCardAttrs>, Partial<YoutubeAttrs>, Partial<FileAttrs>, Partial<ImportedHtmlAttrs>, Partial<UnknownAttrs> {
103
130
  }
104
131
  /**
105
132
  * BlockType.matches() 의 반환 타입. 내부 사용은 느슨한 BlockAttrs 로 두고,
@@ -161,7 +188,7 @@ export interface ClassifyResult {
161
188
  * 어디에도 일치하지 않으면 unknown 으로 본다.
162
189
  */
163
190
  export declare function classifyBlockElement(el: HTMLElement): ClassifyResult;
164
- export declare const BLOCK_ID_ATTR = "data-block-id";
191
+ export { BLOCK_ID_ATTR } from './block-meta.js';
165
192
  export declare class BlockIdRegistry {
166
193
  private counter;
167
194
  private readonly seen;
@@ -197,29 +224,54 @@ export declare function assignMissingIds(root: HTMLElement, ids: BlockIdRegistry
197
224
  * "homeless" 텍스트가 생길 수 있는데, 이를 정규화하여 모든 본문 자식이
198
225
  * 항상 유효한 블록 element 가 되도록 보장한다.
199
226
  */
200
- export declare function normalizeContent(root: HTMLElement): void;
227
+ export interface NormalizeOptions {
228
+ /**
229
+ * 본문이 항상 캐럿을 받을 수 있는 상태로 끝나도록 빈 본문 블록을 보장할지.
230
+ * 기본 `true` (편집 경로). HTML → 블록 변환처럼 **편집하지 않는** 용도라면
231
+ * `false` 로 꺼서 없던 빈 단락이 결과에 끼어들지 않게 한다.
232
+ */
233
+ writableTail?: boolean;
234
+ }
235
+ export declare function normalizeContent(root: HTMLElement, options?: NormalizeOptions): void;
201
236
  /**
202
- * 사람이 읽을 수 있는 한국어 라벨. 포커스된 블록 위 태그 표시 등에 사용.
237
+ * 사람이 읽을 수 있는 블록 라벨. 포커스된 블록 위 태그 표시 등에 사용.
238
+ * 문자열은 현재 로케일(`setLocale`) 사전에서 가져온다.
203
239
  */
204
240
  export declare function getBlockLabel(match: BlockMatch): string;
205
241
  export type BlockIdResolver = (el: HTMLElement) => string;
206
242
  /**
207
243
  * 직렬화된 Block 상태. Live element 참조 없이 JSON 으로 저장/전송 가능하다.
208
244
  *
209
- * - id : 원본 Block 의 안정 식별자
210
- * - kind : 블록 유형 (BlockKind 의 string literal)
211
- * - attrs : kind 에 대응하는 유형별 메타데이터 (BlockAttrsByKind[kind])
212
- * - html : 블록 element 내부 HTML (인라인 컨텐츠 전체 직렬화)
245
+ * - version : 스키마 버전. 직렬화 시 항상 {@link SNAPSHOT_VERSION} 이 기록된다.
246
+ * optional 인 이유는 버전 필드 도입(1.0.3) 이전에 저장된 데이터를
247
+ * 그대로 읽을 수 있어야 하기 때문 — 없으면 1 로 간주한다.
248
+ * 변경 정책은 `src/core/snapshot.ts` 의 SNAPSHOT_VERSION 문서 참고.
249
+ * - id : 원본 Block 의 안정 식별자
250
+ * - kind : 블록 유형 (BlockKind 의 string literal)
251
+ * - attrs : kind 에 대응하는 유형별 메타데이터 (BlockAttrsByKind[kind])
252
+ * - html : 블록 element 내부 HTML (인라인 컨텐츠 전체 직렬화)
253
+ * - style : 블록 element **자신**의 인라인 style. `html` 은 내부만 담으므로
254
+ * 정렬(text-align) 처럼 블록에 직접 걸리는 서식은 이 필드가 없으면
255
+ * 스냅샷 왕복에서 사라진다.
213
256
  *
214
257
  * 서버 라운드트립을 위한 핵심 직렬화 형태. discriminated union 이라
215
258
  * `if (snap.kind === 'heading')` 후 `snap.attrs.level` 처럼 바로 narrow 가능.
216
259
  */
217
260
  export type BlockSnapshot = {
218
261
  [K in BlockKind]: {
262
+ version?: number;
219
263
  id: string;
220
264
  kind: K;
221
265
  attrs: BlockAttrsByKind[K];
222
266
  html: string;
267
+ style?: string;
268
+ /**
269
+ * 블록 element 자신의 나머지 속성 (`id` · `class` · `dir` · `lang` ·
270
+ * `title`). `html` 은 안쪽만, `style` 은 따로 담기 때문에 이 필드가 없으면
271
+ * 저장 한 번에 사라진다 — 앵커 링크가 끊기고 RTL 문단의 방향이 뒤집힌다.
272
+ * 허용목록은 `PRESERVED_BLOCK_ATTRS`.
273
+ */
274
+ attributes?: Record<string, string>;
223
275
  };
224
276
  }[BlockKind];
225
277
  /** 특정 BlockKind 에 한정된 BlockSnapshot 의 별칭. 외부에서 narrow 한
@@ -237,8 +289,13 @@ export declare function serializeBlocks(blocks: Block[]): BlockSnapshot[];
237
289
  * 결과 element 는 data-block-id 가 snapshot.id 로 세팅되어 있다.
238
290
  */
239
291
  export declare function renderBlock(snapshot: BlockSnapshot): HTMLElement;
240
- /** BlockSnapshot 배열을 root 의 자식으로 렌더 (root 의 기존 자식은 모두 제거). */
241
- export declare function renderBlocks(root: HTMLElement, snapshots: BlockSnapshot[]): void;
292
+ /**
293
+ * BlockSnapshot 배열을 root 의 자식으로 렌더 (root 의 기존 자식은 모두 제거).
294
+ *
295
+ * 저장소에서 바로 읽은 데이터가 들어올 수 있으므로 {@link upgradeSnapshots} 로
296
+ * 스키마를 정규화한 뒤 렌더한다.
297
+ */
298
+ export declare function renderBlocks(root: HTMLElement, snapshots: readonly BlockSnapshot[]): void;
242
299
  /**
243
300
  * 본문(`root`) 의 직계 자식 element 들을 순서대로 Block 리스트로 반환한다.
244
301
  */
@@ -297,6 +354,47 @@ export declare function readBlockStyleTheme(host: Element): BlockStyleTheme;
297
354
  * - theme 미지정 시 cyan 계열 기본값으로 폴백.
298
355
  */
299
356
  export declare function applyBlockInlineStyles(root: HTMLElement, theme?: BlockStyleTheme): void;
357
+ /** 정렬 값 → 클래스명. `styles: 'class'` 출력에서 text-align 을 대체한다. */
358
+ export declare const ALIGN_CLASS_BY_VALUE: Readonly<Record<string, string>>;
359
+ /**
360
+ * 클래스 기반 출력용 정규화. (`getHTML({ styles: 'class' })` 에서 사용)
361
+ *
362
+ * `style` 속성을 지우는 서버 sanitizer 아래에서도 서식이 살아남게 하는 것이
363
+ * 목적이다. 두 가지를 한다.
364
+ *
365
+ * 1. 본문 직계 블록에 `aw-block` + `aw-block-{kind}` 클래스를 붙인다 — 배포된
366
+ * `aeriz-wysiwyg.min.css` 없이 자체 스타일을 입히려는 소비자의 훅.
367
+ * 2. `text-align` 인라인 선언을 `aw-align-*` 클래스로 옮긴다. 정렬은 값의
368
+ * 가짓수가 네 개로 한정돼 클래스로 완전히 표현되는 유일한 서식이다.
369
+ *
370
+ * 색 · 글자 크기 · 글꼴 · 표 셀 배경은 임의의 값을 갖기 때문에 클래스로 옮길 수
371
+ * 없고 `style` 속성에 남는다. sanitizer 는 `style` 을 통째로 지우는 대신
372
+ * 프로퍼티 단위 허용목록을 쓰면 된다 — 실제로 나오는 프로퍼티 목록은
373
+ * SPEC.md 의 "출력 HTML 허용목록" 절에 확정 명세로 정리돼 있다.
374
+ */
375
+ export declare function applyBlockClassNames(root: HTMLElement): void;
376
+ /**
377
+ * `aw-align-*` 클래스를 인라인 `text-align` 으로 되돌린다.
378
+ *
379
+ * 정렬의 **내부 표현은 언제나 인라인 style** 이고 클래스는 출력 인코딩일
380
+ * 뿐이라는 불변식을 유지한다. 이 되돌리기가 없으면 class 모드로 저장한 문서를
381
+ * 다시 불러왔을 때
382
+ * - 툴바가 현재 정렬을 알아보지 못하고,
383
+ * - 기본 inline 전략으로 내보낼 때 정렬이 통째로 사라진다
384
+ * (applyBlockInlineStyles 는 클래스를 모른다).
385
+ *
386
+ * 이미 인라인 값이 있으면 그쪽을 우선한다 — 더 구체적인 지정이다.
387
+ */
388
+ export declare function restoreAlignFromClasses(root: HTMLElement): void;
389
+ /**
390
+ * `getHTML()` 출력에서 편집 보조 element / 속성을 제거한다.
391
+ *
392
+ * 이미지·유튜브 블록의 리사이즈 핸들과 정렬 컨트롤은 에디터 안에서만 의미가
393
+ * 있는 UI 이고, `contenteditable` 도 발행된 문서에서는 불필요하다. 둘 다
394
+ * `normalizeContent()` 가 다시 만들어 주므로 `setHTML(getHTML())` 라운드트립은
395
+ * 그대로 성립한다.
396
+ */
397
+ export declare function stripEditorOnlyNodes(root: HTMLElement): void;
300
398
  /**
301
399
  * `getHTML()` 출력에서 에디터 전용 메타데이터 속성을 제거한다.
302
400
  * data-block-id 만 보존(외부 반입 시 동일 id 유지에 유용).
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/core/blocks.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GACjB,WAAW,GACX,SAAS,GACT,YAAY,GACZ,aAAa,GACb,YAAY,GACZ,WAAW,GACX,OAAO,GACP,OAAO,GACP,IAAI,GACJ,UAAU,GACV,SAAS,GACT,MAAM,GACN,cAAc,GACd,SAAS,CAAC;AAEd,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AASjD,qBAAqB;AACrB,MAAM,WAAW,cAAc;CAAG;AAElC,6BAA6B;AAC7B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,iEAAiE;AACjE,MAAM,WAAW,eAAe;CAAG;AAEnC,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;CAAG;AAEpC,sBAAsB;AACtB,MAAM,WAAW,eAAe;CAAG;AAEnC,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,6BAA6B;AAC7B,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,sBAAsB;AACtB,MAAM,WAAW,OAAO;CAAG;AAE3B,gBAAgB;AAChB,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,kBAAkB;AAClB,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,gBAAgB;AAChB,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qCAAqC;AACrC,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,uCAAuC;AACvC,MAAM,WAAW,YAAY;CAAG;AAEhC,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,eAAe,CAAC;IAC5B,SAAS,EAAE,cAAc,CAAC;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,iBAAiB,CAAC;IAChC,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UACf,SAAQ,OAAO,CAAC,YAAY,CAAC,EAC3B,OAAO,CAAC,eAAe,CAAC,EACxB,OAAO,CAAC,gBAAgB,CAAC,EACzB,OAAO,CAAC,cAAc,CAAC,EACvB,OAAO,CAAC,UAAU,CAAC,EACnB,OAAO,CAAC,UAAU,CAAC,EACnB,OAAO,CAAC,aAAa,CAAC,EACtB,OAAO,CAAC,YAAY,CAAC,EACrB,OAAO,CAAC,SAAS,CAAC,EAClB,OAAO,CAAC,iBAAiB,CAAC;CAAG;AAEjC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,qBAAqB;AACrB,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAExE,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,cAAc,CAK1D,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACrD;oEACgE;IAChE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;0DACsD;IACtD,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,yCAAyC;IACzC,OAAO,CAAC,EAAE,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC;IAC5C,gCAAgC;IAChC,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACxC,sDAAsD;IACtD,OAAO,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC;CACnC;AA2iBD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,SAAS,CAchD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAIlE,CAAC;AAEL,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,WAAW,GAAG,cAAc,CAMpE;AAED,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAE1C,yDAAyD;IACzD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIzB,oCAAoC;IACpC,QAAQ,IAAI,MAAM;IAWlB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM;IAW/B,GAAG,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;CAGpC;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,GAAG,IAAI,CAe9E;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CA8CxD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CA+BvD;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,SAAS,GAAG;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,CAAC,CAAC;QACR,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAC;KACd;CACF,CAAC,SAAS,CAAC,CAAC;AAEb;6CAC6C;AAC7C,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,SAAS,IAAI,OAAO,CAAC,aAAa,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAEhF,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAU1D;AAED,uCAAuC;AACvC,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,WAAW,CAQhE;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAKhF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,GAAG,KAAK,EAAE,CAa7E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,eAAe,GACrB,KAAK,GAAG,IAAI,CAgBd;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,CAuBzD;AAeD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,IAAI,EAAE,GACd,IAAI,CA2BN;AAwGD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;8CAC0C;IAC1C,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACzB;AAqED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAkBlE;AA6DD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,WAAW,EACjB,KAAK,GAAE,eAAoB,GAC1B,IAAI,CA6BN;AA0DD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAa5D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAavD;AAiDD,wBAAgB,cAAc,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAGvD"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/core/blocks.ts"],"names":[],"mappings":"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"}
@@ -34,9 +34,20 @@ export declare const FONT_SIZES: ReadonlyArray<number>;
34
34
  * 매칭 실패 시 null. 활성 toolbar 크기 표시에 사용.
35
35
  */
36
36
  export declare function pxFromCss(css: string | null | undefined): number | null;
37
+ /**
38
+ * 현재 실제로 쓸 수 있는 글꼴만 반환한다. 드롭다운은 이 목록으로 그린다.
39
+ *
40
+ * `FONT_FAMILIES` 전체는 그대로 남겨 둔다 — 이미 그 글꼴로 저장된 본문의
41
+ * 라벨을 표시하려면(`findFontIdFromCss`) 실패한 항목도 알고 있어야 한다.
42
+ */
43
+ export declare function getAvailableFontFamilies(): ReadonlyArray<FontFamily>;
44
+ /** 사용 가능 목록이 바뀌면 호출된다. 반환값을 부르면 구독이 해제된다. */
45
+ export declare function subscribeFontAvailability(listener: () => void): () => void;
37
46
  /**
38
47
  * 모든 글꼴의 CSS 를 1 회만 lazy 로드한다. 글꼴 드롭다운이 열릴 때 호출.
39
48
  * 두 번째 이후 호출은 즉시 반환.
49
+ *
50
+ * 실패는 조용히 넘어가지 않는다 — 받지 못한 글꼴은 목록에서 빠진다.
40
51
  */
41
52
  export declare function ensureFontFamiliesLoaded(): void;
42
53
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../src/core/fonts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iDAAiD;AACjD,eAAO,MAAM,cAAc,WAAW,CAAC;AAEvC,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,UAAU,CAwDnD,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAI/D,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,MAAM,CAE5C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAQvE;AAKD;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAmB/C;AAcD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAU/E"}
1
+ {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../../src/core/fonts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iDAAiD;AACjD,eAAO,MAAM,cAAc,WAAW,CAAC;AAEvC,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,UAAU,CAwDnD,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAI/D,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC,MAAM,CAE5C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAQvE;AAoBD;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,aAAa,CAAC,UAAU,CAAC,CAGpE;AAED,6CAA6C;AAC7C,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAK1E;AAyDD;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAiB/C;AAyBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAU/E"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * 본문 편집 이력(undo / redo).
3
+ *
4
+ * ## 왜 브라우저 기본 undo 를 쓰지 않는가
5
+ *
6
+ * `document.execCommand('undo')` 는 브라우저가 **자기가 만든 변경**만 되돌린다.
7
+ * 이 에디터는 블록 이동 · 표 행/열 편집 · 이미지 리사이즈 · 블록 유형 변경을
8
+ * 전부 직접 DOM 조작으로 처리하는데, 그 조작들은 브라우저 undo 스택에 아예
9
+ * 올라가지 않는다. 결과적으로 Ctrl+Z 를 누르면 방금 옮긴 블록은 그대로 있고
10
+ * 그 전에 타이핑한 글자가 지워지는, 예측할 수 없는 동작이 된다.
11
+ *
12
+ * ## 무엇을 저장하는가
13
+ *
14
+ * 본문 HTML 전체와 캐럿 위치를 한 항목으로 저장하는 스냅샷 방식이다.
15
+ * 조작 단위 이력(operation log) 이 메모리는 덜 쓰지만, 되돌리기가 **정확히**
16
+ * 원래 화면으로 돌아간다는 보장을 얻기가 훨씬 어렵다. 스냅샷은 그 보장이
17
+ * 공짜다 — 문자열을 도로 넣기만 하면 된다.
18
+ *
19
+ * 캐럿은 문자 오프셋으로 저장한다. HTML 을 통째로 갈아끼우면 노드 참조는
20
+ * 전부 무효가 되지만, "본문 시작에서 몇 번째 글자" 는 그대로 살아남는다.
21
+ *
22
+ * ## 언제 한 항목으로 묶는가
23
+ *
24
+ * 글자 하나마다 항목을 쌓으면 되돌리기가 사실상 쓸모없어진다. 연속된 타이핑은
25
+ * {@link COALESCE_MS} 안에 이어지는 한 하나로 합친다. 반대로 블록 이동 ·
26
+ * 유형 변경처럼 **구조가 바뀌는 조작**은 합치지 않는다 — 그건 사용자가 한
27
+ * 번에 하나씩 되돌리길 기대하는 단위다.
28
+ */
29
+ /** 이력 한 항목 — 그 순간의 본문 전체와 캐럿. */
30
+ export interface HistoryEntry {
31
+ html: string;
32
+ /** 본문 시작 기준 캐럿 시작/끝 문자 오프셋. 셀렉션이 없으면 null. */
33
+ selection: {
34
+ start: number;
35
+ end: number;
36
+ } | null;
37
+ }
38
+ /**
39
+ * 이 시간 안에 이어지는 타이핑은 한 항목으로 합친다.
40
+ * 사람이 문장 하나를 치는 동안의 간격보다 짧게, 생각하고 다시 치기 시작하는
41
+ * 간격보다는 길게 잡은 값이다.
42
+ */
43
+ export declare const COALESCE_MS = 600;
44
+ /** 스택에 쌓아 두는 최대 항목 수. 넘치면 가장 오래된 것부터 버린다. */
45
+ export declare const HISTORY_LIMIT = 200;
46
+ /**
47
+ * 이 길이를 넘게 한 번에 바뀌면 타이핑으로 보지 않는다.
48
+ *
49
+ * 붙여넣기는 `input` 이벤트로 들어와 타이핑과 구분되지 않는다. 그대로 두면
50
+ * "글 좀 쓰다가 붙여넣기" 가 한 항목으로 묶여, 붙여넣기를 되돌리려다 앞서
51
+ * 쓴 글까지 함께 사라진다. 사람이 600ms 안에 칠 수 있는 양보다 넉넉히 크게
52
+ * 잡아, 실제 타이핑이 여기 걸리지 않도록 한다.
53
+ */
54
+ export declare const BULK_CHANGE_CHARS = 64;
55
+ /** 변경의 성격 — 합쳐도 되는 타이핑인지, 한 단위로 남아야 하는 조작인지. */
56
+ export type ChangeKind = 'typing' | 'structural';
57
+ export declare class History {
58
+ private readonly past;
59
+ private readonly future;
60
+ /** 지금 화면에 보이는 상태. past 의 마지막이 아니라 이 값이 현재다. */
61
+ private present;
62
+ /** 마지막으로 항목을 쌓은 시각과 성격 — 합침 판단에 쓴다. */
63
+ private lastPushAt;
64
+ private lastKind;
65
+ constructor(initial: HistoryEntry);
66
+ get canUndo(): boolean;
67
+ get canRedo(): boolean;
68
+ /**
69
+ * 새 상태를 기록한다.
70
+ *
71
+ * @param now 현재 시각(ms). 테스트가 시간을 직접 넣을 수 있도록 인자로 받는다.
72
+ */
73
+ record(entry: HistoryEntry, kind: ChangeKind, now: number): void;
74
+ /** 되돌린다. 되돌릴 것이 없으면 null. */
75
+ undo(): HistoryEntry | null;
76
+ /** 다시 실행한다. 없으면 null. */
77
+ redo(): HistoryEntry | null;
78
+ /** 현재 상태. 외부에서 비교용으로 읽는다. */
79
+ current(): HistoryEntry;
80
+ /**
81
+ * 이력을 비우고 주어진 상태에서 다시 시작한다.
82
+ * `setHTML()` 처럼 문서를 통째로 갈아끼우는 프로그램적 변경에 쓴다.
83
+ */
84
+ reset(entry: HistoryEntry): void;
85
+ }
86
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/core/history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,iCAAiC;AACjC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAClD;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,6CAA6C;AAC7C,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;AAEjD,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,+CAA+C;IAC/C,OAAO,CAAC,OAAO,CAAe;IAC9B,uCAAuC;IACvC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAA4B;gBAEhC,OAAO,EAAE,YAAY;IAIjC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IA2BhE,6BAA6B;IAC7B,IAAI,IAAI,YAAY,GAAG,IAAI;IAW3B,yBAAyB;IACzB,IAAI,IAAI,YAAY,GAAG,IAAI;IAS3B,6BAA6B;IAC7B,OAAO,IAAI,YAAY;IAIvB;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;CAOjC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * DOM 없이 동작하는 최소 HTML 파서.
3
+ *
4
+ * `blocksToMarkdown` / `blocksToPlainText` 가 `snapshot.html` 의 인라인
5
+ * 컨텐츠를 해석하기 위해 쓴다. `document` 를 쓸 수 없는 런타임(workerd, Node,
6
+ * Deno) 에서 돌아야 하므로 브라우저 파서를 쓸 수 없다.
7
+ *
8
+ * 범위를 의도적으로 좁게 잡았다 — 에디터가 만든 인라인 마크업과, HTML 가져오기
9
+ * 로 들어온 정도의 일반적인 마크업을 다루는 것이 목표이며, 브라우저 HTML5
10
+ * 파싱 알고리즘의 완전한 재현은 목표가 아니다. 아래 두 가지만 보장한다.
11
+ *
12
+ * 1. 어떤 입력에도 예외를 던지지 않는다 (깨진 마크업은 최선 해석 후 통과).
13
+ * 2. `<script>` / `<style>` 의 내용은 결과 트리에 남기지 않는다.
14
+ */
15
+ export interface HtmlText {
16
+ type: 'text';
17
+ value: string;
18
+ }
19
+ export interface HtmlElementNode {
20
+ type: 'element';
21
+ /** 소문자 태그명. */
22
+ tag: string;
23
+ /** 소문자 속성명 → 값. 엔티티가 해제된 상태. */
24
+ attrs: Readonly<Record<string, string>>;
25
+ children: HtmlNode[];
26
+ }
27
+ export type HtmlNode = HtmlText | HtmlElementNode;
28
+ /** HTML 엔티티를 문자로 되돌린다. 해석할 수 없는 참조는 원문 유지. */
29
+ export declare function decodeEntities(input: string): string;
30
+ /** 텍스트를 HTML 본문에 넣을 수 있게 이스케이프한다. */
31
+ export declare function escapeHtml(input: string): string;
32
+ /** 텍스트를 큰따옴표 속성값으로 넣을 수 있게 이스케이프한다. */
33
+ export declare function escapeAttr(input: string): string;
34
+ /**
35
+ * HTML 조각을 노드 트리로 파싱한다.
36
+ *
37
+ * 텍스트 노드의 값은 엔티티가 해제된 상태로 들어온다.
38
+ */
39
+ export declare function parseHtmlFragment(html: string): HtmlNode[];
40
+ /** 노드 트리를 HTML 문자열로 되돌린다. 파싱 → 직렬화는 정규화 역할을 한다. */
41
+ export declare function serializeNodes(nodes: readonly HtmlNode[]): string;
42
+ /**
43
+ * 노드 트리의 텍스트만 이어붙인다. `<br>` 은 개행으로 바꾼다.
44
+ *
45
+ * 블록 경계는 무시한다 — 코드 블록처럼 원문 그대로가 필요한 곳에서 쓴다.
46
+ * 사람이 읽는 텍스트를 뽑을 때는 {@link textWithBlockBreaks} 를 쓸 것.
47
+ */
48
+ export declare function textOf(nodes: readonly HtmlNode[]): string;
49
+ /**
50
+ * 텍스트를 뽑되 블록 경계에 개행을 넣는다.
51
+ *
52
+ * `textOf` 만으로는 `<p>첫 문장</p><p>둘째 문장</p>` 이
53
+ * `"첫 문장둘째 문장"` 이 되어 버린다. 전문 검색 색인에 그대로 들어가면 두
54
+ * 단어가 한 토큰으로 붙어 어느 쪽으로도 검색되지 않고, 미리보기 스니펫도
55
+ * 문장이 뭉개진 채 나온다.
56
+ */
57
+ export declare function textWithBlockBreaks(nodes: readonly HtmlNode[]): string;
58
+ /** 트리에서 주어진 태그의 직계 자식들만 모은다. */
59
+ export declare function childElements(nodes: readonly HtmlNode[], tag: string): HtmlElementNode[];
60
+ /**
61
+ * 트리를 깊이 우선으로 훑어 주어진 태그의 첫 노드를 찾는다.
62
+ * 없으면 `null`.
63
+ */
64
+ export declare function findElement(nodes: readonly HtmlNode[], tag: string): HtmlElementNode | null;
65
+ //# sourceMappingURL=html-mini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-mini.d.ts","sourceRoot":"","sources":["../../src/core/html-mini.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,gCAAgC;IAChC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxC,QAAQ,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,eAAe,CAAC;AAwDlD,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBpD;AAED,qCAAqC;AACrC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKhD;AAED,uCAAuC;AACvC,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAgBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAmG1D;AAED,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAiBjE;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAczD;AAUD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAiBtE;AAED,gCAAgC;AAChC,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,GAAG,EAAE,MAAM,GACV,eAAe,EAAE,CAInB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,GAAG,EAAE,MAAM,GACV,eAAe,GAAG,IAAI,CAQxB"}
@@ -10,6 +10,8 @@
10
10
  export type Locale = 'en' | 'ko' | 'ja' | 'zh';
11
11
  export interface Strings {
12
12
  toolbar: {
13
+ /** 툴바 컨테이너의 aria-label. */
14
+ ariaLabel: string;
13
15
  undo: string;
14
16
  redo: string;
15
17
  blockType: string;
@@ -44,6 +46,7 @@ export interface Strings {
44
46
  heading: string;
45
47
  bulletList: string;
46
48
  orderedList: string;
49
+ taskList: string;
47
50
  blockquote: string;
48
51
  codeBlock: string;
49
52
  image: string;
@@ -57,6 +60,7 @@ export interface Strings {
57
60
  };
58
61
  blockMenu: {
59
62
  body: string;
63
+ taskList: string;
60
64
  h1: string;
61
65
  h2: string;
62
66
  h3: string;
@@ -135,6 +139,10 @@ export interface Strings {
135
139
  urlPlaceholder: string;
136
140
  uploadDropzone: string;
137
141
  noUploadApi: string;
142
+ /** 캡션 버튼 tooltip. */
143
+ captionAdd: string;
144
+ /** 빈 캡션에 흐리게 뜨는 안내. */
145
+ captionPlaceholder: string;
138
146
  };
139
147
  youtube: {
140
148
  title: string;
@@ -186,6 +194,10 @@ export interface Strings {
186
194
  uploadFailed: string;
187
195
  errEmpty: string;
188
196
  };
197
+ content: {
198
+ /** 캐럿이 놓인 빈 본문 블록에 흐릿하게 뜨는 안내. */
199
+ emptyHint: string;
200
+ };
189
201
  status: {
190
202
  /** "{label} ({id8})" 의 prefix 라벨용 */
191
203
  noActive: string;
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/core/i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/core/i18n.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  *
12
12
  * 다른 origin / iframe contentDocument 접근 제한이 발생하면 reject.
13
13
  */
14
+ export declare function isBlockLevelTag(tagName: string): boolean;
14
15
  export interface ImportHtmlOptions {
15
16
  /** iframe load 후 추가 idle 대기(ms). Tailwind CDN 등 런타임 스타일 주입을
16
17
  * 기다리기 위해 기본 1000ms. */
@@ -1 +1 @@
1
- {"version":3,"file":"import-html.d.ts","sourceRoot":"","sources":["../../src/core/import-html.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiIH,MAAM,WAAW,iBAAiB;IAChC;6BACyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,WAAW,EAAE,CAAC,CAgGxB"}
1
+ {"version":3,"file":"import-html.d.ts","sourceRoot":"","sources":["../../src/core/import-html.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiBH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAiJD,MAAM,WAAW,iBAAiB;IAChC;6BACyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,WAAW,EAAE,CAAC,CA0GxB"}
@@ -25,10 +25,6 @@
25
25
  * - 자동 링크: `<https://…>`
26
26
  * - 줄바꿈: 줄 끝 두 칸 공백 → `<br>`
27
27
  */
28
- /**
29
- * Markdown 문자열을 본문에 삽입할 수 있는 HTMLElement 배열로 변환한다.
30
- * 결과 element 들은 에디터의 네이티브 블록 유형으로 인식 가능한 표준 태그.
31
- */
32
28
  export declare function markdownToBlocks(md: string): HTMLElement[];
33
29
  /**
34
30
  * Markdown 문자열을 HTML 문자열로 변환. 외부 직접 사용 가능 (테스트 등).
@@ -1 +1 @@
1
- {"version":3,"file":"import-markdown.d.ts","sourceRoot":"","sources":["../../src/core/import-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,EAAE,CAS1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CA8GjD"}
1
+ {"version":3,"file":"import-markdown.d.ts","sourceRoot":"","sources":["../../src/core/import-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAaH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,EAAE,CAS1D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAuHjD"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * 키보드와 타이핑을 블록 유형으로 옮기는 표.
3
+ *
4
+ * 블록 유형을 고르는 길은 둘이다 — 메뉴에서 고르거나, 쓰던 흐름 그대로
5
+ * 신호를 주거나. 후자가 여기다. 두 갈래를 한 파일에 두는 이유는 둘이 같은
6
+ * 목적지(BlockKind) 를 가리키기 때문이고, 한쪽만 고치면 곧바로 어긋난다.
7
+ *
8
+ * 문법은 마크다운 가져오기(`import-markdown.ts`) 와 같은 것을 쓴다. 한쪽에서
9
+ * 되는 표기가 다른 쪽에서 안 되면 사용자가 규칙을 두 벌 외워야 한다.
10
+ */
11
+ import type { BlockAttrs, BlockKind } from './blocks.js';
12
+ /** 블록 유형을 가리키는 목적지. */
13
+ export interface BlockTarget {
14
+ kind: BlockKind;
15
+ attrs?: BlockAttrs;
16
+ }
17
+ /**
18
+ * `Ctrl/Cmd + Alt + 키` → 바꿀 블록 유형.
19
+ *
20
+ * 숫자는 제목 레벨과 그대로 맞춘다(1 → 제목 1). 0 이 본문인 것도 같은 이유다
21
+ * — "제목 아님" 자리다. 목록·인용구는 툴바 툴팁이 예전부터 광고해 온 7/8/9
22
+ * 자리를 그대로 쓴다.
23
+ *
24
+ * `Ctrl + 숫자` 가 아니라 `Ctrl + Alt + 숫자` 인 이유는 브라우저의 탭 전환
25
+ * 단축키와 겹치지 않기 위해서다.
26
+ */
27
+ export declare const BLOCK_SHORTCUTS: Readonly<Record<string, BlockTarget>>;
28
+ /**
29
+ * 블록 첫 글자들이 마크다운 방아쇠인지 본다. 아니면 null.
30
+ *
31
+ * 방아쇠는 **본문 블록의 맨 앞**에서만 인식한다 (호출자 책임). 이미 쓴 문단
32
+ * 중간에서 "- " 를 고치다가 블록이 통째로 바뀌면 사고다.
33
+ */
34
+ export declare function matchInputRule(text: string): BlockTarget | null;
35
+ /**
36
+ * 목록 **항목 안**에서 체크박스 표기를 알아본다. 완료 여부를 함께 돌려준다.
37
+ *
38
+ * `- [ ] ` 를 통째로 방아쇠로 삼을 수는 없다 — 앞의 `- ` 에서 이미 글머리
39
+ * 목록으로 바뀌기 때문에 뒤 절반은 영영 도달하지 않는다. 그래서 "글머리
40
+ * 목록 항목 맨 앞의 `[ ] `" 를 따로 본다. 사용자가 치는 순서(`- ` → `[ ] `)
41
+ * 를 그대로 따라가는 셈이고, 결과도 기대한 것과 같다.
42
+ */
43
+ export declare function matchTaskItemRule(text: string): {
44
+ checked: boolean;
45
+ } | null;
46
+ //# sourceMappingURL=input-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-rules.d.ts","sourceRoot":"","sources":["../../src/core/input-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAgB,MAAM,UAAU,CAAC;AAEpE,uBAAuB;AACvB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAajE,CAAC;AAgBF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAc/D;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAI3E"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * `BlockSnapshot[]` → 마크다운. DOM 을 쓰지 않는다.
3
+ *
4
+ * `import-markdown.ts` 의 역방향이다. 포맷 종속을 푸는 탈출구 — 저장된 글을
5
+ * 언제든 에디터 밖으로 꺼낼 수 있게 한다.
6
+ *
7
+ * ## 표현 범위
8
+ *
9
+ * 마크다운으로 표현할 수 없는 서식은 다음 두 갈래로 처리한다.
10
+ * - **원시 HTML 로 보존** — 밑줄(`<u>`), 위/아래 첨자, 가져온 HTML 블록.
11
+ * GFM 은 인라인 HTML 을 허용하므로 정보가 사라지지 않는다.
12
+ * - **버림** — 글자색 · 배경색 · 글자 크기 · 글꼴 · 정렬. 마크다운에 대응
13
+ * 개념이 없고 HTML 로 남기면 결과가 마크다운이라 부르기 어려워진다.
14
+ */
15
+ import type { BlockSnapshot } from './blocks.js';
16
+ export interface MarkdownOptions {
17
+ /**
18
+ * 글머리 목록 기호. 기본 `'-'`.
19
+ */
20
+ bullet?: '-' | '*' | '+';
21
+ /**
22
+ * 표를 GFM 표로 낼지. 기본 `true`.
23
+ * `false` 면 표를 원시 HTML 로 보존한다 (셀 병합 등 GFM 이 표현할 수 없는
24
+ * 구조를 잃지 않아야 할 때).
25
+ */
26
+ gfmTables?: boolean;
27
+ }
28
+ /** 스냅샷 배열을 마크다운 문서로 변환한다. */
29
+ export declare function blocksToMarkdown(snapshots: readonly BlockSnapshot[], options?: MarkdownOptions): string;
30
+ //# sourceMappingURL=markdown-export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-export.d.ts","sourceRoot":"","sources":["../../src/core/markdown-export.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAM9C,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAOD,6BAA6B;AAC7B,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,OAAO,GAAE,eAAoB,GAC5B,MAAM,CAWR"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `BlockSnapshot[]` → 평문. DOM 을 쓰지 않는다.
3
+ *
4
+ * 전문 검색(FTS) 색인 · 요약 스니펫 · 글자 수 계산용이다. 서식은 전부 버리고
5
+ * **사람이 읽는 텍스트만** 남긴다. 이미지는 `alt`, 링크는 표시 텍스트,
6
+ * 파일 첨부는 파일명이 텍스트로 들어간다 — 색인에 걸려야 의미가 있는 값들이다.
7
+ */
8
+ import type { BlockSnapshot } from './blocks.js';
9
+ export interface PlainTextOptions {
10
+ /** 블록 사이 구분자. 기본 `'\n\n'`. 색인용으로 `' '` 를 쓰기도 한다. */
11
+ blockSeparator?: string;
12
+ /** 표 셀 구분자. 기본 `'\t'`. */
13
+ cellSeparator?: string;
14
+ }
15
+ /** 스냅샷 배열에서 평문을 추출한다. */
16
+ export declare function blocksToPlainText(snapshots: readonly BlockSnapshot[], options?: PlainTextOptions): string;
17
+ //# sourceMappingURL=plain-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plain-text.d.ts","sourceRoot":"","sources":["../../src/core/plain-text.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAU9C,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,yBAAyB;AACzB,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,aAAa,EAAE,EACnC,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAUR"}