@aeriz/wysiwyg 1.0.1 → 1.0.3

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 (108) hide show
  1. package/README.md +610 -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 +6912 -0
  27. package/dist/aeriz-wysiwyg.css +37 -129
  28. package/dist/aeriz-wysiwyg.esm.js +1194 -153
  29. package/dist/aeriz-wysiwyg.esm.min.js +2067 -1204
  30. package/dist/aeriz-wysiwyg.js +1193 -152
  31. package/dist/aeriz-wysiwyg.min.cjs +54 -0
  32. package/dist/aeriz-wysiwyg.min.css +1 -1
  33. package/dist/aeriz-wysiwyg.min.js +44 -13
  34. package/dist/server.cjs +32 -0
  35. package/dist/server.js +666 -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 +357 -0
  58. package/dist-types/cjs/core/AerizViewer.d.cts +61 -0
  59. package/dist-types/cjs/core/block-meta.d.cts +32 -0
  60. package/dist-types/cjs/core/blocks.d.cts +368 -0
  61. package/dist-types/cjs/core/fonts.d.cts +60 -0
  62. package/dist-types/cjs/core/highlight.d.cts +44 -0
  63. package/dist-types/cjs/core/html-mini.d.cts +65 -0
  64. package/dist-types/cjs/core/i18n.d.cts +209 -0
  65. package/dist-types/cjs/core/import-html.d.cts +39 -0
  66. package/dist-types/cjs/core/import-markdown.d.cts +37 -0
  67. package/dist-types/cjs/core/markdown-export.d.cts +30 -0
  68. package/dist-types/cjs/core/plain-text.d.cts +17 -0
  69. package/dist-types/cjs/core/render-string.d.cts +68 -0
  70. package/dist-types/cjs/core/snapshot.d.cts +51 -0
  71. package/dist-types/cjs/index.d.cts +20 -0
  72. package/dist-types/cjs/server/index.d.cts +37 -0
  73. package/dist-types/cjs/types/index.d.cts +61 -0
  74. package/dist-types/cjs/ui/Toolbar.d.cts +21 -0
  75. package/dist-types/cjs/ui/dialogs.d.cts +74 -0
  76. package/dist-types/cjs/ui/icons.d.cts +2 -0
  77. package/dist-types/cjs/ui/popovers.d.cts +70 -0
  78. package/dist-types/core/AerizEditor.d.ts +30 -10
  79. package/dist-types/core/AerizEditor.d.ts.map +1 -1
  80. package/dist-types/core/AerizViewer.d.ts +16 -4
  81. package/dist-types/core/AerizViewer.d.ts.map +1 -1
  82. package/dist-types/core/block-meta.d.ts +32 -0
  83. package/dist-types/core/block-meta.d.ts.map +1 -0
  84. package/dist-types/core/blocks.d.ts +62 -7
  85. package/dist-types/core/blocks.d.ts.map +1 -1
  86. package/dist-types/core/fonts.d.ts +11 -0
  87. package/dist-types/core/fonts.d.ts.map +1 -1
  88. package/dist-types/core/html-mini.d.ts +65 -0
  89. package/dist-types/core/html-mini.d.ts.map +1 -0
  90. package/dist-types/core/import-html.d.ts.map +1 -1
  91. package/dist-types/core/markdown-export.d.ts +30 -0
  92. package/dist-types/core/markdown-export.d.ts.map +1 -0
  93. package/dist-types/core/plain-text.d.ts +17 -0
  94. package/dist-types/core/plain-text.d.ts.map +1 -0
  95. package/dist-types/core/render-string.d.ts +68 -0
  96. package/dist-types/core/render-string.d.ts.map +1 -0
  97. package/dist-types/core/snapshot.d.ts +51 -0
  98. package/dist-types/core/snapshot.d.ts.map +1 -0
  99. package/dist-types/index.d.ts +19 -10
  100. package/dist-types/index.d.ts.map +1 -1
  101. package/dist-types/server/index.d.ts +37 -0
  102. package/dist-types/server/index.d.ts.map +1 -0
  103. package/dist-types/types/index.d.ts +21 -0
  104. package/dist-types/types/index.d.ts.map +1 -1
  105. package/dist-types/ui/Toolbar.d.ts +1 -1
  106. package/dist-types/ui/popovers.d.ts +1 -1
  107. package/dist-types/ui/popovers.d.ts.map +1 -1
  108. 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;AAqB5D,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,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;AAoBD;;;;;;;;;;;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"}
