@kungal/editor-vue 0.36.0 → 0.38.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,62 @@
1
1
  # @kungal/editor-vue
2
2
 
3
+ ## 0.38.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 0f3ceab: 隐藏文本:编辑时看得出被隐藏,光标锚点不再进入存库的 markdown
8
+
9
+ - **剧透块的底色不再依赖宿主 token。** 原来是 `background: var(--color-default-500)`,
10
+ 没有 fallback —— 宿主没定义这个调色板变量时整条声明作废,实测算出来是
11
+ `rgba(0, 0, 0, 0)`:编辑时剧透块和正文长得一模一样。而「零 CSS 的 headless 编辑器」
12
+ 正是这样的宿主。现在自带一份不依赖任何设计 token 的默认底色(由 `currentColor`
13
+ 混出,明暗主题都成立),并留出 `--kun-spoiler-bg` 这个换肤钩子 —— 内联样式压得过
14
+ 任何选择器,但压不过自定义属性,所以这是宿主唯一能用纯 CSS 改它的入口。
15
+ `@kungal/editor-nuxt/editor.css` 把它映射成 `--color-default-200`,KunUI 宿主观感不变。
16
+ - **光标锚点(`U+200B`)只留在编辑器文档里,不再写进 markdown。** 锚点是编辑器的
17
+ 内部装置(光标必须落在某个 text 节点上),但它一直跟着正文一起被序列化出去,存库的
18
+ 文本会变成 `鲲 ||Galgame||<U+200B> 论坛` —— 数据库、diff、以及每一个不认识本编辑器的
19
+ 下游都得吃下这个看不见的字符。现在在 **serializer** 这一层统一剥掉:`getMarkdown()`、
20
+ `v-model`、源码视图、宿主自己的 action 都读同一个 slice,所以一处收口全部干净;
21
+ 从旧内容或粘贴带进来的锚点也一并清掉 —— **旧帖打开再保存一次就自愈**。
22
+ 解析时反过来给每个 `||…||` 补回锚点,所以「点在段尾的剧透块后面接着打字,字落在
23
+ 块外面」这件事和以前一样成立。
24
+
25
+ 对下游没有破坏性改动:markdown 少了一个不可见字符,DOM 结构与命令行为不变。
26
+
27
+ ### Patch Changes
28
+
29
+ - Updated dependencies [0f3ceab]
30
+ - @kungal/editor-core@0.38.0
31
+
32
+ ## 0.37.0
33
+
34
+ ### Minor Changes
35
+
36
+ - a473708: 隐藏文本:选区里的换行不再写出读不回来的 markdown,选区气泡里也有了这颗按钮
37
+
38
+ - **`insertKunSpoilerCommand` 把选区里的换行折成空格。** `||…||` 在每一个读它的地方
39
+ 都只在同一行内配对(这里的 remark 转换、共用同一语法的服务端渲染器),而 commonmark 的
40
+ hardbreak 声明了 `leafText: () => '\n'` —— 所以选中跨行的文字点「隐藏文本」,按钮会写出
41
+ `||第一行\n第二行||`:一段它自己都读不回来、渲染出来是两条光秃秃竖线的 markdown。现在
42
+ `textBetween` 的**两个**分隔符都给 `' '`(块级的本来就是),跨行选区并成一个单行 spoiler。
43
+ - **选区里一个字都没有时返回 `false`**,而不是把选中的东西替换掉 —— 单独选中一张图片点
44
+ 「隐藏文本」不再删图。(选中的是节点、或在代码块里,原本就已经返回 `false`。)
45
+ - **选区气泡工具栏加入 `spoiler`**:`KunSelectionItem` 多一个成员,默认那一排变成
46
+ `bold / italic / strike / code / spoiler / link`。按下态走已有的 `activeMarks.spoiler`,
47
+ 光标在 spoiler 里时按钮点亮、点一下揭示,和固定工具栏完全一致。
48
+ - 顺手把气泡默认按钮表收成**一份** `DEFAULT_SELECTION_ITEMS`(`context.ts`)。原本
49
+ `<KunEditor>` 和气泡各存一份,只改气泡那份等于没改 —— 真实编辑器读的是 context 那份。
50
+
51
+ **跨行剧透不在此列**:`||…||` 是行内语法(schema `inline: true`,mdast 里开闭两个 `||`
52
+ 根本落在不同的 text 节点上),要藏整段多行内容需要的是一个块级容器语法,得全生态(渲染器
53
+ 先行)另行约定,不是把 `||…||` 拉长。
54
+
55
+ ### Patch Changes
56
+
57
+ - Updated dependencies [a473708]
58
+ - @kungal/editor-core@0.37.0
59
+
3
60
  ## 0.36.0
4
61
 
5
62
  ### Minor Changes
