@atri-editor/core 0.1.0 → 0.2.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +5 -5
  3. package/dist/AtriEditor.d.ts +20 -5
  4. package/dist/AtriEditor.d.ts.map +1 -1
  5. package/dist/AtriEditorElement.d.ts +5 -1
  6. package/dist/AtriEditorElement.d.ts.map +1 -1
  7. package/dist/ai/AICommandMenu.d.ts.map +1 -1
  8. package/dist/core/CoreEditor.d.ts +2 -0
  9. package/dist/core/CoreEditor.d.ts.map +1 -1
  10. package/dist/core/ExtensionManager.d.ts +2 -14
  11. package/dist/core/ExtensionManager.d.ts.map +1 -1
  12. package/dist/core/I18nManager.d.ts +9 -0
  13. package/dist/core/I18nManager.d.ts.map +1 -1
  14. package/dist/core/TableGridPanel.d.ts +41 -0
  15. package/dist/core/TableGridPanel.d.ts.map +1 -0
  16. package/dist/core/ThemeManager.d.ts +3 -10
  17. package/dist/core/ThemeManager.d.ts.map +1 -1
  18. package/dist/core/ToolbarManager.d.ts +7 -0
  19. package/dist/core/ToolbarManager.d.ts.map +1 -1
  20. package/dist/core/floating-panel.d.ts +20 -0
  21. package/dist/core/floating-panel.d.ts.map +1 -0
  22. package/dist/core/icons.d.ts.map +1 -1
  23. package/dist/extensions/Attachment.d.ts.map +1 -1
  24. package/dist/extensions/AttachmentLink.d.ts.map +1 -1
  25. package/dist/extensions/MediaFiles.d.ts.map +1 -1
  26. package/dist/extensions/attachment-markdown.d.ts +22 -0
  27. package/dist/extensions/attachment-markdown.d.ts.map +1 -0
  28. package/dist/index.d.ts +1 -2
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +429 -302
  31. package/dist/index.js.map +1 -1
  32. package/dist/media/InsertPanel.d.ts +5 -6
  33. package/dist/media/InsertPanel.d.ts.map +1 -1
  34. package/dist/media/MediaStatusStrip.d.ts.map +1 -1
  35. package/dist/media/Uploader.d.ts.map +1 -1
  36. package/dist/style.css +62 -0
  37. package/dist/types/ai.d.ts +2 -0
  38. package/dist/types/ai.d.ts.map +1 -1
  39. package/dist/types/editor.d.ts +23 -7
  40. package/dist/types/editor.d.ts.map +1 -1
  41. package/dist/types/extension.d.ts +16 -34
  42. package/dist/types/extension.d.ts.map +1 -1
  43. package/dist/types/index.d.ts +0 -1
  44. package/dist/types/index.d.ts.map +1 -1
  45. package/dist/utils/dom.d.ts +3 -2
  46. package/dist/utils/dom.d.ts.map +1 -1
  47. package/dist/utils/table.d.ts +17 -0
  48. package/dist/utils/table.d.ts.map +1 -0
  49. package/package.json +23 -5
  50. package/dist/types/events.d.ts +0 -26
  51. package/dist/types/events.d.ts.map +0 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,8 @@
1
+ # @atri-editor/core
2
+
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 6934121: 工具栏新增「插入表格」:点击弹出网格悬停选择器(8×6,Notion 式),点击即插入;表格节点(Table/Row/Header/Cell)默认注册,pipe table 与 markdown 双向转换开箱可用。门面与 Web Component 同步提供 insertTable(options) API,`table: false` 可整体关闭。
8
+ - c59210e: 「附件样式」切换按钮不再常驻默认顶部工具栏,改由选中附件时浮出的选区工具栏承接;`toolbar.bubble` 默认随之改为开启。入口相应收窄:只有整节点选中(点卡片、方向键越过块级附件、插入命令收尾)才浮出,光标紧贴附件时不再有常驻按钮。需要旧行为可把 `attachmentDisplay` 显式写回 `toolbar.items`,或程序化走 `toggleAttachmentDisplay` 命令;不需要浮层传 `toolbar: { bubble: false }`。
package/README.md CHANGED
@@ -1,13 +1,14 @@
1
1
  # @atri-editor/core
2
2
 
3
- 基于 Tiptap v3 的框架无关富文本编辑器:Web Component、Markdown 双向转换、图片与附件上传管线、可插拔 AI 集成、中英文 i18n 与亮/暗主题。
3
+ 基于 Tiptap v3 的框架无关富文本编辑器:Web Component、Markdown 双向转换、表格(网格选择器插入、pipe table 双向转换)、图片与附件上传管线、可插拔 AI 集成、中英文 i18n 与亮/暗主题。
4
4
 