@@ -1,11 +1,20 @@
1
- import './styles/index.css';
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 type { EditorOptions, ToolbarConfig, ToolbarItem, ToolbarItemName, } from './types';
10
- export { DEFAULT_TOOLBAR } from './types';
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 type { EditorOptions, HtmlStyleMode, SerializeHtmlOptions, ToolbarConfig, ToolbarItem, ToolbarItemName, } from './types/index.js';
10
+ export { DEFAULT_TOOLBAR } from './types/index.js';
11
+ export { SNAPSHOT_VERSION, snapshotVersionOf, upgradeSnapshot, upgradeSnapshots, } from './core/snapshot.js';
12
+ export { renderBlockToHTML, renderBlocksToHTML } from './core/render-string.js';
13
+ export type { RenderHtmlOptions } from './core/render-string.js';
14
+ export { blocksToMarkdown } from './core/markdown-export.js';
15
+ export type { MarkdownOptions } from './core/markdown-export.js';
16
+ export { blocksToPlainText } from './core/plain-text.js';
17
+ export type { PlainTextOptions } from './core/plain-text.js';
18
+ export { decodeEntities, escapeAttr, escapeHtml, parseHtmlFragment, serializeNodes, textOf, textWithBlockBreaks, } from './core/html-mini.js';
19
+ export type { HtmlElementNode, HtmlNode, HtmlText } from './core/html-mini.js';
11
20
  //# 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;AAEvB,YAAY,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,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;AAEvB,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,4 +1,4 @@
1
- import type { ToolbarConfig, ToolbarItemName } from '../types';
1
+ import type { ToolbarConfig, ToolbarItemName } from '../types/index.js';
2
2
  export interface ToolbarHandlers {
3
3
  onAction: (name: ToolbarItemName, anchor: HTMLElement) => void;
4
4
  }