@@ -31,8 +31,9 @@ type __VLS_Props = {
31
31
  scrollSync?: boolean;
32
32
  /**
33
33
  * The floating toolbar shown on text selection. `true` (default) = the
34
- * standard buttons; `false` = off; or pass an ordered `KunSelectionItem[]`
35
- * to reorder / subset them (`'|'` is a divider). Its look is styled via the
34
+ * standard buttons (bold / italic / strike / code / spoiler / link);
35
+ * `false` = off; or pass an ordered `KunSelectionItem[]` to reorder /
36
+ * subset them (`'|'` is a divider). Its look is styled via the
36
37
  * `.kun-editor__bubble` / `.kun-editor__bubble-btn` class hooks.
37
38
  */
38
39
  selectionToolbar?: boolean | KunSelectionItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"KunEditor.vue.d.ts","sourceRoot":"","sources":["../../src/components/KunEditor.vue"],"names":[],"mappings":"AA8bA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACX,MAAM,qBAAqB,CAAA;AAQ5B,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAUjE,KAAK,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE9C,KAAK,WAAW,GAAG;IACf,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,qDAAqD;IACrD,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,KAAK,GAAG,OAAO,CAAA;IACjC;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;IAClB;oEACgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAAA;CAChD,CAAC;AAqfJ,QAAA,IAAI,OAAO;;iBAzZS,QAAQ;;;;;;;;;;;;;CAyZP,EAAE,QAAQ;iEA7jB/B,CA9XuB;;;;;;WA8XvB,CAvWkD;aAuWlD,CAvWkE;;;;YAuWlE,CAlW8B;;;;;;;;;;;;;;CA+5BY,EAA4C,QAAQ,IAAY,CAAE;AAC5G,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAClD;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAShD,QAAA,MAAM,UAAU;;;;;;;;;iBAzhBE,MAAM;cART,iBAAiB;cAEjB,iBAAiB;YAEnB,eAAe;cAEb,OAAO;qBAQA,KAAK,GAAG,OAAO;sBAgBd,OAAO,GAAG,gBAAgB,EAAE;WAVvC,QAAQ,EAAE;gBAGL,OAAO;6EA+gBtB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"KunEditor.vue.d.ts","sourceRoot":"","sources":["../../src/components/KunEditor.vue"],"names":[],"mappings":"AAubA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,UAAU,EACX,MAAM,qBAAqB,CAAA;AAQ5B,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEjE,KAAK,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE9C,KAAK,WAAW,GAAG;IACf,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,qDAAqD;IACrD,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,KAAK,GAAG,OAAO,CAAA;IACjC;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;IAClB;oEACgE;IAChE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,gBAAgB,EAAE,CAAA;CAChD,CAAC;AAqfJ,QAAA,IAAI,OAAO;;iBAzZS,QAAQ;;;;;;;;;;;;;CAyZP,EAAE,QAAQ;iEAtjB/B,CA7Xa;;;;;;WA6Xb,CArW+C;aAqW/C,CArW+D;;;;YAqW/D,CAlW4D;;;;;;;;;;;;;;CAw5BlB,EAA4C,QAAQ,IAAY,CAAE;AAC5G,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAClD;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAShD,QAAA,MAAM,UAAU;;;;;;;;;iBA1hBE,MAAM;cART,iBAAiB;cAEjB,iBAAiB;YAEnB,eAAe;cAEb,OAAO;qBAQA,KAAK,GAAG,OAAO;sBAiBd,OAAO,GAAG,gBAAgB,EAAE;WAXvC,QAAQ,EAAE;gBAGL,OAAO;6EAghBtB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionTooltip.vue.d.ts","sourceRoot":"","sources":["../../src/components/SelectionTooltip.vue"],"names":[],"mappings":"AAukBA,QAAA,MAAM,YAAY,+QAChB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"SelectionTooltip.vue.d.ts","sourceRoot":"","sources":["../../src/components/SelectionTooltip.vue"],"names":[],"mappings":"AAilBA,QAAA,MAAM,YAAY,+QAChB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarHost.vue.d.ts","sourceRoot":"","sources":["../../src/components/ToolbarHost.vue"],"names":[],"mappings":"AA6GA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AA2GhD,QAAA,IAAI,OAAO;oCA5GX,CA9DI;;;;;;WA8DJ,CATK;aACG,CAAC;;;;YAC+E,CAAC;;;;;;;;;;;;;;CAmHnE,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAG/C,QAAA,MAAM,UAAU,+QACd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"ToolbarHost.vue.d.ts","sourceRoot":"","sources":["../../src/components/ToolbarHost.vue"],"names":[],"mappings":"AA6GA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AA2GhD,QAAA,IAAI,OAAO;oCA5GX,CA9DkB;;;;;;WAsDZ,CAAC;aAAe,CAAC;;;;YAC+E,CAAC;;;;;;;;;;;;;;CAmHjF,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAG/C,QAAA,MAAM,UAAU,+QACd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
package/dist/context.d.ts CHANGED
@@ -18,4 +18,15 @@ export interface KunEditorContext {
18
18
  readonly activeMarks: Record<KunToggleMark, boolean>;
19
19
  }
20
20
  export declare const KUN_EDITOR_CONTEXT: InjectionKey<KunEditorContext>;
21
+ /**
22
+ * The bubble's default button row — ONE copy, read by <KunEditor> (which puts it
23
+ * on the context) and by the bubble itself (for the no-context case). Two copies
24
+ * drift: adding a button to the bubble's own fallback did nothing at all,
25
+ * because every real editor gets the list from the context.
26
+ *
27
+ * `spoiler` is in it: hiding a selection is the KUN-specific inline action, and
28
+ * the bubble only ever shows on a text selection — exactly the case the command
29
+ * wraps (and, with the caret inside a spoiler, reveals).
30
+ */
31
+ export declare const DEFAULT_SELECTION_ITEMS: KunSelectionItem[];
21
32
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;AACvC,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,iFAAiF;IACjF,QAAQ,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,CAAA;IAClD;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;CACrD;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,gBAAgB,CAChC,CAAA"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;AACvC,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EAChB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,iFAAiF;IACjF,QAAQ,CAAC,qBAAqB,EAAE,gBAAgB,EAAE,CAAA;IAClD;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;CACrD;AAED,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,gBAAgB,CAChC,CAAA;AAE9B;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBAAgB,EAOrD,CAAA"}
package/dist/index.js CHANGED
@@ -2,13 +2,13 @@ import { Fragment as e, computed as t, createBlock as n, createCommentVNode as r
2
2
  import { Milkdown as k, MilkdownProvider as A, useEditor as j, useInstance as M } from "@milkdown/vue";
3
3
  import { ProsemirrorAdapterProvider as N, usePluginViewContext as ee, usePluginViewFactory as P } from "@prosemirror-adapter/vue";
4
4
  import { parseHeadings as F, parseHeadings as I } from "@kungal/editor-core";
5
- import { Editor as L, defaultValueCtx as te, editorViewCtx as R, editorViewOptionsCtx as z, rootCtx as B } from "@milkdown/kit/core";
6
- import { listenerCtx as ne } from "@milkdown/kit/plugin/listener";
7
- import { SlashProvider as re, slashFactory as V } from "@milkdown/kit/plugin/slash";
8
- import { TooltipProvider as ie, tooltipFactory as H } from "@milkdown/kit/plugin/tooltip";
9
- import { $prose as U, callCommand as W, replaceAll as G } from "@milkdown/kit/utils";
10
- import { Plugin as ae, PluginKey as oe, TextSelection as K } from "@milkdown/kit/prose/state";
11
- import { createCodeBlockCommand as q, emphasisSchema as se, inlineCodeSchema as ce, insertHrCommand as le, insertImageCommand as ue, linkSchema as de, strongSchema as fe, toggleEmphasisCommand as pe, toggleInlineCodeCommand as me, toggleStrongCommand as he, wrapInBlockquoteCommand as ge, wrapInBulletListCommand as _e, wrapInOrderedListCommand as ve } from "@milkdown/kit/preset/commonmark";
5
+ import { Editor as L, defaultValueCtx as R, editorViewCtx as z, editorViewOptionsCtx as B, rootCtx as V } from "@milkdown/kit/core";
6
+ import { listenerCtx as te } from "@milkdown/kit/plugin/listener";
7
+ import { SlashProvider as H, slashFactory as ne } from "@milkdown/kit/plugin/slash";
8
+ import { TooltipProvider as U, tooltipFactory as W } from "@milkdown/kit/plugin/tooltip";
9
+ import { $prose as G, callCommand as K, replaceAll as re } from "@milkdown/kit/utils";
10
+ import { Plugin as ie, PluginKey as ae, TextSelection as q } from "@milkdown/kit/prose/state";
11
+ import { createCodeBlockCommand as oe, emphasisSchema as se, inlineCodeSchema as ce, insertHrCommand as le, insertImageCommand as ue, linkSchema as de, strongSchema as fe, toggleEmphasisCommand as pe, toggleInlineCodeCommand as me, toggleStrongCommand as he, wrapInBlockquoteCommand as ge, wrapInBulletListCommand as _e, wrapInOrderedListCommand as ve } from "@milkdown/kit/preset/commonmark";
12
12
  import { createKunEditorPlugins as ye, insertKunSpoilerCommand as be, insertLinkCommand as J, insertMentionCommand as xe, insertQuoteCommand as Se, kunCM as Ce, mentionId as we, setHeadingCommand as Te, startImageUpload as Ee } from "@kungal/editor-core/preset";
13
13
  import { strikethroughSchema as De, toggleStrikethroughCommand as Oe } from "@milkdown/kit/preset/gfm";
14
14
  import { Annotation as ke, EditorState as Ae } from "@codemirror/state";
@@ -48,28 +48,35 @@ var Ne = [
48
48
  }, ze = (e, t, n) => {
49
49
  let r = Re(e, t);
50
50
  for (let e of Object.keys(r)) n[e] !== r[e] && (n[e] = r[e]);
51
- }, Be = new oe("KUN_ACTIVE_MARKS"), Ve = (e) => U((t) => new ae({
51
+ }, Be = new ae("KUN_ACTIVE_MARKS"), Ve = (e) => G((t) => new ie({
52
52
  key: Be,
53
53
  view: (n) => (ze(n.state, t, e), { update(n) {
54
54
  ze(n.state, t, e);
55
55
  } })
56
56
  })), X = Symbol("kun-editor-context"), He = [
57
+ "bold",
58
+ "italic",
59
+ "strike",
60
+ "code",
61
+ "spoiler",
62
+ "link"
63
+ ], Ue = [
57
64
  "data-active",
58
65
  "onMousedown",
59
66
  "onMouseenter"
60
- ], Ue = ["src", "alt"], We = {
67
+ ], We = ["src", "alt"], Ge = {
61
68
  key: 1,
62
69
  class: "kun-mention-dropdown__avatar kun-mention-dropdown__avatar--fallback"
63
- }, Ge = { class: "kun-mention-dropdown__name" }, Ke = {
70
+ }, Ke = { class: "kun-mention-dropdown__name" }, qe = {
64
71
  key: 1,
65
72
  class: "kun-mention-dropdown__hint"
66
- }, qe = {
73
+ }, Je = {
67
74
  key: 2,
68
75
  class: "kun-mention-dropdown__hint"
69
- }, Je = {
76
+ }, Ye = {
70
77
  key: 3,
71
78
  class: "kun-mention-dropdown__hint"
72
- }, Ye = /* @__PURE__ */ s({
79
+ }, Xe = /* @__PURE__ */ s({
73
80
  __name: "MentionDropdown",
74
81
  setup(n) {
75
82
  let r = /(?:^|\s)@([^\s@]{0,30})$/, o = l(X), s = o?.adapters.searchMentionUsers, c = t(() => (o?.locale ?? "zh-cn").toLowerCase().startsWith("en")), u = t(() => c.value ? {
@@ -118,7 +125,7 @@ var Ne = [
118
125
  userId: e.id,
119
126
  name: e.name
120
127
  }), { from: i, to: a } = D, o = t.state.tr.replaceWith(i, a, r), s = i + r.nodeSize;
121
- o.insertText(" ", s), o.setSelection(K.create(o.doc, s + 1)), t.dispatch(o.scrollIntoView()), t.focus(), y.hide();
128
+ o.insertText(" ", s), o.setSelection(q.create(o.doc, s + 1)), t.dispatch(o.scrollIntoView()), t.focus(), y.hide();
122
129
  }, I = (e) => {
123
130
  if (!x.value || !C.value.length) {
124
131
  x.value && e.key === "Escape" && (e.preventDefault(), y.hide());
@@ -144,7 +151,7 @@ var Ne = [
144
151
  }
145
152
  };
146
153
  return p(() => {
147
- y = new re({
154
+ y = new H({
148
155
  content: g.value,
149
156
  trigger: "@",
150
157
  shouldShow: P,
@@ -175,9 +182,9 @@ var Ne = [
175
182
  src: e.avatar,
176
183
  alt: e.name,
177
184
  class: "kun-mention-dropdown__avatar"
178
- }, null, 8, Ue)) : (m(), i("span", We, b(e.name.charAt(0)), 1)), a("span", Ge, b(e.name), 1)], 40, He))), 128)) : E.value ? (m(), i("div", Ke, b(u.value.searching), 1)) : S.value ? (m(), i("div", qe, b(u.value.empty), 1)) : (m(), i("div", Je, b(u.value.prompt), 1))], 512));
185
+ }, null, 8, We)) : (m(), i("span", Ge, b(e.name.charAt(0)), 1)), a("span", Ke, b(e.name), 1)], 40, Ue))), 128)) : E.value ? (m(), i("div", qe, b(u.value.searching), 1)) : S.value ? (m(), i("div", Je, b(u.value.empty), 1)) : (m(), i("div", Ye, b(u.value.prompt), 1))], 512));
179
186
  }