5
- 完整文档见仓库根 README 与 `demos/`(vanilla / vue / react 三个示例)。
5
+ 完整文档见 [仓库 README](https://github.com/CherishDreams/atri-editor#readme),示例见 [demos/](https://github.com/CherishDreams/atri-editor/tree/main/demos)(vanilla / vue / react 三个)。
6
6
 
7
7
  ## 安装
8
8
 
9
9
  ```bash
10
- pnpm add @atri-editor/core
10
+ npm install @atri-editor/core
11
+ # 或 pnpm add @atri-editor/core
11
12
  ```
12
13
 
13
14
  ## 使用
@@ -34,8 +35,7 @@ editor.getMarkdown(); // HTML ⇄ Markdown 双向
34
35
  ## 说明
35
36
 
36
37
  - ESM-only(与上游 Tiptap v3 一致),需要现代打包器;Node 端 import 安全,编辑功能只在浏览器生效。
37
- - `@tiptap/*`、`@floating-ui/dom`、`i18next` 为运行时依赖,由本包的 `dependencies` 声明。
38
- - 当前版本尚未发布到 npm registry;以 workspace 或 `pnpm pack` 产物形式消费。
38
+ - `@tiptap/*`、`@floating-ui/dom`、`i18next` 为运行时依赖,由本包的 `dependencies` 声明;`@tiptap/core` 与 `@tiptap/pm` 是 peer 依赖,宿主项目里保持单实例。
39
39
 
40
40
  ## License
41
41
 
@@ -1,11 +1,12 @@
1
1
  /**
2
2
  * AtriEditor - 编辑器主类
3
3
  */
4
- import type { Editor } from '@tiptap/core';
5
- import type { AtriEditorOptions, IAtriEditor, InsertAttachmentOptions, InsertImageOptions, MediaKind, SetContentOptions, AtriAIConfig, AtriNodeViewConfig } from './types';
4
+ import type { Editor, JSONContent } from '@tiptap/core';
5
+ import type { AtriEditorOptions, IAtriEditor, InsertAttachmentOptions, InsertImageOptions, InsertTableOptions, MediaKind, SetContentOptions, AtriAIConfig, AtriNodeViewConfig } from './types';
6
6
  import { ThemeManager } from './core/ThemeManager';
7
7
  import { I18nManager } from './core/I18nManager';
8
8
  import { ExtensionManager } from './core/ExtensionManager';
9
+ import type { ThemeType } from './core/ThemeManager';
9
10
  import { AIService } from './ai/AIService';
10
11
  export declare class AtriEditor implements IAtriEditor {
11
12
  private coreEditor;
@@ -14,6 +15,8 @@ export declare class AtriEditor implements IAtriEditor {
14
15
  private i18nManager;
15
16
  private extensionManager;
16
17
  private toolbarManager;
18
+ /** 工具栏容器引用:重建编辑器时复用同一个挂载点,不重新查询 DOM */
19
+ private toolbarContainer;
17
20
  private aiService;
18
21
  private aiMenuManager;
19
22
  private mediaRuntime;
@@ -28,10 +31,18 @@ export declare class AtriEditor implements IAtriEditor {
28
31
  private container;
29
32
  private options;
30
33
  constructor(options: AtriEditorOptions);
31
- /** 开了 bubble 才建元素,且故意不插进文档:挂载与定位全归 BubbleMenu 插件管 */
34
+ /** bubble 默认开,显式 false 才不建元素;元素故意不插进文档:挂载与定位全归 BubbleMenu 插件管 */
32
35
  private ensureBubbleElement;
33
36
  private onEditorCreated;
34
37
  private initAI;
38
+ /**
39
+ * 创建核心编辑器:构造函数与 recreateEditor 共用的装配点。
40
+ * 只有编辑器壳(挂载元素/初始内容/内容格式)随重建变化,其余全部来自 this.options,
41
+ * 逐项手抄两遍必然漂移——出错的第一现场就是两处不齐
42
+ */
43
+ private createCoreEditor;
44
+ /** 初始化依赖编辑器实例的子系统:Markdown 服务、工具栏、AI 服务,重建后同样要重新走一遍 */
45
+ private setupSubsystems;
35
46
  /**
36
47
  * 重新创建编辑器(用于动态注册 NodeView 后更新 schema)
37
48
  * 会整体替换编辑器视图,因此内容与选区都要手动恢复
@@ -86,7 +97,7 @@ export declare class AtriEditor implements IAtriEditor {
86
97
  /**
87
98
  * Markdown 转 JSON
88
99
  */
89
- markdownToJSON(markdown: string): object;
100
+ markdownToJSON(markdown: string): JSONContent;
90
101
  /**
91
102
  * 获取选中文本
92
103
  */
@@ -103,6 +114,10 @@ export declare class AtriEditor implements IAtriEditor {
103
114
  * 在选区处插入附件(形态由 options.display 或 media.attachment.display 决定)
104
115
  */
105
116
  insertAttachment(options: InsertAttachmentOptions): void;
117
+ /**
118
+ * 在选区处插入表格(默认 3×3 带表头)
119
+ */
120
+ insertTable(options?: InsertTableOptions): void;
106
121
  /**
107
122
  * 走上传管线插入本地文件
108
123
  * kind 缺省时按 MIME 分流;promise 在这批文件全部落定(成功或失败)后 resolve
@@ -156,7 +171,7 @@ export declare class AtriEditor implements IAtriEditor {
156
171
  /**
157
172
  * 设置主题
158
173
  */
159
- setTheme(theme: 'light' | 'dark' | string): void;
174
+ setTheme(theme: ThemeType): void;
160
175
  /**
161
176
  * 切换主题
162
177
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AtriEditor.d.ts","sourceRoot":"","sources":["../src/AtriEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AtriEditor.d.ts","sourceRoot":"","sources":["../src/AtriEditor.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * AtriEditorElement - Web Component 封装
3
3
  */
4
4
  import { AtriEditor } from './AtriEditor';
5
- import type { AtriEditorOptions, InsertAttachmentOptions, InsertImageOptions, MediaKind } from './types';
5
+ import type { AtriEditorOptions, InsertAttachmentOptions, InsertImageOptions, InsertTableOptions, MediaKind } from './types';
6
6
  /**
7
7
  * SSR / 纯 Node 安全基类:类声明会在模块加载时求值 extends 后的表达式,
8
8
  * 直接 `extends HTMLElement` 会让无 DOM 的环境(Next/Nuxt 服务端、vitest node 池)
@@ -63,6 +63,10 @@ export declare class AtriEditorElement extends AtriEditorBase {
63
63
  * 在选区处插入附件卡片
64
64
  */
65
65
  insertAttachment(options: InsertAttachmentOptions): void;
66
+ /**
67
+ * 在选区处插入表格
68
+ */
69
+ insertTable(options?: InsertTableOptions): void;
66
70
  /**
67
71
  * 走上传管线插入本地文件
68
72
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AtriEditorElement.d.ts","sourceRoot":"","sources":["../src/AtriEditorElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACV,MAAM,SAAS,CAAC;AAIjB;;;;;GAKG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,WACmE,CAAC;AAEjG;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAS1C;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAkC;IAElD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,cAEC;IAED,iBAAiB,IAAI,IAAI,CAExB;IAED,oBAAoB,IAAI,IAAI,CAE3B;IAED,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAyB7F;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAEpD;IAED,OAAO,CAAC,UAAU;IA2ClB,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,SAAS,IAAI,UAAU,GAAG,IAAI,CAE7B;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,CAEhB;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,GAAG,IAAI,CAEvB;IAED;;OAEG;IACH,WAAW,IAAI,MAAM,CAEpB;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAEhF;IAED;;OAEG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAE7C;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAEvD;IAED;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;IAED;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAExC;IAED;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;CACF"}
1
+ {"version":3,"file":"AtriEditorElement.d.ts","sourceRoot":"","sources":["../src/AtriEditorElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACV,MAAM,SAAS,CAAC;AAIjB;;;;;GAKG;AACH,QAAA,MAAM,cAAc,EAAE,OAAO,WACmE,CAAC;AAEjG;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAS1C;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAkC;IAElD,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,cAEC;IAED,iBAAiB,IAAI,IAAI,CAExB;IAED,oBAAoB,IAAI,IAAI,CAE3B;IAED,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAyB7F;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAEpD;IAED,OAAO,CAAC,UAAU;IA2ClB,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,SAAS,IAAI,UAAU,GAAG,IAAI,CAE7B;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,CAEhB;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,GAAG,IAAI,CAEvB;IAED;;OAEG;IACH,WAAW,IAAI,MAAM,CAEpB;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAEhF;IAED;;OAEG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAE7C;IAED;;OAEG;IACH,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAEvD;IAED;;OAEG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAE9C;IAED;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3E;IAED;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAExC;IAED;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"AICommandMenu.d.ts","sourceRoot":"","sources":["../../src/ai/AICommandMenu.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,cAAc;IACd,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;CAC3C;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAAiC;IAClD,OAAO,CAAC,iBAAiB,CAAC,CAAa;IAEvC,YACE,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,GAAE,MAAY,EACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EAQ1C;IAED;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,IAAI,IAAI,IAAI,CAMX;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAOX;IAED,OAAO,CAAC,iBAAiB;YAwCX,YAAY;IAkC1B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CA6B3C;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAId;CACF"}
1
+ {"version":3,"file":"AICommandMenu.d.ts","sourceRoot":"","sources":["../../src/ai/AICommandMenu.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,cAAc;IACd,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;CAC3C;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,CAAiC;IAClD,OAAO,CAAC,iBAAiB,CAAC,CAAa;IAEvC,YACE,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,GAAE,MAAY,EACzB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EAQ1C;IAED;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,IAAI,IAAI,IAAI,CAMX;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAOX;IAED,OAAO,CAAC,iBAAiB;YAwCX,YAAY;IAmC1B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CA6B3C;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAId;CACF"}
@@ -14,6 +14,8 @@ export interface CoreEditorConfig {
14
14
  markdown?: AtriMarkdownConfig;
15
15
  /** 媒体(图片 / 附件)配置,false 时不注册任何媒体节点 */
16
16
  media?: AtriMediaConfig | false;
17
+ /** 表格节点开关,false 时不注册 Table 扩展,工具栏也不出插入按钮;默认开 */
18
+ table?: boolean;
17
19
  /**
18
20
  * 复用外部的上传运行时
19
21
  * AtriEditor 重建编辑器时会把同一个实例传进来,进行中的上传才不会丢
@@ -1 +1 @@
1
- {"version":3,"file":"CoreEditor.d.ts","sourceRoot":"","sources":["../../src/core/CoreEditor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAOxE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,qCAAqC;IACrC,KAAK,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;IAChC;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAmB;IACjC,6CAA6C;IAC7C,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAsB;IAE1C,YAAY,MAAM,EAAE,gBAAgB,EAMnC;IAED,OAAO,CAAC,YAAY;IA2GpB;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI,CAErC;IAED;;OAEG;IACH,SAAS,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,CAUhB;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,CAEhB;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,UAAO,GAAG,IAAI,CAE5D;IAED;;OAEG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,OAAO,IAAI,OAAO,CAEjB;IAED;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAEnC;IAED;;OAEG;IACH,UAAU,IAAI,OAAO,CAEpB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAEX;IAED;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnC;IAED;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAGxC;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAEd;CACF"}
1
+ {"version":3,"file":"CoreEditor.d.ts","sourceRoot":"","sources":["../../src/core/CoreEditor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAgB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAQxE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,qCAAqC;IACrC,KAAK,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;IAChC,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAmB;IACjC,6CAA6C;IAC7C,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAsB;IAE1C,YAAY,MAAM,EAAE,gBAAgB,EAMnC;IAED,OAAO,CAAC,YAAY;IAiHpB;;OAEG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI,CAErC;IAED;;OAEG;IACH,SAAS,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,CAehB;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,CAEhB;IAED;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,UAAO,GAAG,IAAI,CAE5D;IAED;;OAEG;IACH,YAAY,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,OAAO,IAAI,OAAO,CAEjB;IAED;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAEnC;IAED;;OAEG;IACH,UAAU,IAAI,OAAO,CAEpB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAEX;IAED;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnC;IAED;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAGxC;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAEd;CACF"}
@@ -1,16 +1,12 @@
1
1
  import type { AnyExtension } from '@tiptap/core';
2
- import type { AtriExtensionMeta, AtriNodeViewConfig } from '../types';
2
+ import type { AtriNodeViewConfig } from '../types';
3
3
  export declare class ExtensionManager {
4
4
  private extensions;
5
5
  private nodeViews;
6
6
  /**
7
7
  * 注册扩展
8
8
  */
9
- register(extension: AnyExtension, _meta?: AtriExtensionMeta): void;
10
- /**
11
- * 批量注册扩展
12
- */
13
- registerAll(extensions: AnyExtension[]): void;
9
+ register(extension: AnyExtension): void;
14
10
  /**
15
11
  * 注册自定义 NodeView
16
12
  */
@@ -23,10 +19,6 @@ export declare class ExtensionManager {
23
19
  * 获取扩展
24
20
  */
25
21
  get(name: string): AnyExtension | undefined;
26
- /**
27
- * 卸载扩展
28
- */
29
- unregister(name: string): boolean;
30
22
  /**
31
23
  * 获取所有扩展
32
24
  */
@@ -39,9 +31,5 @@ export declare class ExtensionManager {
39
31
  * 是否已注册
40
32
  */
41
33
  has(name: string): boolean;
42
- /**
43
- * 清空所有扩展
44
- */
45
- clear(): void;
46
34
  }
47
35
  //# sourceMappingURL=ExtensionManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionManager.d.ts","sourceRoot":"","sources":["../../src/core/ExtensionManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEtE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,SAAS,CAA8C;IAE/D;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAMjE;IAED;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAE5C;IAED;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CA6CjD;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAErD;IAED;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE1C;IAED;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhC;IAED;;OAEG;IACH,MAAM,IAAI,YAAY,EAAE,CAEvB;IAED;;OAEG;IACH,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAE9C;IAED;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAGZ;CACF"}
1
+ {"version":3,"file":"ExtensionManager.d.ts","sourceRoot":"","sources":["../../src/core/ExtensionManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,SAAS,CAA8C;IAE/D;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI,CAMtC;IAED;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAuCjD;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAErD;IAED;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE1C;IAED;;OAEG;IACH,MAAM,IAAI,YAAY,EAAE,CAEvB;IAED;;OAEG;IACH,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAE9C;IAED;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;CACF"}
@@ -5,6 +5,10 @@ export declare class I18nManager {
5
5
  * 翻译
6
6
  */
7
7
  t(key: string, options?: Record<string, unknown>): string;
8
+ /**
9
+ * 翻译,词条缺失时回退到 fallback:i18next 缺词条时原样返回 key
10
+ */
11
+ tOr(key: string, fallback: string, options?: Record<string, unknown>): string;
8
12
  /**
9
13
  * 切换语言
10
14
  */
@@ -18,4 +22,9 @@ export declare class I18nManager {
18
22
  */
19
23
  getLanguage(): string;
20
24
  }
25
+ /**
26
+ * 浮层类 UI 共用的文案回退:未注入 i18n 或词条缺失时用内置文案
27
+ * (t() 缺词条时原样返回 key,所以 tOr 已是类里的规矩,这里只补"可能压根没有 i18n"这一层)
28
+ */
29
+ export declare function tOrFallback(i18n: I18nManager | undefined, key: string, fallback: string): string;
21
30
  //# sourceMappingURL=I18nManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"I18nManager.d.ts","sourceRoot":"","sources":["../../src/core/I18nManager.ts"],"names":[],"mappings":"AAmHA,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAe;IAE/B,YAAY,IAAI,GAAE,MAAa,EAa9B;IAED;;OAEG;IACH,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAExD;IAED;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhD;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAG7D;IAED;;OAEG;IACH,WAAW,IAAI,MAAM,CAEpB;CACF"}
1
+ {"version":3,"file":"I18nManager.d.ts","sourceRoot":"","sources":["../../src/core/I18nManager.ts"],"names":[],"mappings":"AAmHA,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAe;IAE/B,YAAY,IAAI,GAAE,MAAa,EAa9B;IAED;;OAEG;IACH,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAExD;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAG5E;IAED;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhD;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAG7D;IAED;;OAEG;IACH,WAAW,IAAI,MAAM,CAEpB;CACF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhG"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * TableGridPanel - 工具栏「插入表格」的网格悬停选择器
3
+ *
4
+ * Notion 式交互:悬停高亮左上 (row × col) 区域、点击即插入。
5
+ * 与 InsertPanel 同为挂在 document.body 上的浮层,定位/关闭/主题三段走 floating-panel 公共底盘。
6
+ */
7
+ import type { Editor } from '@tiptap/core';
8
+ import { type I18nManager } from './I18nManager';
9
+ export interface TableGridPanelOptions {
10
+ editor: Editor;
11
+ i18n?: I18nManager;
12
+ /** 开合时把控制权交回工具栏:按钮的 active 与 aria-expanded 由它维护 */
13
+ onOpenChange?: (open: boolean) => void;
14
+ }
15
+ export declare class TableGridPanel {
16
+ private editor;
17
+ private i18n?;
18
+ private onOpenChange?;
19
+ private element;
20
+ private floating;
21
+ private detachDismiss;
22
+ /** 键盘高亮的当前格,-1 表示还没进入键盘导航 */
23
+ private cursorRow;
24
+ private cursorCol;
25
+ /** 单元格按 row * MAX_COLS + col 存放,方便方向键直接换算 */
26
+ private cells;
27
+ constructor(options: TableGridPanelOptions);
28
+ get isOpen(): boolean;
29
+ toggle(anchor: HTMLElement): void;
30
+ close(): void;
31
+ destroy(): void;
32
+ private t;
33
+ private build;
34
+ /**
35
+ * 高亮左上角 (rows × cols) 区域并在提示行显示尺寸;-1 清空
36
+ */
37
+ private highlight;
38
+ private insert;
39
+ private onKeyDown;
40
+ }
41
+ //# sourceMappingURL=TableGridPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableGridPanel.d.ts","sourceRoot":"","sources":["../../src/core/TableGridPanel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAO3C,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAMD,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,YAAY,CAAC,CAA0B;IAE/C,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAA6B;IAClD,6BAA6B;IAC7B,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,SAAS,CAAM;IACvB,6CAA6C;IAC7C,OAAO,CAAC,KAAK,CAAqB;IAElC,YAAY,OAAO,EAAE,qBAAqB,EAIzC;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAYhC;IAED,KAAK,IAAI,IAAI,CAYZ;IAED,OAAO,IAAI,IAAI,CAEd;IAED,OAAO,CAAC,CAAC;IAIT,OAAO,CAAC,KAAK;IAyCb;;OAEG;IACH,OAAO,CAAC,SAAS;IAsBjB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,SAAS;CA0BlB"}
@@ -1,19 +1,16 @@
1
1
  /**
2
2
  * ThemeManager - 主题管理
3
3
  */
4
- export type ThemeType = 'light' | 'dark' | string;
4
+ /** 内置亮/暗两套,带字面量提示;仍需允许任意自定义主题名 */
5
+ export type ThemeType = 'light' | 'dark' | (string & {});
5
6
  export declare class ThemeManager {
6
7
  private container;
7
8
  private currentTheme;
8
9
  constructor(container: HTMLElement, theme?: ThemeType);
9
10
  /**
10
- * 应用当前主题
11
+ * 应用当前主题:内置主题与自定义主题走同一条 class 规则,只是名字不同
11
12
  */
12
13
  private applyTheme;
13
- /**
14
- * 获取当前主题
15
- */
16
- getTheme(): ThemeType;
17
14
  /**
18
15
  * 设置主题
19
16
  */
@@ -22,9 +19,5 @@ export declare class ThemeManager {
22
19
  * 切换亮/暗主题
23
20
  */
24
21
  toggleTheme(): void;
25
- /**
26
- * 是否为暗色主题
27
- */
28
- isDark(): boolean;
29
22
  }
30
23
  //# sourceMappingURL=ThemeManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../../src/core/ThemeManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAElD,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,YAAY,CAAY;IAEhC,YAAY,SAAS,EAAE,WAAW,EAAE,KAAK,GAAE,SAAmB,EAI7D;IAED;;OAEG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,QAAQ,IAAI,SAAS,CAEpB;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAG/B;IAED;;OAEG;IACH,WAAW,IAAI,IAAI,CASlB;IAED;;OAEG;IACH,MAAM,IAAI,OAAO,CAEhB;CACF"}
1
+ {"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../../src/core/ThemeManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,kCAAkC;AAClC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEzD,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,YAAY,CAAY;IAEhC,YAAY,SAAS,EAAE,WAAW,EAAE,KAAK,GAAE,SAAmB,EAI7D;IAED;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAG/B;IAED;;OAEG;IACH,WAAW,IAAI,IAAI,CASlB;CACF"}
@@ -23,6 +23,7 @@ export declare class ToolbarManager {
23
23
  private itemDefs;
24
24
  private createdElements;
25
25
  private panel;
26
+ private tablePanel;
26
27
  constructor(editor: Editor, container: HTMLElement, config?: ToolbarConfig, i18n?: I18nManager, mediaRuntime?: MediaRuntime | null);
27
28
  /**
28
29
  * 把浮动工具栏的按钮渲染进给定的元素
@@ -36,6 +37,12 @@ export declare class ToolbarManager {
36
37
  */
37
38
  private get insertPanel();
38
39
  private openInsert;
40
+ /**
41
+ * 表格网格面板按需创建:没点开过就不该有一个实例挂在编辑器上
42
+ */
43
+ private get gridPanel();
44
+ /** 内置表格真可用才摆按钮:table:false 未注册、或被用户同名扩展顶掉都不摆(判定见 canInsertTable) */
45
+ private get tableExtensionRegistered();
39
46
  /**
40
47
  * 创建工具栏 DOM - 直接将按钮插入 container
41
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarManager.d.ts","sourceRoot":"","sources":["../../src/core/ToolbarManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AA6CjD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,mBAAmB,CAAC,CAAa;IACzC,0CAA0C;IAC1C,OAAO,CAAC,OAAO,CAAkD;IACjE,2CAA2C;IAC3C,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,KAAK,CAA4B;IAEzC,YACE,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,WAAW,EACtB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,WAAW,EAClB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,EAYnC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAoC9C;IAED;;OAEG;IACH,OAAO,KAAK,WAAW,GAUtB;IAED,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiDxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,YAAY;IAmDpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAiBrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAsOvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;OAEG;IACH,OAAO,IAAI,IAAI,CAWd;CACF"}
1
+ {"version":3,"file":"ToolbarManager.d.ts","sourceRoot":"","sources":["../../src/core/ToolbarManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAmB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAgDjD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,mBAAmB,CAAC,CAAa;IACzC,0CAA0C;IAC1C,OAAO,CAAC,OAAO,CAAkD;IACjE,2CAA2C;IAC3C,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,UAAU,CAA+B;IAEjD,YACE,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,WAAW,EACtB,MAAM,CAAC,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,WAAW,EAClB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,EAYnC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAoC9C;IAED;;OAEG;IACH,OAAO,KAAK,WAAW,GAUtB;IAED,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,KAAK,SAAS,GASpB;IAED,oEAAoE;IACpE,OAAO,KAAK,wBAAwB,GAEnC;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiDxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,YAAY;IA4CpB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAmPvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;OAEG;IACH,OAAO,IAAI,IAAI,CAad;CACF"}
@@ -0,0 +1,20 @@
1
+ export interface FloatingPanel {
2
+ /** 停止位置跟随;重复调用无副作用 */
3
+ stop: () => void;
4
+ }
5
+ /**
6
+ * 把面板锚定到 trigger 下方并持续跟随。
7
+ * isCurrent 用于在异步计算间隙确认面板还没被关掉/换掉——关掉的实例不该再写样式
8
+ */
9
+ export declare function positionPanel(trigger: HTMLElement, panel: HTMLElement, isCurrent: () => boolean): FloatingPanel;
10
+ /**
11
+ * 点外面与 Escape 关闭;trigger 本身交给调用方的 toggle,
12
+ * 否则关了又立刻被这次点击重开
13
+ */
14
+ export declare function listenPanelDismiss(trigger: HTMLElement, panel: HTMLElement, onClose: () => void): () => void;
15
+ /**
16
+ * 主题变量写在 .atri-editor 上,浮层挂在 body 上够不着,只能把主题类复制一份。
17
+ * 面板此刻往往还没入 DOM,closest 搜不到编辑器根,所以源元素必须由编辑器侧给(如 view.dom)
18
+ */
19
+ export declare function copyThemeClasses(source: Element | null, panel: HTMLElement): void;
20
+ //# sourceMappingURL=floating-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-panel.d.ts","sourceRoot":"","sources":["../../src/core/floating-panel.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,sBAAsB;IACtB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,OAAO,GACvB,aAAa,CAgCf;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,IAAI,GAClB,MAAM,IAAI,CAoBZ;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAIjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/core/icons.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4DxC,CAAC"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/core/icons.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA+DxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Attachment.d.ts","sourceRoot":"","sources":["../../src/extensions/Attachment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,IAAI,EAAuC,MAAM,cAAc,CAAC;AASzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAS/E,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,UAAU,EAAE;YACV,mBAAmB;YACnB,aAAa,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,UAAU,CAAC;YAChE,gCAAgC;YAChC,oBAAoB,EAAE,CAAC,OAAO,EAAE;gBAAE,OAAO,EAAE,qBAAqB,CAAA;aAAE,KAAK,UAAU,CAAC;YAClF,wBAAwB;YACxB,uBAAuB,EAAE,MAAM,UAAU,CAAC;SAC3C,CAAC;KACH;CACF;AAwED,eAAO,MAAM,UAAU,gBAwLrB,CAAC"}
1
+ {"version":3,"file":"Attachment.d.ts","sourceRoot":"","sources":["../../src/extensions/Attachment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AASrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAU/E,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,UAAU,EAAE;YACV,mBAAmB;YACnB,aAAa,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,UAAU,CAAC;YAChE,gCAAgC;YAChC,oBAAoB,EAAE,CAAC,OAAO,EAAE;gBAAE,OAAO,EAAE,qBAAqB,CAAA;aAAE,KAAK,UAAU,CAAC;YAClF,wBAAwB;YACxB,uBAAuB,EAAE,MAAM,UAAU,CAAC;SAC3C,CAAC;KACH;CACF;AAqED,eAAO,MAAM,UAAU,gBAsJrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentLink.d.ts","sourceRoot":"","sources":["../../src/extensions/AttachmentLink.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,IAAI,EAAuC,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAIxD,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,cAAc,EAAE;YACd,qBAAqB;YACrB,iBAAiB,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,UAAU,CAAC;SACrE,CAAC;KACH;CACF;AAQD,eAAO,MAAM,cAAc,gBAiGzB,CAAC"}
1
+ {"version":3,"file":"AttachmentLink.d.ts","sourceRoot":"","sources":["../../src/extensions/AttachmentLink.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAIxD,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,cAAc,EAAE;YACd,qBAAqB;YACrB,iBAAiB,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,UAAU,CAAC;SACrE,CAAC;KACH;CACF;AAED,eAAO,MAAM,cAAc,gBA6DzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MediaFiles.d.ts","sourceRoot":"","sources":["../../src/extensions/MediaFiles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9B;AAqBD,eAAO,MAAM,UAAU,mCAwCrB,CAAC"}
1
+ {"version":3,"file":"MediaFiles.d.ts","sourceRoot":"","sources":["../../src/extensions/MediaFiles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9B;AAeD,eAAO,MAAM,UAAU,mCAwCrB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 附件两类节点(卡片 file / 行内链接 filelink)的 Markdown 三件套工厂。
3
+ *
4
+ * tokenize/parse/render 的结构完全相同,只差 token 名、语法层级与落点节点名,
5
+ * 收拢成一份实现,避免两处手抄漂移。
6
+ */
7
+ import type { JSONContent, MarkdownParseHelpers, MarkdownParseResult, MarkdownRendererHelpers, MarkdownToken, MarkdownTokenizer, RenderContext } from '@tiptap/core';
8
+ export interface AttachmentMarkdownSpec {
9
+ markdownTokenName: string;
10
+ markdownTokenizer: MarkdownTokenizer;
11
+ parseMarkdown: (token: MarkdownToken, helpers: MarkdownParseHelpers) => MarkdownParseResult;
12
+ renderMarkdown: (node: JSONContent, helpers: MarkdownRendererHelpers, ctx: RenderContext) => string;
13
+ }
14
+ export declare function makeAttachmentMarkdown(options: {
15
+ /** token 名,语法前缀按 `!<name>[` 拼出:file / filelink */
16
+ name: string;
17
+ /** 语法层级:卡片是块级(要求行尾收束),行内链接是 inline */
18
+ level: 'block' | 'inline';
19
+ /** Markdown 解析落点节点名:attachment / attachmentLink */
20
+ nodeName: string;
21
+ }): AttachmentMarkdownSpec;
22
+ //# sourceMappingURL=attachment-markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment-markdown.d.ts","sourceRoot":"","sources":["../../src/extensions/attachment-markdown.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACd,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,aAAa,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB,KAAK,mBAAmB,CAAC;IAC5F,cAAc,EAAE,CACd,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,uBAAuB,EAChC,GAAG,EAAE,aAAa,KACf,MAAM,CAAC;CACb;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,sBAAsB,CAqDzB"}
package/dist/index.d.ts CHANGED
@@ -9,7 +9,6 @@
9
9
  export { AtriEditor } from './AtriEditor';
10
10
  export { AtriEditorElement, registerAtriElement } from './AtriEditorElement';
11
11
  export * from './types';
12
- export type { AtriNodeViewConfig, NodeViewAttribute } from './types/extension';
13
12
  export { CoreEditor, MarkdownService, ThemeManager, I18nManager, ExtensionManager, ToolbarManager, } from './core';
14
13
  export type { CoreEditorConfig, ThemeType } from './core';
15
14
  export { AtriImage } from './extensions/AtriImage';
@@ -19,5 +18,5 @@ export { MediaRuntime } from './media/MediaRuntime';
19
18
  export type { MediaState, MediaStatus } from './media/MediaRuntime';
20
19
  export { AIService, AIInterceptor, AICommandMenuManager } from './ai';
21
20
  export type { AICommandMenuOptions } from './ai';
22
- export { resolveElement, createContainer, isBrowser, getSelectedText, getCursorContext, getDocumentText, simpleMarkdownToHtml, simpleHtmlToMarkdown, } from './utils';
21
+ export { resolveElement, createContainer, getSelectedText, getCursorContext, getDocumentText, simpleMarkdownToHtml, simpleHtmlToMarkdown, } from './utils';
23
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG7E,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG/E,OAAO,EACL,UAAU,EACV,eAAe,EACf,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,cAAc,GACf,MAAM,QAAQ,CAAC;AAEhB,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAC;AAEtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAC;AAGjD,OAAO,EACL,cAAc,EACd,eAAe,EACf,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG7E,cAAc,SAAS,CAAC;AAGxB,OAAO,EACL,UAAU,EACV,eAAe,EACf,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,cAAc,GACf,MAAM,QAAQ,CAAC;AAEhB,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAC;AAEtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,MAAM,CAAC;AAGjD,OAAO,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}