@@ -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;AAc5D,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;AAiHD,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,CA+BN;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,CAuCN;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;AAiBhB;;;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,CAoGN"}
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;AAmB5D,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;AAiHD,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,CA+BN;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,CAsDN;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;AAiBhB;;;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,CAoGN"}
package/package.json CHANGED
@@ -1,58 +1,213 @@
1
- {
2
- "name": "@aeriz/wysiwyg",
3
- "version": "1.0.1",
4
- "description": "WYSIWYG rich text editor",
5
- "author": "code-repositories",
6
- "homepage": "https://aeriz.dev",
7
- "license": "Apache-2.0",
8
- "type": "module",
9
- "main": "./dist/aeriz-wysiwyg.esm.js",
10
- "module": "./dist/aeriz-wysiwyg.esm.js",
11
- "browser": "./dist/aeriz-wysiwyg.min.js",
12
- "types": "./dist-types/index.d.ts",
13
- "unpkg": "./dist/aeriz-wysiwyg.min.js",
14
- "jsdelivr": "./dist/aeriz-wysiwyg.min.js",
15
- "exports": {
16
- ".": {
17
- "types": "./dist-types/index.d.ts",
18
- "import": "./dist/aeriz-wysiwyg.esm.js",
19
- "default": "./dist/aeriz-wysiwyg.min.js"
20
- },
21
- "./dist/aeriz-wysiwyg.min.js": "./dist/aeriz-wysiwyg.min.js",
22
- "./dist/aeriz-wysiwyg.min.css": "./dist/aeriz-wysiwyg.min.css",
23
- "./style.css": "./dist/aeriz-wysiwyg.min.css"
24
- },
25
- "files": [
26
- "dist",
27
- "dist-types",
28
- "README.md",
29
- "LICENSE"
30
- ],
31
- "sideEffects": [
32
- "**/*.css"
33
- ],
34
- "publishConfig": {
35
- "access": "public"
36
- },
37
- "keywords": [
38
- "wysiwyg",
39
- "editor",
40
- "rich-text",
41
- "korean",
42
- "contenteditable"
43
- ],
44
- "scripts": {
45
- "build:dev": "vite build --mode dev",
46
- "build:prod": "vite build --mode prod",
47
- "build:types": "tsc -p tsconfig.build.json",
48
- "build": "npm run build:dev && npm run build:prod && npm run build:types",
49
- "dev": "npm run build && vite --config vite.demo.config.ts",
50
- "preview": "npm run build && vite build --config vite.demo.config.ts && vite preview --config vite.demo.config.ts",
51
- "typecheck": "tsc --noEmit",
52
- "prepublishOnly": "npm run build"
53
- },
54
- "devDependencies": {
55
- "typescript": "^5.6.0",
56
- "vite": "^5.4.0"
57
- }
58
- }
1
+ {
2
+ "name": "@aeriz/wysiwyg",
3
+ "version": "1.0.3",
4
+ "description": "WYSIWYG rich text editor",
5
+ "author": "code-repositories",
6
+ "homepage": "https://aeriz.dev",
7
+ "license": "Apache-2.0",
8
+ "type": "module",
9
+ "main": "./dist/aeriz-wysiwyg.min.cjs",
10
+ "module": "./dist/aeriz-wysiwyg.esm.js",
11
+ "browser": "./dist/aeriz-wysiwyg.min.js",
12
+ "types": "./dist-types/index.d.ts",
13
+ "unpkg": "./dist/aeriz-wysiwyg.min.js",
14
+ "jsdelivr": "./dist/aeriz-wysiwyg.min.js",
15
+ "exports": {
16
+ ".": {
17
+ "import": {
18
+ "types": "./dist-types/index.d.ts",
19
+ "default": "./dist/aeriz-wysiwyg.esm.js"
20
+ },
21
+ "require": {
22
+ "types": "./dist-types/cjs/index.d.cts",
23
+ "default": "./dist/aeriz-wysiwyg.min.cjs"
24
+ },
25
+ "default": "./dist/aeriz-wysiwyg.min.js"
26
+ },
27
+ "./server": {
28
+ "import": {
29
+ "types": "./dist-types/server/index.d.ts",
30
+ "default": "./dist/server.js"
31
+ },
32
+ "require": {
33
+ "types": "./dist-types/cjs/server/index.d.cts",
34
+ "default": "./dist/server.cjs"
35
+ },
36
+ "default": "./dist/server.js"
37
+ },
38
+ "./adapter": {
39
+ "import": {
40
+ "types": "./dist-types/adapters/shared.d.ts",
41
+ "default": "./dist/adapters/shared.js"
42
+ },
43
+ "require": {
44
+ "types": "./dist-types/cjs/adapters/shared.d.cts",
45
+ "default": "./dist/adapters/shared.cjs"
46
+ },
47
+ "default": "./dist/adapters/shared.js"
48
+ },
49
+ "./react": {
50
+ "import": {
51
+ "types": "./dist-types/adapters/react.d.ts",
52
+ "default": "./dist/adapters/react.js"
53
+ },
54
+ "require": {
55
+ "types": "./dist-types/cjs/adapters/react.d.cts",
56
+ "default": "./dist/adapters/react.cjs"
57
+ },
58
+ "default": "./dist/adapters/react.js"
59
+ },
60
+ "./vue": {
61
+ "import": {
62
+ "types": "./dist-types/adapters/vue.d.ts",
63
+ "default": "./dist/adapters/vue.js"
64
+ },
65
+ "require": {
66
+ "types": "./dist-types/cjs/adapters/vue.d.cts",
67
+ "default": "./dist/adapters/vue.cjs"
68
+ },
69
+ "default": "./dist/adapters/vue.js"
70
+ },
71
+ "./vue2": {
72
+ "import": {
73
+ "types": "./dist-types/adapters/vue2.d.ts",
74
+ "default": "./dist/adapters/vue2.js"
75
+ },
76
+ "require": {
77
+ "types": "./dist-types/cjs/adapters/vue2.d.cts",
78
+ "default": "./dist/adapters/vue2.cjs"
79
+ },
80
+ "default": "./dist/adapters/vue2.js"
81
+ },
82
+ "./svelte": {
83
+ "import": {
84
+ "types": "./dist-types/adapters/svelte.d.ts",
85
+ "default": "./dist/adapters/svelte.js"
86
+ },
87
+ "require": {
88
+ "types": "./dist-types/cjs/adapters/svelte.d.cts",
89
+ "default": "./dist/adapters/svelte.cjs"
90
+ },
91
+ "default": "./dist/adapters/svelte.js"
92
+ },
93
+ "./jquery": {
94
+ "import": {
95
+ "types": "./dist-types/adapters/jquery.d.ts",
96
+ "default": "./dist/adapters/jquery.js"
97
+ },
98
+ "require": {
99
+ "types": "./dist-types/cjs/adapters/jquery.d.cts",
100
+ "default": "./dist/adapters/jquery.cjs"
101
+ },
102
+ "default": "./dist/adapters/jquery.js"
103
+ },
104
+ "./wc": {
105
+ "import": {
106
+ "types": "./dist-types/adapters/wc.d.ts",
107
+ "default": "./dist/adapters/wc.js"
108
+ },
109
+ "require": {
110
+ "types": "./dist-types/cjs/adapters/wc.d.cts",
111
+ "default": "./dist/adapters/wc.cjs"
112
+ },
113
+ "default": "./dist/adapters/wc.js"
114
+ },
115
+ "./cdn/wc": "./dist/aeriz-wysiwyg-wc.min.js",
116
+ "./cdn/jquery": "./dist/aeriz-wysiwyg-jquery.min.js",
117
+ "./cdn/adapter": "./dist/aeriz-wysiwyg-adapter.min.js",
118
+ "./angular": {
119
+ "types": "./angular/index.ts",
120
+ "default": "./angular/index.ts"
121
+ },
122
+ "./angular/*": "./angular/*",
123
+ "./dist/aeriz-wysiwyg.min.js": "./dist/aeriz-wysiwyg.min.js",
124
+ "./dist/aeriz-wysiwyg.min.css": "./dist/aeriz-wysiwyg.min.css",
125
+ "./style.css": "./dist/aeriz-wysiwyg.min.css"
126
+ },
127
+ "typesVersions": {
128
+ "*": {
129
+ "server": [
130
+ "./dist-types/server/index.d.ts"
131
+ ],
132
+ "adapter": [
133
+ "./dist-types/adapters/shared.d.ts"
134
+ ],
135
+ "react": [
136
+ "./dist-types/adapters/react.d.ts"
137
+ ],
138
+ "vue": [
139
+ "./dist-types/adapters/vue.d.ts"
140
+ ],
141
+ "vue2": [
142
+ "./dist-types/adapters/vue2.d.ts"
143
+ ],
144
+ "svelte": [
145
+ "./dist-types/adapters/svelte.d.ts"
146
+ ],
147
+ "jquery": [
148
+ "./dist-types/adapters/jquery.d.ts"
149
+ ],
150
+ "wc": [
151
+ "./dist-types/adapters/wc.d.ts"
152
+ ]
153
+ }
154
+ },
155
+ "files": [
156
+ "dist",
157
+ "dist-types",
158
+ "angular",
159
+ "README.md",
160
+ "LICENSE"
161
+ ],
162
+ "sideEffects": [
163
+ "**/*.css",
164
+ "./dist/adapters/wc.js",
165
+ "./dist/adapters/wc.cjs",
166
+ "./dist/adapters/jquery.js",
167
+ "./dist/adapters/jquery.cjs"
168
+ ],
169
+ "publishConfig": {
170
+ "access": "public"
171
+ },
172
+ "keywords": [
173
+ "wysiwyg",
174
+ "editor",
175
+ "rich-text",
176
+ "korean",
177
+ "contenteditable",
178
+ "react",
179
+ "vue",
180
+ "svelte",
181
+ "angular",
182
+ "jquery",
183
+ "web-component"
184
+ ],
185
+ "peerDependencies": {
186
+ "@angular/core": ">=14",
187
+ "@angular/forms": ">=14",
188
+ "jquery": ">=3",
189
+ "react": ">=16.8",
190
+ "svelte": ">=3",
191
+ "vue": "^2.6.0 || >=3.0.0"
192
+ },
193
+ "peerDependenciesMeta": {
194
+ "@angular/core": {
195
+ "optional": true
196
+ },
197
+ "@angular/forms": {
198
+ "optional": true
199
+ },
200
+ "jquery": {
201
+ "optional": true
202
+ },
203
+ "react": {
204
+ "optional": true
205
+ },
206
+ "svelte": {
207
+ "optional": true
208
+ },
209
+ "vue": {
210
+ "optional": true
211
+ }
212
+ }
213
+ }