180
- }), Xe = (e, t) => {
187
+ }), Ze = (e, t) => {
181
188
  let n = de.type(t), { from: r, to: i } = e.selection, a = "";
182
189
  return e.doc.nodesBetween(r, i, (e) => {
183
190
  if (a) return !1;
@@ -204,17 +211,17 @@ var Ne = [
204
211
  check: Z("<path d=\"m5 13 4 4L19 7\"/>"),
205
212
  close: Z("<line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"/>"),
206
213
  smile: Z("<circle cx=\"12\" cy=\"12\" r=\"9\"/><path d=\"M8 14s1.5 2 4 2 4-2 4-2\"/><line x1=\"9\" y1=\"9\" x2=\"9.01\" y2=\"9\"/><line x1=\"15\" y1=\"9\" x2=\"15.01\" y2=\"9\"/>")
207
- }, Ze = ["data-mode"], Qe = ["placeholder", "aria-label"], $e = ["title", "aria-label"], et = ["innerHTML"], tt = ["title", "aria-label"], nt = ["innerHTML"], rt = {
214
+ }, Qe = ["data-mode"], $e = ["placeholder", "aria-label"], et = ["title", "aria-label"], tt = ["innerHTML"], nt = ["title", "aria-label"], rt = ["innerHTML"], it = {
208
215
  key: 0,
209
216
  class: "kun-editor__toolbar-divider",
210
217
  "aria-hidden": "true"
211
- }, it = [
218
+ }, at = [
212
219
  "title",
213
220
  "aria-label",
214
221
  "aria-pressed",
215
222
  "data-active",
216
223
  "onMousedown"
217
- ], at = ["innerHTML"], ot = /* @__PURE__ */ s({
224
+ ], ot = ["innerHTML"], st = /* @__PURE__ */ s({
218
225
  __name: "SelectionTooltip",
219
226
  setup(n) {
220
227
  let { view: r, prevState: o } = ee(), [, s] = M(), c = l(X), d = c?.activeMarks ?? Ie, h = t(() => (c?.locale ?? "zh-cn").toLowerCase().startsWith("en")), g = t(() => {
@@ -224,18 +231,19 @@ var Ne = [
224
231
  italic: e ? "Italic" : "斜体",
225
232
  strike: e ? "Strikethrough" : "删除线",
226
233
  code: e ? "Inline code" : "行内代码",
234
+ spoiler: e ? "Spoiler" : "隐藏文本",
227
235
  link: e ? "Link" : "链接",
228
236
  linkUrl: e ? "Link URL" : "链接 URL",
229
237
  apply: e ? "Apply" : "确定",
230
238
  cancel: e ? "Cancel" : "取消"
231
239
  };
232
240
  }), y = _(null), b, C = (e, t) => {
233
- s()?.action(W(e, t));
241
+ s()?.action(K(e, t));
234
242
  }, T = _(!1), k = _(""), A = _(null), j = () => {
235
243
  let e = "";
236
244
  return s()?.action((t) => {
237
245
  let n = r.value?.state;
238
- n && (e = Xe(n, t));
246
+ n && (e = Ze(n, t));
239
247
  }), e;
240
248
  }, N = () => {
241
249
  T.value = !1, k.value = "", r.value?.focus();
@@ -278,19 +286,19 @@ var Ne = [
278
286
  run: () => C(me.key),
279
287
  mark: "code"
280
288
  },
289
+ spoiler: {
290
+ svg: $.spoiler,
291
+ title: g.value.spoiler,
292
+ run: () => C(be.key),
293
+ mark: "spoiler"
294
+ },
281
295
  link: {
282
296
  svg: $.link,
283
297
  title: g.value.link,
284
298
  run: F
285
299
  }
286
300
  })), L = t(() => {
287
- let e = I.value, t = (c?.selectionToolbarItems ?? [
288
- "bold",
289
- "italic",
290
- "strike",
291
- "code",
292
- "link"
293
- ]).map((t) => t === "|" ? { divider: !0 } : e[t] ? {
301
+ let e = I.value, t = (c?.selectionToolbarItems ?? He).map((t) => t === "|" ? { divider: !0 } : e[t] ? {
294
302
  divider: !1,
295
303
  ...e[t]
296
304
  } : null).filter((e) => e !== null), n = [];
@@ -299,7 +307,7 @@ var Ne = [
299
307
  return n;
300
308
  });
301
309
  return p(() => {
302
- b = new ie({
310
+ b = new U({
303
311
  content: y.value,
304
312
  offset: 8
305
313
  }), b.onHide = () => {
@@ -328,7 +336,7 @@ var Ne = [
328
336
  spellcheck: "false",
329
337
  autocomplete: "off",
330
338
  onKeydown: [n[1] ||= D(O((e) => P(), ["prevent"]), ["enter"]), n[2] ||= D(O((e) => N(), ["stop", "prevent"]), ["esc"])]
331
- }, null, 40, Qe), [[S, k.value]]),
339
+ }, null, 40, $e), [[S, k.value]]),
332
340
  a("button", {
333
341
  type: "button",
334
342
  class: "kun-editor__bubble-btn",
@@ -338,7 +346,7 @@ var Ne = [
338
346
  }, [a("span", {
339
347
  class: "kun-editor__icon",
340
348
  innerHTML: x($).check
341
- }, null, 8, et)], 40, $e),
349
+ }, null, 8, tt)], 40, et),
342
350
  a("button", {
343
351
  type: "button",
344
352
  class: "kun-editor__bubble-btn",
@@ -348,8 +356,8 @@ var Ne = [
348
356
  }, [a("span", {
349
357
  class: "kun-editor__icon",
350
358
  innerHTML: x($).close
351
- }, null, 8, nt)], 40, tt)
352
- ], 64)) : (m(!0), i(e, { key: 1 }, v(L.value, (t, n) => (m(), i(e, { key: n }, [t.divider ? (m(), i("span", rt)) : (m(), i("button", {
359
+ }, null, 8, rt)], 40, nt)
360
+ ], 64)) : (m(!0), i(e, { key: 1 }, v(L.value, (t, n) => (m(), i(e, { key: n }, [t.divider ? (m(), i("span", it)) : (m(), i("button", {
353
361
  key: 1,
354
362
  type: "button",
355
363
  class: "kun-editor__bubble-btn",
@@ -361,9 +369,9 @@ var Ne = [
361
369
  }, [a("span", {
362
370
  class: "kun-editor__icon",
363
371
  innerHTML: t.svg
364
- }, null, 8, at)], 40, it))], 64))), 128))], 8, Ze));
372
+ }, null, 8, ot)], 40, at))], 64))), 128))], 8, Qe));
365
373
  }
366
- }), st = /* @__PURE__ */ s({
374
+ }), ct = /* @__PURE__ */ s({
367
375
  __name: "MilkdownEditor",
368
376
  props: {
369
377
  modelValue: {},
@@ -378,14 +386,14 @@ var Ne = [
378
386
  },
379
387
  emits: ["update:modelValue", "update:loading"],
380
388
  setup(e, { expose: t, emit: r }) {
381
- let i = e, a = r, o = i.modelValue, s = !1, c = l(X), u = P(), d = V("kunMention"), f = i.features.mention !== !1 && !!i.adapters.searchMentionUsers && !!u, p = H("kunSelectionTooltip"), h = i.selectionToolbar && !!u, g = j((e) => {
389
+ let i = e, a = r, o = i.modelValue, s = !1, c = l(X), u = P(), d = ne("kunMention"), f = i.features.mention !== !1 && !!i.adapters.searchMentionUsers && !!u, p = W("kunSelectionTooltip"), h = i.selectionToolbar && !!u, g = j((e) => {
382
390
  let t = L.make().config((t) => {
383
- t.set(B, e), t.set(te, i.modelValue), t.get(ne).markdownUpdated((e, t, n) => {
391
+ t.set(V, e), t.set(R, i.modelValue), t.get(te).markdownUpdated((e, t, n) => {
384
392
  !i.active || s || t === n || (o = t, a("update:modelValue", t));
385
- }), t.update(z, (e) => ({
393
+ }), t.update(B, (e) => ({
386
394
  ...e,
387
395
  editable: () => !i.readonly
388
- })), f && t.set(d.key, { view: u({ component: Ye }) }), h && t.set(p.key, { view: u({ component: ot }) });
396
+ })), f && t.set(d.key, { view: u({ component: Xe }) }), h && t.set(p.key, { view: u({ component: st }) });
389
397
  }).use(ye(i.adapters, i.features, {
390
398
  locale: i.locale,
391
399
  placeholder: i.placeholder,
@@ -397,25 +405,25 @@ var Ne = [
397
405
  if (e === o) return;
398
406
  o = e;
399
407
  let t = g.get();
400
- t && (s = !0, t.action(G(e)), s = !1);
408
+ t && (s = !0, t.action(re(e)), s = !1);
401
409
  }), w(() => i.readonly, () => {
402
410
  g.get()?.action((e) => {
403
- let t = e.get(R);
411
+ let t = e.get(z);
404
412
  t.dispatch(t.state.tr);
405
413
  });
406
414
  });
407
415
  let _ = () => {
408
- g.get()?.action((e) => e.get(R).focus());
416
+ g.get()?.action((e) => e.get(z).focus());
409
417
  };
410
418
  return t({
411
419
  insertQuote: (e) => {
412
- g.get()?.action(W(Se.key, e)), _();
420
+ g.get()?.action(K(Se.key, e)), _();
413
421
  },
414
422
  insertMention: (e) => {
415
- g.get()?.action(W(xe.key, e)), _();
423
+ g.get()?.action(K(xe.key, e)), _();
416
424
  },
417
425
  insertImage: (e) => {
418
- g.get()?.action(W(ue.key, {
426
+ g.get()?.action(K(ue.key, {
419
427
  src: e.src,
420
428
  alt: e.alt ?? "",
421
429
  title: e.title ?? ""
@@ -424,7 +432,7 @@ var Ne = [
424
432
  uploadImage: (e) => {
425
433
  let t = i.adapters.uploadImage, n = g.get();
426
434
  !t || !n || n.action((n) => {
427
- Ee(n.get(R), e, {
435
+ Ee(n.get(z), e, {
428
436
  uploadImage: t,
429
437
  notify: i.adapters.notify,
430
438
  locale: i.locale
@@ -434,25 +442,25 @@ var Ne = [
434
442
  focus: _,
435
443
  scrollToHeading: (e) => {
436
444
  g.get()?.action((t) => {
437
- let n = t.get(R), r = 0, i = -1;
445
+ let n = t.get(z), r = 0, i = -1;
438
446
  if (n.state.doc.forEach((t, n) => {
439
447
  t.type.name === "heading" && (r === e && (i = n), r += 1);
440
448
  }), !(i < 0) && (n.nodeDOM(i)?.scrollIntoView({
441
449
  behavior: "smooth",
442
450
  block: "start"
443
451
  }), n.editable)) {
444
- let e = K.near(n.state.doc.resolve(i + 1));
452
+ let e = q.near(n.state.doc.resolve(i + 1));
445
453
  n.dispatch(n.state.tr.setSelection(e)), n.focus();
446
454
  }
447
455
  });
448
456
  }
449
457
  }), (e, t) => (m(), n(x(k)));
450
458
  }
451
- }), ct = [
459
+ }), lt = [
452
460
  "title",
453
461
  "aria-label",
454
462
  "aria-expanded"
455
- ], lt = ["innerHTML"], ut = { class: "kun-editor__link-panel" }, dt = ["placeholder", "aria-label"], ft = ["title", "aria-label"], pt = ["innerHTML"], mt = /* @__PURE__ */ s({
463
+ ], ut = ["innerHTML"], dt = { class: "kun-editor__link-panel" }, ft = ["placeholder", "aria-label"], pt = ["title", "aria-label"], mt = ["innerHTML"], ht = /* @__PURE__ */ s({
456
464
  __name: "LinkInput",
457
465
  setup(e) {
458
466
  let [, n] = M(), r = l(X), o = t(() => (r?.locale ?? "zh-cn").toLowerCase().startsWith("en")), s = t(() => {
@@ -463,11 +471,11 @@ var Ne = [
463
471
  apply: e ? "Apply" : "确定"
464
472
  };
465
473
  }), c = _(!1), d = _(""), h = _(null), g = _(null), v = (e) => {
466
- e && n()?.action(W(J.key, { href: e }));
474
+ e && n()?.action(K(J.key, { href: e }));
467
475
  }, y = () => {
468
476
  c.value = !1, d.value = "";
469
477
  }, b = () => {
470
- y(), n()?.action((e) => e.get(R).focus());
478
+ y(), n()?.action((e) => e.get(z).focus());
471
479
  }, w = () => {
472
480
  v(d.value.trim()), b();
473
481
  }, T = async () => {
@@ -475,7 +483,7 @@ var Ne = [
475
483
  if (e) {
476
484
  let t = "";
477
485
  n()?.action((e) => {
478
- let { state: n } = e.get(R), { from: r, to: i } = n.selection;
486
+ let { state: n } = e.get(z), { from: r, to: i } = n.selection;
479
487
  t = n.doc.textBetween(r, i, " ");
480
488
  }), v((await e({ text: t }))?.trim() ?? "");
481
489
  return;
@@ -485,7 +493,7 @@ var Ne = [
485
493
  return;
486
494
  }
487
495
  n()?.action((e) => {
488
- d.value = Xe(e.get(R).state, e);
496
+ d.value = Ze(e.get(z).state, e);
489
497
  }), c.value = !0, await u(), g.value?.focus(), g.value?.select();
490
498
  }, k = (e) => {
491
499
  c.value && h.value && !h.value.contains(e.target) && y();
@@ -504,7 +512,7 @@ var Ne = [
504
512
  }, [a("span", {
505
513
  class: "kun-editor__icon",
506
514
  innerHTML: x($).link
507
- }, null, 8, lt)], 8, ct), E(a("div", ut, [E(a("input", {
515
+ }, null, 8, ut)], 8, lt), E(a("div", dt, [E(a("input", {
508
516
  ref_key: "inputRef",
509
517
  ref: g,
510
518
  "onUpdate:modelValue": t[0] ||= (e) => d.value = e,
@@ -516,7 +524,7 @@ var Ne = [
516
524
  spellcheck: "false",
517
525
  autocomplete: "off",
518
526
  onKeydown: [t[1] ||= D(O((e) => w(), ["prevent"]), ["enter"]), t[2] ||= D(O((e) => b(), ["stop", "prevent"]), ["esc"])]
519
- }, null, 40, dt), [[S, d.value]]), a("button", {
527
+ }, null, 40, ft), [[S, d.value]]), a("button", {
520
528
  type: "button",
521
529
  class: "kun-editor__tool",
522
530
  title: s.value.apply,
@@ -525,23 +533,23 @@ var Ne = [
525
533
  }, [a("span", {
526
534
  class: "kun-editor__icon",
527
535
  innerHTML: x($).check
528
- }, null, 8, pt)], 8, ft)], 512), [[C, c.value]])], 512));
536
+ }, null, 8, mt)], 8, pt)], 512), [[C, c.value]])], 512));
529
537
  }
530
- }), ht = /* @__PURE__ */ "😀.😃.😄.😁.😆.😅.🤣.😂.🙂.🙃.😉.😊.😇.🥰.😍.🤩.😘.😗.😚.😋.😛.😜.🤪.😝.🤗.🤭.🤔.🤐.😐.😑.😶.😏.😒.🙄.😬.😌.😔.😪.🤤.😴.😷.🤒.🤕.🥵.🥶.🥴.😵.🤯.🤠.🥳.😎.🤓.🧐.😕.😟.🙁.😮.😯.😲.😳.🥺.😦.😧.😨.😰.😥.😢.😭.😱.😖.😣.😞.😓.😩.😫.🥱.😤.😡.😠.🤬.😈.👿.💀.💩.🤡.👻.👽.🤖.😺.😸.👍.👎.👌.🤌.🤏.✌️.🤞.🤟.🤘.👋.🤚.🖐️.✋.👏.🙌.🤝.🙏.💪.👀.👁️.❤️.🧡.💛.💚.💙.💜.🖤.🤍.💔.💕.💞.💓.💗.💖.💘.💝.💯.✨.⭐.🌟.🔥.💥.💫.⚡.☀️.🌈.🎉.🎊.🎁.🏆.🐶.🐱.🐭.🦊.🐻.🐼.🐨.🦄.🐢.🐳.🍎.🍑.🍓.🍉.🍰.🍺.🍵.☕.🍜.🍙.✅.❌.❓.❗.💤.👑.🎮.🎵.📌.🔖".split("."), gt = [
538
+ }), gt = /* @__PURE__ */ "😀.😃.😄.😁.😆.😅.🤣.😂.🙂.🙃.😉.😊.😇.🥰.😍.🤩.😘.😗.😚.😋.😛.😜.🤪.😝.🤗.🤭.🤔.🤐.😐.😑.😶.😏.😒.🙄.😬.😌.😔.😪.🤤.😴.😷.🤒.🤕.🥵.🥶.🥴.😵.🤯.🤠.🥳.😎.🤓.🧐.😕.😟.🙁.😮.😯.😲.😳.🥺.😦.😧.😨.😰.😥.😢.😭.😱.😖.😣.😞.😓.😩.😫.🥱.😤.😡.😠.🤬.😈.👿.💀.💩.🤡.👻.👽.🤖.😺.😸.👍.👎.👌.🤌.🤏.✌️.🤞.🤟.🤘.👋.🤚.🖐️.✋.👏.🙌.🤝.🙏.💪.👀.👁️.❤️.🧡.💛.💚.💙.💜.🖤.🤍.💔.💕.💞.💓.💗.💖.💘.💝.💯.✨.⭐.🌟.🔥.💥.💫.⚡.☀️.🌈.🎉.🎊.🎁.🏆.🐶.🐱.🐭.🦊.🐻.🐼.🐨.🦄.🐢.🐳.🍎.🍑.🍓.🍉.🍰.🍺.🍵.☕.🍜.🍙.✅.❌.❓.❗.💤.👑.🎮.🎵.📌.🔖".split("."), _t = [
531
539
  "title",
532
540
  "aria-label",
533
541
  "aria-expanded"
534
- ], _t = ["innerHTML"], vt = { class: "kun-editor__picker-panel" }, yt = {
542
+ ], vt = ["innerHTML"], yt = { class: "kun-editor__picker-panel" }, bt = {
535
543
  key: 0,
536
544
  class: "kun-editor__picker-tabs",
537
545
  role: "tablist"
538
- }, bt = ["data-active"], xt = ["data-active"], St = { class: "kun-editor__emoji-grid" }, Ct = ["onClick"], wt = {
546
+ }, xt = ["data-active"], St = ["data-active"], Ct = { class: "kun-editor__emoji-grid" }, wt = ["onClick"], Tt = {
539
547
  key: 1,
540
548
  class: "kun-editor__sticker-body"
541
- }, Tt = { class: "kun-editor__pack-name" }, Et = { class: "kun-editor__sticker-grid" }, Dt = ["title", "onClick"], Ot = ["src", "alt"], kt = {
549
+ }, Et = { class: "kun-editor__pack-name" }, Dt = { class: "kun-editor__sticker-grid" }, Ot = ["title", "onClick"], kt = ["src", "alt"], At = {
542
550
  key: 1,
543
551
  class: "kun-editor__picker-hint"
544
- }, At = /* @__PURE__ */ s({
552
+ }, jt = /* @__PURE__ */ s({
545
553
  __name: "StickerPicker",
546
554
  setup(n) {
547
555
  let [, o] = M(), s = l(X), c = s?.adapters.stickerSource, u = !!c, d = t(() => (s?.locale ?? "zh-cn").toLowerCase().startsWith("en")), h = t(() => d.value ? {
@@ -573,11 +581,11 @@ var Ne = [
573
581
  p(() => document.addEventListener("click", A)), f(() => document.removeEventListener("click", A));
574
582
  let j = (e) => {
575
583
  o()?.action((t) => {
576
- let n = t.get(R), { state: r } = n;
584
+ let n = t.get(z), { state: r } = n;
577
585
  n.dispatch(r.tr.insertText(e, r.selection.from));
578
586
  });
579
587
  }, N = (e, t) => {
580
- o()?.action(W(ue.key, {
588
+ o()?.action(K(ue.key, {
581
589
  src: e,
582
590
  title: t,
583
591
  alt: t
@@ -597,28 +605,28 @@ var Ne = [
597
605
  }, [a("span", {
598
606
  class: "kun-editor__icon",
599
607
  innerHTML: x($).smile
600
- }, null, 8, _t)], 8, gt), E(a("div", vt, [
601
- u ? (m(), i("div", yt, [a("button", {
608
+ }, null, 8, vt)], 8, _t), E(a("div", yt, [
609
+ u ? (m(), i("div", bt, [a("button", {
602
610
  type: "button",
603
611
  class: "kun-editor__picker-tab",
604
612
  "data-active": S.value === "emoji",
605
613
  onClick: n[0] ||= (e) => S.value = "emoji"
606
- }, b(h.value.emoji), 9, bt), a("button", {
614
+ }, b(h.value.emoji), 9, xt), a("button", {
607
615
  type: "button",
608
616
  class: "kun-editor__picker-tab",
609
617
  "data-active": S.value === "sticker",
610
618
  onClick: n[1] ||= (e) => S.value = "sticker"
611
- }, b(h.value.sticker), 9, xt)])) : r("", !0),
612
- E(a("div", St, [(m(!0), i(e, null, v(x(ht), (e, t) => (m(), i("button", {
619
+ }, b(h.value.sticker), 9, St)])) : r("", !0),
620
+ E(a("div", Ct, [(m(!0), i(e, null, v(x(gt), (e, t) => (m(), i("button", {
613
621
  key: t,
614
622
  type: "button",
615
623
  class: "kun-editor__emoji",
616
624
  onClick: (t) => j(e)
617
- }, b(e), 9, Ct))), 128))], 512), [[C, !u || S.value === "emoji"]]),
618
- u ? E((m(), i("div", wt, [w.value.length ? (m(!0), i(e, { key: 0 }, v(w.value, (t) => (m(), i("div", {
625
+ }, b(e), 9, wt))), 128))], 512), [[C, !u || S.value === "emoji"]]),
626
+ u ? E((m(), i("div", Tt, [w.value.length ? (m(!0), i(e, { key: 0 }, v(w.value, (t) => (m(), i("div", {
619
627
  key: t.name,
620
628
  class: "kun-editor__pack"
621
- }, [a("div", Tt, b(t.name), 1), a("div", Et, [(m(!0), i(e, null, v(t.stickers, (e, t) => (m(), i("button", {
629
+ }, [a("div", Et, b(t.name), 1), a("div", Dt, [(m(!0), i(e, null, v(t.stickers, (e, t) => (m(), i("button", {
622
630
  key: t,
623
631
  type: "button",
624
632
  class: "kun-editor__sticker",
@@ -628,27 +636,27 @@ var Ne = [
628
636
  src: e.src,
629
637
  alt: e.name,
630
638
  loading: "lazy"
631
- }, null, 8, Ot)], 8, Dt))), 128))])]))), 128)) : (m(), i("div", kt, b(D.value ? h.value.failed : h.value.empty), 1))], 512)), [[C, S.value === "sticker"]]) : r("", !0)
639
+ }, null, 8, kt)], 8, Ot))), 128))])]))), 128)) : (m(), i("div", At, b(D.value ? h.value.failed : h.value.empty), 1))], 512)), [[C, S.value === "sticker"]]) : r("", !0)
632
640
  ], 512), [[C, g.value]])], 512));
633
641
  }
634
- }), jt = {
642
+ }), Mt = {
635
643
  class: "kun-editor__format-toolbar",
636
644
  role: "toolbar"
637
- }, Mt = ["aria-label"], Nt = {
645
+ }, Nt = ["aria-label"], Pt = {
638
646
  value: "",
639
647
  disabled: "",
640
648
  selected: ""
641
- }, Pt = ["value"], Ft = [
649
+ }, Ft = ["value"], It = [
642
650
  "title",
643
651
  "aria-label",
644
652
  "aria-pressed",
645
653
  "data-active",
646
654
  "onClick"
647
- ], It = ["innerHTML"], Lt = ["title", "aria-label"], Rt = ["innerHTML"], zt = /* @__PURE__ */ s({
655
+ ], Lt = ["innerHTML"], Rt = ["title", "aria-label"], zt = ["innerHTML"], Bt = /* @__PURE__ */ s({
648
656
  __name: "EditorToolbar",
649
657
  setup(s) {
650
658
  let [, c] = M(), u = l(X), d = u?.activeMarks ?? Ie, f = t(() => u?.adapters.uploadImage), p = t(() => u?.features.sticker !== !1), h = t(() => (u?.locale ?? "zh-cn").toLowerCase().startsWith("en")), g = (e, t) => {
651
- c()?.action(W(e, t));
659
+ c()?.action(K(e, t));
652
660
  }, y = t(() => {
653
661
  let e = h.value;
654
662
  return {
@@ -729,7 +737,7 @@ var Ne = [
729
737
  {
730
738
  svg: $.codeBlock,
731
739
  title: y.value.codeBlock,
732
- run: () => g(q.key, "")
740
+ run: () => g(oe.key, "")
733
741
  },
734
742
  {
735
743
  svg: $.hr,
@@ -748,26 +756,26 @@ var Ne = [
748
756
  t.value = "";
749
757
  let r = f.value;
750
758
  !n || !r || c()?.action((e) => {
751
- Ee(e.get(R), n, {
759
+ Ee(e.get(z), n, {
752
760
  uploadImage: r,
753
761
  notify: u?.adapters.notify,
754
762
  locale: u?.locale
755
763
  });
756
764
  });
757
765
  };
758
- return (t, s) => (m(), i("div", jt, [
766
+ return (t, s) => (m(), i("div", Mt, [
759
767
  a("select", {
760
768
  class: "kun-editor__heading-select",
761
769
  "aria-label": y.value.textSize,
762
770
  onChange: C
763
- }, [a("option", Nt, b(y.value.textSize), 1), (m(!0), i(e, null, v(S.value, (e) => (m(), i("option", {
771
+ }, [a("option", Pt, b(y.value.textSize), 1), (m(!0), i(e, null, v(S.value, (e) => (m(), i("option", {
764
772
  key: e.level,
765
773
  value: e.level
766
- }, b(e.label), 9, Pt))), 128))], 40, Mt),
774
+ }, b(e.label), 9, Ft))), 128))], 40, Nt),
767
775
  (m(!0), i(e, null, v(w.value, (t, r) => (m(), i(e, { key: r }, [s[0] ||= a("span", {
768
776
  class: "kun-editor__toolbar-divider",
769
777
  "aria-hidden": "true"
770
- }, null, -1), (m(!0), i(e, null, v(t, (t, r) => (m(), i(e, { key: r }, ["link" in t ? (m(), n(mt, { key: 0 })) : (m(), i("button", {
778
+ }, null, -1), (m(!0), i(e, null, v(t, (t, r) => (m(), i(e, { key: r }, ["link" in t ? (m(), n(ht, { key: 0 })) : (m(), i("button", {
771
779
  key: 1,
772
780
  type: "button",
773
781
  class: "kun-editor__tool",
@@ -779,7 +787,7 @@ var Ne = [
779
787
  }, [a("span", {
780
788
  class: "kun-editor__icon",
781
789
  innerHTML: t.svg
782
- }, null, 8, It)], 8, Ft))], 64))), 128))], 64))), 128)),
790
+ }, null, 8, Lt)], 8, It))], 64))), 128))], 64))), 128)),
783
791
  f.value ? (m(), i(e, { key: 0 }, [
784
792
  s[1] ||= a("span", {
785
793
  class: "kun-editor__toolbar-divider",
@@ -794,7 +802,7 @@ var Ne = [
794
802
  }, [a("span", {
795
803
  class: "kun-editor__icon",
796
804
  innerHTML: x($).image
797
- }, null, 8, Rt)], 8, Lt),
805
+ }, null, 8, zt)], 8, Rt),
798
806
  a("input", {
799
807
  ref_key: "fileInput",
800
808
  ref: T,
@@ -807,16 +815,16 @@ var Ne = [
807
815
  p.value ? (m(), i(e, { key: 1 }, [s[2] ||= a("span", {
808
816
  class: "kun-editor__toolbar-divider",
809
817
  "aria-hidden": "true"
810
- }, null, -1), o(At)], 64)) : r("", !0)
818
+ }, null, -1), o(jt)], 64)) : r("", !0)
811
819
  ]));
812
820
  }
813
- }), Bt = /* @__PURE__ */ s({
821
+ }), Vt = /* @__PURE__ */ s({
814
822
  __name: "ToolbarHost",
815
823
  setup(e) {
816
824
  let [, t] = M(), n = l(X, void 0), r = (e, n) => {
817
- t()?.action(W(e, n));
825
+ t()?.action(K(e, n));
818
826
  }, i = () => {
819
- t()?.action((e) => e.get(R).focus());
827
+ t()?.action((e) => e.get(z).focus());
820
828
  }, a = {
821
829
  run: r,
822
830
  get activeMarks() {
@@ -824,14 +832,14 @@ var Ne = [
824
832
  },
825
833
  insertText: (e) => {
826
834
  t()?.action((t) => {
827
- let n = t.get(R);
835
+ let n = t.get(z);
828
836
  n.dispatch(n.state.tr.insertText(e));
829
837
  }), i();
830
838
  },
831
839
  uploadImage: (e) => {
832
840
  let r = n?.adapters.uploadImage, i = t();
833
841
  !r || !i || i.action((t) => {
834
- Ee(t.get(R), e, {
842
+ Ee(t.get(z), e, {
835
843
  uploadImage: r,
836
844
  notify: n?.adapters.notify,
837
845
  locale: n?.locale
@@ -867,7 +875,7 @@ var Ne = [
867
875
  };
868
876
  return (e, t) => y(e.$slots, "default", d(c(a)));
869
877
  }
870
- }), Vt = /* @__PURE__ */ s({
878
+ }), Ht = /* @__PURE__ */ s({
871
879
  __name: "MarkdownSource",
872
880
  props: {
873
881
  modelValue: {},
@@ -939,23 +947,23 @@ var Ne = [
939
947
  class: "kun-editor__source"
940
948
  }, null, 512));
941
949
  }
942
- }), Ht = ["data-mode"], Ut = {
950
+ }), Ut = ["data-mode"], Wt = {
943
951
  key: 0,
944
952
  class: "kun-editor__toolbar",
945
953
  role: "tablist"
946
- }, Wt = [
954
+ }, Gt = [
947
955
  "aria-selected",
948
956
  "data-active",
949
957
  "onClick"
950
- ], Gt = ["title", "aria-label"], Kt = [
958
+ ], Kt = ["title", "aria-label"], qt = [
951
959
  "data-active",
952
960
  "title",
953
961
  "aria-pressed"
954
- ], qt = ["data-swap"], Jt = { class: "kun-editor__wysiwyg kun-editor__pane" }, Yt = {
962
+ ], Jt = ["data-swap"], Yt = { class: "kun-editor__wysiwyg kun-editor__pane" }, Xt = {
955
963
  key: 1,
956
964
  class: "kun-editor__loading",
957
965
  "aria-hidden": "true"
958
- }, Xt = /* @__PURE__ */ s({
966
+ }, Zt = /* @__PURE__ */ s({
959
967
  __name: "KunEditor",
960
968
  props: {
961
969
  modelValue: {},
@@ -988,53 +996,47 @@ var Ne = [
988
996
  "update:loading"
989
997
  ],
990
998
  setup(s, { expose: l, emit: S }) {
991
- let D = [
992
- "bold",
993
- "italic",
994
- "strike",
995
- "code",
996
- "link"
997
- ], O = s, k = S, j = _(!1);
999
+ let D = s, O = S, k = _(!1);
998
1000
  p(() => {
999
- j.value = !0;
1001
+ k.value = !0;
1000
1002
  });
1001
- let M = _(!0), ee = (e) => {
1002
- M.value = e, k("update:loading", e);
1003
+ let j = _(!0), M = (e) => {
1004
+ j.value = e, O("update:loading", e);
1003
1005
  };
1004
- w(() => O.modelValue, (e) => k("update:headings", I(e)), { immediate: !0 });
1005
- let P = g(Fe());
1006
+ w(() => D.modelValue, (e) => O("update:headings", I(e)), { immediate: !0 });
1007
+ let ee = g(Fe());
1006
1008
  h(X, {
1007
1009
  get adapters() {
1008
- return O.adapters;
1010
+ return D.adapters;
1009
1011
  },
1010
1012
  get features() {
1011
- return O.features;
1013
+ return D.features;
1012
1014
  },
1013
1015
  get locale() {
1014
- return O.locale;
1016
+ return D.locale;
1015
1017
  },
1016
1018
  get selectionToolbarItems() {
1017
- return Array.isArray(O.selectionToolbar) ? O.selectionToolbar : D;
1019
+ return Array.isArray(D.selectionToolbar) ? D.selectionToolbar : He;
1018
1020
  },
1019
1021
  get activeMarks() {
1020
- return P;
1022
+ return ee;
1021
1023
  }
1022
1024
  });
1023
- let F = t(() => O.selectionToolbar !== !1), L = _(O.views.includes("wysiwyg") ? "wysiwyg" : O.views[0] ?? "wysiwyg"), te = (e) => {
1024
- L.value = e;
1025
+ let P = t(() => D.selectionToolbar !== !1), F = _(D.views.includes("wysiwyg") ? "wysiwyg" : D.views[0] ?? "wysiwyg"), L = (e) => {
1026
+ F.value = e;
1025
1027
  };
1026
- w(() => O.views, (e) => {
1027
- e.includes(L.value) || (L.value = e[0] ?? "wysiwyg");
1028
+ w(() => D.views, (e) => {
1029
+ e.includes(F.value) || (F.value = e[0] ?? "wysiwyg");
1028
1030
  });
1029
1031
  let R = _(!1), z = () => {
1030
1032
  R.value = !R.value;
1031
- }, B = _(O.scrollSync);
1032
- w(() => O.scrollSync, (e) => {
1033
+ }, B = _(D.scrollSync);
1034
+ w(() => D.scrollSync, (e) => {
1033
1035
  B.value = e;
1034
1036
  });
1035
- let ne = () => {
1037
+ let V = () => {
1036
1038
  B.value = !B.value;
1037
- }, re = t(() => O.locale.toLowerCase().startsWith("en")), V = t(() => re.value ? {
1039
+ }, te = t(() => D.locale.toLowerCase().startsWith("en")), H = t(() => te.value ? {
1038
1040
  wysiwyg: "Preview",
1039
1041
  source: "Markdown",
1040
1042
  split: "Split",
@@ -1046,30 +1048,30 @@ var Ne = [
1046
1048
  split: "分栏",
1047
1049
  swap: "左右互换",
1048
1050
  scrollSync: "同步滚动"
1049
- }), ie = _(null), H = null, U = null, W = null, G = () => {
1050
- H?.(), H = null, U = null;
1051
- }, ae = () => {
1052
- G();
1053
- let e = ie.value;
1051
+ }), ne = _(null), U = null, W = null, G = null, K = () => {
1052
+ U?.(), U = null, W = null;
1053
+ }, re = () => {
1054
+ K();
1055
+ let e = ne.value;
1054
1056
  if (!e) return;
1055
1057
  let t = e.querySelector(".cm-scroller"), n = e.querySelector(".kun-editor__wysiwyg");
1056
1058
  if (!t || !n) return;
1057
1059
  let r = (e, t) => () => {
1058
- if (U && U !== e) return;
1059
- U = e;
1060
+ if (W && W !== e) return;
1061
+ W = e;
1060
1062
  let n = e.scrollHeight - e.clientHeight, r = n > 0 ? e.scrollTop / n : 0, i = t.scrollHeight - t.clientHeight;
1061
- t.scrollTop = r * (i > 0 ? i : 0), W && clearTimeout(W), W = setTimeout(() => {
1062
- U = null;
1063
+ t.scrollTop = r * (i > 0 ? i : 0), G && clearTimeout(G), G = setTimeout(() => {
1064
+ W = null;
1063
1065
  }, 120);
1064
1066
  }, i = r(t, n), a = r(n, t);
1065
- t.addEventListener("scroll", i, { passive: !0 }), n.addEventListener("scroll", a, { passive: !0 }), H = () => {
1067
+ t.addEventListener("scroll", i, { passive: !0 }), n.addEventListener("scroll", a, { passive: !0 }), U = () => {
1066
1068
  t.removeEventListener("scroll", i), n.removeEventListener("scroll", a);
1067
1069
  };
1068
1070
  };
1069
- w([L, B], ([e, t]) => {
1070
- G(), e === "split" && t && u(ae);
1071
- }), f(G);
1072
- let oe = t(() => O.readonly || L.value === "split"), K = (e) => k("update:modelValue", e), q = _(null), se = _(null);
1071
+ w([F, B], ([e, t]) => {
1072
+ K(), e === "split" && t && u(re);
1073
+ }), f(K);
1074
+ let ie = t(() => D.readonly || F.value === "split"), ae = (e) => O("update:modelValue", e), q = _(null), oe = _(null);
1073
1075
  return l({
1074
1076
  insertQuote: (e) => q.value?.insertQuote(e),
1075
1077
  insertMention: (e) => q.value?.insertMention(e),
@@ -1077,73 +1079,73 @@ var Ne = [
1077
1079
  uploadImage: (e) => q.value?.uploadImage(e),
1078
1080
  focus: () => q.value?.focus(),
1079
1081
  scrollToHeading: (e) => {
1080
- L.value === "source" || L.value === "split" ? se.value?.scrollToHeading(e) : q.value?.scrollToHeading(e);
1082
+ F.value === "source" || F.value === "split" ? oe.value?.scrollToHeading(e) : q.value?.scrollToHeading(e);
1081
1083
  }
1082
1084
  }), (t, l) => (m(), i("div", {
1083
1085
  ref_key: "rootEl",
1084
- ref: ie,
1086
+ ref: ne,
1085
1087
  class: "kun-editor",
1086
1088
  "data-kun-editor": "",
1087
- "data-mode": L.value
1088
- }, [j.value ? (m(), i(e, { key: 0 }, [y(t.$slots, "view-switch", {
1089
- mode: L.value,
1090
- setMode: te,
1091
- labels: V.value,
1089
+ "data-mode": F.value
1090
+ }, [k.value ? (m(), i(e, { key: 0 }, [y(t.$slots, "view-switch", {
1091
+ mode: F.value,
1092
+ setMode: L,
1093
+ labels: H.value,
1092
1094
  views: s.views,
1093
1095
  swapped: R.value,
1094
1096
  swap: z,
1095
1097
  scrollSync: B.value,
1096
- toggleScrollSync: ne
1097
- }, () => [s.views.length > 1 ? (m(), i("div", Ut, [(m(!0), i(e, null, v(s.views, (e) => (m(), i("button", {
1098
+ toggleScrollSync: V
1099
+ }, () => [s.views.length > 1 ? (m(), i("div", Wt, [(m(!0), i(e, null, v(s.views, (e) => (m(), i("button", {
1098
1100
  key: e,
1099
1101
  type: "button",
1100
1102
  class: "kun-editor__tab",
1101
- "aria-selected": L.value === e,
1102
- "data-active": L.value === e,
1103
- onClick: (t) => te(e)
1104
- }, b(V.value[e]), 9, Wt))), 128)), L.value === "split" ? (m(), i(e, { key: 0 }, [a("button", {
1103
+ "aria-selected": F.value === e,
1104
+ "data-active": F.value === e,
1105
+ onClick: (t) => L(e)
1106
+ }, b(H.value[e]), 9, Gt))), 128)), F.value === "split" ? (m(), i(e, { key: 0 }, [a("button", {
1105
1107
  type: "button",
1106
1108
  class: "kun-editor__tab kun-editor__swap",
1107
- title: V.value.swap,
1108
- "aria-label": V.value.swap,
1109
+ title: H.value.swap,
1110
+ "aria-label": H.value.swap,
1109
1111
  onClick: l[0] ||= (e) => z()
1110
- }, " ⇄ ", 8, Gt), a("button", {
1112
+ }, " ⇄ ", 8, Kt), a("button", {
1111
1113
  type: "button",
1112
1114
  class: "kun-editor__tab",
1113
1115
  "data-active": B.value,
1114
- title: V.value.scrollSync,
1116
+ title: H.value.scrollSync,
1115
1117
  "aria-pressed": B.value,
1116
- onClick: l[1] ||= (e) => ne()
1117
- }, b(V.value.scrollSync), 9, Kt)], 64)) : r("", !0)])) : r("", !0)]), o(x(A), null, {
1118
+ onClick: l[1] ||= (e) => V()
1119
+ }, b(H.value.scrollSync), 9, qt)], 64)) : r("", !0)])) : r("", !0)]), o(x(A), null, {
1118
1120
  default: T(() => [o(x(N), null, {
1119
- default: T(() => [E(a("div", null, [o(Bt, null, {
1120
- default: T((e) => [y(t.$slots, "toolbar", d(c(e)), () => [o(zt)])]),
1121
+ default: T(() => [E(a("div", null, [o(Vt, null, {
1122
+ default: T((e) => [y(t.$slots, "toolbar", d(c(e)), () => [o(Bt)])]),
1121
1123
  _: 3
1122
- })], 512), [[C, L.value === "wysiwyg" && !s.readonly]]), a("div", {
1124
+ })], 512), [[C, F.value === "wysiwyg" && !s.readonly]]), a("div", {
1123
1125
  class: "kun-editor__panes",
1124
1126
  "data-swap": R.value
1125
- }, [L.value === "source" || L.value === "split" ? (m(), n(Vt, {
1127
+ }, [F.value === "source" || F.value === "split" ? (m(), n(Ht, {
1126
1128
  key: 0,
1127
1129
  ref_key: "source",
1128
- ref: se,
1130
+ ref: oe,
1129
1131
  class: "kun-editor__pane",
1130
1132
  "model-value": s.modelValue,
1131
1133
  readonly: s.readonly,
1132
- "onUpdate:modelValue": K
1133
- }, null, 8, ["model-value", "readonly"])) : r("", !0), E(a("div", Jt, [o(st, {
1134
+ "onUpdate:modelValue": ae
1135
+ }, null, 8, ["model-value", "readonly"])) : r("", !0), E(a("div", Yt, [o(ct, {
1134
1136
  ref_key: "inner",
1135
1137
  ref: q,
1136
1138
  "model-value": s.modelValue,
1137
1139
  adapters: s.adapters,
1138
1140
  features: s.features,
1139
1141
  locale: s.locale,
1140
- readonly: oe.value,
1142
+ readonly: ie.value,
1141
1143
  placeholder: s.placeholder,
1142
1144
  "placeholder-mode": s.placeholderMode,
1143
- active: L.value === "wysiwyg" && !s.readonly,
1144
- "selection-toolbar": F.value,
1145
- "onUpdate:modelValue": K,
1146
- "onUpdate:loading": ee
1145
+ active: F.value === "wysiwyg" && !s.readonly,
1146
+ "selection-toolbar": P.value,
1147
+ "onUpdate:modelValue": ae,
1148
+ "onUpdate:loading": M
1147
1149
  }, null, 8, [
1148
1150
  "model-value",
1149
1151
  "adapters",
@@ -1154,18 +1156,18 @@ var Ne = [
1154
1156
  "placeholder-mode",
1155
1157
  "active",
1156
1158
  "selection-toolbar"
1157
- ])], 512), [[C, L.value === "wysiwyg" || L.value === "split"]])], 8, qt)]),
1159
+ ])], 512), [[C, F.value === "wysiwyg" || F.value === "split"]])], 8, Jt)]),
1158
1160
  _: 3
1159
1161
  })]),
1160
1162
  _: 3
1161
- })], 64)) : r("", !0), !j.value || M.value ? (m(), i("div", Yt, [y(t.$slots, "loading", {}, () => [
1163
+ })], 64)) : r("", !0), !k.value || j.value ? (m(), i("div", Xt, [y(t.$slots, "loading", {}, () => [
1162
1164
  l[2] ||= a("div", { class: "kun-editor__skeleton" }, null, -1),
1163
1165
  l[3] ||= a("div", { class: "kun-editor__skeleton" }, null, -1),
1164
1166
  l[4] ||= a("div", { class: "kun-editor__skeleton" }, null, -1)
1165
- ])])) : r("", !0)], 8, Ht));
1167
+ ])])) : r("", !0)], 8, Ut));
1166
1168
  }
1167
- }), Zt = { install(e) {
1168
- e.component("KunEditor", Xt);
1169
+ }), Qt = { install(e) {
1170
+ e.component("KunEditor", Zt);
1169
1171
  } };
1170
1172
  //#endregion
1171
- export { ht as EMOJI, Xt as KunEditor, Zt as KunEditorPlugin, F as parseHeadings };
1173
+ export { gt as EMOJI, Zt as KunEditor, Qt as KunEditorPlugin, F as parseHeadings };
package/dist/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { CmdKey } from '@milkdown/kit/core';
2
2
  import type { KunEditorAdapters, KunEditorFeatures, KunEditorLocale } from '@kungal/editor-core';
3
3
  export type KunToolbarItem = 'heading' | 'bold' | 'italic' | 'strike' | 'code' | 'bulletList' | 'orderedList' | 'quote' | 'codeBlock' | 'hr' | 'spoiler' | 'link' | 'image' | 'picker' | '|';
4
- export type KunSelectionItem = 'bold' | 'italic' | 'strike' | 'code' | 'link' | '|';
4
+ export type KunSelectionItem = 'bold' | 'italic' | 'strike' | 'code' | 'spoiler' | 'link' | '|';
5
5
  export type KunToggleMark = 'bold' | 'italic' | 'strike' | 'code' | 'spoiler';
6
6
  export interface KunEditorToolbarApi {
7
7
  /** Run a Milkdown command (import its key from the preset/commonmark/gfm). */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kungal/editor-vue",
3
- "version": "0.36.0",
3
+ "version": "0.38.0",
4
4
  "description": "KunEditor Vue 3 layer — the headless <KunEditor> component (dual WYSIWYG / markdown-source), toolbar and plugin views. Ships zero CSS and no UI-kit dependency; consumes @kungal/editor-core, and pairs with @kungal/editor-nuxt for optional KunUI chrome.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@prosemirror-adapter/vue": "^0.4.6",
43
- "@kungal/editor-core": "0.36.0"
43
+ "@kungal/editor-core": "0.38.0"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "@codemirror/lang-markdown": "^6.0.0",
@@ -80,7 +80,7 @@
80
80
  "vite": "^8.0.16",
81
81
  "vue": "^3.5.35",
82
82
  "vue-tsc": "^3.3.3",
83
- "@kungal/editor-core": "0.36.0"
83
+ "@kungal/editor-core": "0.38.0"
84
84
  },
85
85
  "scripts": {
86
86
  "build": "vite build && vue-tsc -p tsconfig.build.json",