@atri-editor/core 0.2.0 → 0.4.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 (77) hide show
  1. package/CHANGELOG.md +175 -0
  2. package/README.md +1 -1
  3. package/dist/AtriEditor.d.ts +11 -1
  4. package/dist/AtriEditor.d.ts.map +1 -1
  5. package/dist/AtriEditorElement.d.ts +14 -1
  6. package/dist/AtriEditorElement.d.ts.map +1 -1
  7. package/dist/ai/AICommandMenu.d.ts +1 -0
  8. package/dist/ai/AICommandMenu.d.ts.map +1 -1
  9. package/dist/ai/AIInterceptor.d.ts.map +1 -1
  10. package/dist/ai/AIService.d.ts.map +1 -1
  11. package/dist/core/CoreEditor.d.ts +14 -3
  12. package/dist/core/CoreEditor.d.ts.map +1 -1
  13. package/dist/core/I18nManager.d.ts +25 -0
  14. package/dist/core/I18nManager.d.ts.map +1 -1
  15. package/dist/core/LinkPanel.d.ts +74 -0
  16. package/dist/core/LinkPanel.d.ts.map +1 -0
  17. package/dist/core/StyleOptionPanel.d.ts +73 -0
  18. package/dist/core/StyleOptionPanel.d.ts.map +1 -0
  19. package/dist/core/TableGridPanel.d.ts +1 -0
  20. package/dist/core/TableGridPanel.d.ts.map +1 -1
  21. package/dist/core/TableMenu.d.ts +68 -0
  22. package/dist/core/TableMenu.d.ts.map +1 -0
  23. package/dist/core/ThemeManager.d.ts.map +1 -1
  24. package/dist/core/ToolbarManager.d.ts +58 -3
  25. package/dist/core/ToolbarManager.d.ts.map +1 -1
  26. package/dist/core/ToolbarMenuPanel.d.ts +58 -0
  27. package/dist/core/ToolbarMenuPanel.d.ts.map +1 -0
  28. package/dist/core/bubble-toolbar.d.ts +8 -2
  29. package/dist/core/bubble-toolbar.d.ts.map +1 -1
  30. package/dist/core/floating-panel.d.ts +24 -1
  31. package/dist/core/floating-panel.d.ts.map +1 -1
  32. package/dist/core/icons.d.ts.map +1 -1
  33. package/dist/core/style-presets.d.ts +47 -0
  34. package/dist/core/style-presets.d.ts.map +1 -0
  35. package/dist/extensions/Attachment.d.ts.map +1 -1
  36. package/dist/extensions/AttachmentLink.d.ts.map +1 -1
  37. package/dist/extensions/attachment-attrs.d.ts.map +1 -1
  38. package/dist/extensions/formatting.d.ts +24 -0
  39. package/dist/extensions/formatting.d.ts.map +1 -0
  40. package/dist/extensions/markdown-inline-html.d.ts +73 -0
  41. package/dist/extensions/markdown-inline-html.d.ts.map +1 -0
  42. package/dist/extensions/table.d.ts +23 -0
  43. package/dist/extensions/table.d.ts.map +1 -0
  44. package/dist/index.d.ts +2 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +2025 -188
  47. package/dist/index.js.map +1 -1
  48. package/dist/media/InsertPanel.d.ts +1 -0
  49. package/dist/media/InsertPanel.d.ts.map +1 -1
  50. package/dist/media/MediaRuntime.d.ts +13 -0
  51. package/dist/media/MediaRuntime.d.ts.map +1 -1
  52. package/dist/media/MediaStatusStrip.d.ts.map +1 -1
  53. package/dist/media/Uploader.d.ts.map +1 -1
  54. package/dist/style.css +311 -4
  55. package/dist/types/ai.d.ts +5 -0
  56. package/dist/types/ai.d.ts.map +1 -1
  57. package/dist/types/editor.d.ts +49 -3
  58. package/dist/types/editor.d.ts.map +1 -1
  59. package/dist/types/markdown.d.ts +14 -0
  60. package/dist/types/markdown.d.ts.map +1 -1
  61. package/dist/types/media.d.ts +5 -0
  62. package/dist/types/media.d.ts.map +1 -1
  63. package/dist/utils/escape.d.ts +30 -0
  64. package/dist/utils/escape.d.ts.map +1 -0
  65. package/dist/utils/formatting.d.ts +18 -0
  66. package/dist/utils/formatting.d.ts.map +1 -0
  67. package/dist/utils/index.d.ts +3 -0
  68. package/dist/utils/index.d.ts.map +1 -1
  69. package/dist/utils/markdown.d.ts +5 -3
  70. package/dist/utils/markdown.d.ts.map +1 -1
  71. package/dist/utils/safe-call.d.ts +15 -0
  72. package/dist/utils/safe-call.d.ts.map +1 -0
  73. package/dist/utils/table.d.ts +11 -4
  74. package/dist/utils/table.d.ts.map +1 -1
  75. package/dist/utils/url.d.ts +20 -0
  76. package/dist/utils/url.d.ts.map +1 -0
  77. package/package.json +7 -1
@@ -27,6 +27,7 @@ export declare class InsertPanel {
27
27
  private mode;
28
28
  private floating;
29
29
  private detachDismiss;
30
+ private detachTheme;
30
31
  private labelled;
31
32
  constructor(options: InsertPanelOptions);
32
33
  get openMode(): InsertPanelMode | null;
@@ -1 +1 @@
1
- {"version":3,"file":"InsertPanel.d.ts","sourceRoot":"","sources":["../../src/media/InsertPanel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAO3C,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,YAAY,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;CACvD;AAcD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAyC;IAC9D,OAAO,CAAC,mBAAmB,CAAC,CAAa;IAEzC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,IAAI,CAAgC;IAC5C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAyB;IAEzC,YAAY,OAAO,EAAE,kBAAkB,EAOtC;IAED,IAAI,QAAQ,IAAI,eAAe,GAAG,IAAI,CAErC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAYvD;IAED,KAAK,IAAI,IAAI,CAYZ;IAED,OAAO,IAAI,IAAI,CAId;IAED,OAAO,CAAC,CAAC;IAIT;;OAEG;IACH,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,KAAK;IAqFb;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,QAAQ;IAMhB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAKzB"}
1
+ {"version":3,"file":"InsertPanel.d.ts","sourceRoot":"","sources":["../../src/media/InsertPanel.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAO3C,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,YAAY,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;CACvD;AAcD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAyC;IAC9D,OAAO,CAAC,mBAAmB,CAAC,CAAa;IAEzC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,IAAI,CAAgC;IAC5C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,QAAQ,CAAyB;IAEzC,YAAY,OAAO,EAAE,kBAAkB,EAOtC;IAED,IAAI,QAAQ,IAAI,eAAe,GAAG,IAAI,CAErC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAYvD;IAED,KAAK,IAAI,IAAI,CAcZ;IAED,OAAO,IAAI,IAAI,CAId;IAED,OAAO,CAAC,CAAC;IAIT;;OAEG;IACH,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,KAAK;IAqFb;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,QAAQ;IAMhB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAKzB"}
@@ -5,6 +5,7 @@
5
5
  * 所以它由 AtriEditor 持有一个实例,每次重建通过 bind() 换绑到新的 Editor。
6
6
  */
7
7
  import type { Editor } from '@tiptap/core';
8
+ import type { Node as PmNode } from '@tiptap/pm/model';
8
9
  import type { AtriMediaConfig, MediaKind } from '../types';
9
10
  /** 节点瞬时态,写进 data-atri-upload-status */
10
11
  export type MediaStatus = 'uploading' | 'error';
@@ -110,4 +111,16 @@ export declare class MediaRuntime {
110
111
  private reject;
111
112
  private emit;
112
113
  }
114
+ /**
115
+ * 找任务对应的节点位置。
116
+ *
117
+ * 预览地址这条兜底必须要求 previewUrl 非空:revokePreviewUrl 会把它置成 null,
118
+ * 而 `node.attrs.src === null` 对任何还没落地地址的媒体节点都成立,
119
+ * 于是进度与状态会写到第一张不相干的卡片上,真正的卡片反而永不更新。
120
+ * uploadId 唯一且稳定,所以先按它找,找不到才退到预览地址。
121
+ */
122
+ export declare function findTaskPosition(doc: PmNode, task: {
123
+ id: string;
124
+ previewUrl: string | null;
125
+ }): number | null;
113
126
  //# sourceMappingURL=MediaRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaRuntime.d.ts","sourceRoot":"","sources":["../../src/media/MediaRuntime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EAIV,MAAM,UAAU,CAAC;AAKlB,uCAAuC;AACvC,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;AAEhD,wBAAwB;AACxB,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAgCD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,QAAQ,CAAK;IAErB,YAAY,MAAM,GAAE,eAAoB,EAGvC;IAED;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CASzB;IAED;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC3F;IAED;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAI7C;IAED;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAM3B;IAED;;;;;;OAMG;IACH,iBAAiB,IAAI,OAAO,CAE3B;IAED,QAAQ,IAAI,UAAU,CAerB;IAED,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI,CAM3D;IAED,OAAO,IAAI,IAAI,CAQd;IAED;;;OAGG;YACW,YAAY;IAoB1B,OAAO,CAAC,UAAU;IAelB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAyBhB;;;;OAIG;IACH,OAAO,CAAC,cAAc;YAWR,WAAW;IA4CzB;;;;;OAKG;YACW,kBAAkB;IAsBhC,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,KAAK;IAiCb;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;OAEG;IACH,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,IAAI;CAKb"}
1
+ {"version":3,"file":"MediaRuntime.d.ts","sourceRoot":"","sources":["../../src/media/MediaRuntime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EAIV,MAAM,UAAU,CAAC;AAMlB,uCAAuC;AACvC,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;AAEhD,wBAAwB;AACxB,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAgCD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,QAAQ,CAAK;IAErB,YAAY,MAAM,GAAE,eAAoB,EAGvC;IAED;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CASzB;IAED;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC3F;IAED;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAI7C;IAED;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAM3B;IAED;;;;;;OAMG;IACH,iBAAiB,IAAI,OAAO,CAE3B;IAED,QAAQ,IAAI,UAAU,CAerB;IAED,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI,CAM3D;IAED,OAAO,IAAI,IAAI,CASd;IAED;;;OAGG;YACW,YAAY;IAoB1B,OAAO,CAAC,UAAU;IAelB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAyBhB;;;;OAIG;IACH,OAAO,CAAC,cAAc;YAWR,WAAW;IA4CzB;;;;;OAKG;YACW,kBAAkB;IAsBhC,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,KAAK;IAiCb;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;OAEG;IACH,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,IAAI;CAKb;AAMD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC9C,MAAM,GAAG,IAAI,CAYf"}
@@ -1 +1 @@
1
- {"version":3,"file":"MediaStatusStrip.d.ts","sourceRoot":"","sources":["../../src/media/MediaStatusStrip.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAS/D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,mBAAmB,CAAC,CAAa;IAEzC,YAAY,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,EAkC5E;IAED,OAAO,IAAI,IAAI,CAId;IAED,OAAO,CAAC,MAAM;CAwBf"}
1
+ {"version":3,"file":"MediaStatusStrip.d.ts","sourceRoot":"","sources":["../../src/media/MediaStatusStrip.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAS/D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,mBAAmB,CAAC,CAAa;IAEzC,YAAY,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,EAwC5E;IAED,OAAO,IAAI,IAAI,CAId;IAED,OAAO,CAAC,MAAM;CAwBf"}
@@ -1 +1 @@
1
- {"version":3,"file":"Uploader.d.ts","sourceRoot":"","sources":["../../src/media/Uploader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7F,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACnE;AA0FD,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,CAUzF"}
1
+ {"version":3,"file":"Uploader.d.ts","sourceRoot":"","sources":["../../src/media/Uploader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7F,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACnE;AAgID,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,CAUzF"}
package/dist/style.css CHANGED
@@ -280,7 +280,7 @@
280
280
  color: var(--atri-bg-color);
281
281
  }
282
282
 
283
- .atri-table-panel {
283
+ .atri-table-panel, .atri-table-menu {
284
284
  position: fixed;
285
285
  z-index: 1000;
286
286
  padding: 12px;
@@ -293,12 +293,14 @@
293
293
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
294
294
  box-sizing: border-box;
295
295
  }
296
- .atri-table-panel *,
296
+ .atri-table-panel *, .atri-table-menu *,
297
297
  .atri-table-panel *::before,
298
- .atri-table-panel *::after {
298
+ .atri-table-menu *::before,
299
+ .atri-table-panel *::after,
300
+ .atri-table-menu *::after {
299
301
  box-sizing: border-box;
300
302
  }
301
- .atri-table-panel:focus {
303
+ .atri-table-panel:focus, .atri-table-menu:focus {
302
304
  outline: none;
303
305
  }
304
306
 
@@ -328,6 +330,283 @@
328
330
  text-align: center;
329
331
  }
330
332
 
333
+ .atri-table-menu {
334
+ display: flex;
335
+ align-items: center;
336
+ gap: 2px;
337
+ padding: 4px;
338
+ }
339
+
340
+ .atri-table-menu-separator {
341
+ width: 1px;
342
+ height: 20px;
343
+ margin: 0 2px;
344
+ background-color: var(--atri-border-color);
345
+ }
346
+
347
+ .atri-link-panel {
348
+ position: fixed;
349
+ z-index: 1000;
350
+ display: flex;
351
+ flex-direction: column;
352
+ gap: 8px;
353
+ min-width: 280px;
354
+ padding: 12px;
355
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
356
+ font-size: 14px;
357
+ color: var(--atri-text-color);
358
+ background-color: var(--atri-bg-color);
359
+ border: 1px solid var(--atri-border-color);
360
+ border-radius: 8px;
361
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
362
+ box-sizing: border-box;
363
+ }
364
+ .atri-link-panel *,
365
+ .atri-link-panel *::before,
366
+ .atri-link-panel *::after {
367
+ box-sizing: border-box;
368
+ }
369
+ .atri-link-panel input[type=url] {
370
+ width: 100%;
371
+ padding: 4px 8px;
372
+ font-family: inherit;
373
+ font-size: inherit;
374
+ color: var(--atri-text-color);
375
+ background-color: var(--atri-bg-color);
376
+ border: 1px solid var(--atri-border-color);
377
+ border-radius: 4px;
378
+ transition: all 0.2s ease;
379
+ }
380
+ .atri-link-panel input[type=url]::placeholder {
381
+ color: var(--atri-text-color-disabled);
382
+ }
383
+ .atri-link-panel input[type=url]:focus {
384
+ outline: none;
385
+ border-color: var(--atri-border-color-hover);
386
+ }
387
+
388
+ .atri-link-panel-target {
389
+ display: flex;
390
+ align-items: center;
391
+ gap: 4px;
392
+ color: var(--atri-text-color-secondary);
393
+ cursor: pointer;
394
+ }
395
+
396
+ .atri-link-panel-actions {
397
+ display: flex;
398
+ justify-content: flex-end;
399
+ gap: 8px;
400
+ }
401
+
402
+ .atri-link-panel-apply,
403
+ .atri-link-panel-remove {
404
+ padding: 4px 12px;
405
+ font-family: inherit;
406
+ font-size: 12px;
407
+ border: 1px solid var(--atri-border-color);
408
+ border-radius: 4px;
409
+ background-color: var(--atri-bg-color-secondary);
410
+ color: var(--atri-text-color);
411
+ cursor: pointer;
412
+ transition: all 0.2s ease;
413
+ }
414
+ .atri-link-panel-apply:hover,
415
+ .atri-link-panel-remove:hover {
416
+ background-color: var(--atri-bg-color-hover);
417
+ }
418
+
419
+ .atri-link-panel-apply {
420
+ border-color: var(--atri-color-primary);
421
+ background-color: var(--atri-color-primary);
422
+ color: var(--atri-bg-color);
423
+ }
424
+ .atri-link-panel-apply:hover {
425
+ background-color: var(--atri-color-primary-hover);
426
+ border-color: var(--atri-color-primary-hover);
427
+ }
428
+
429
+ .atri-style-panel {
430
+ position: fixed;
431
+ z-index: 1000;
432
+ padding: 12px;
433
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
434
+ font-size: 12px;
435
+ color: var(--atri-text-color);
436
+ background-color: var(--atri-bg-color);
437
+ border: 1px solid var(--atri-border-color);
438
+ border-radius: 8px;
439
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
440
+ box-sizing: border-box;
441
+ }
442
+ .atri-style-panel *,
443
+ .atri-style-panel *::before,
444
+ .atri-style-panel *::after {
445
+ box-sizing: border-box;
446
+ }
447
+ .atri-style-panel:focus {
448
+ outline: none;
449
+ }
450
+
451
+ .atri-style-panel-body {
452
+ display: flex;
453
+ flex-direction: column;
454
+ gap: 2px;
455
+ }
456
+
457
+ .atri-style-panel--grid .atri-style-panel-body {
458
+ display: grid;
459
+ grid-template-columns: repeat(6, 24px);
460
+ gap: 4px;
461
+ }
462
+
463
+ .atri-style-panel-row {
464
+ display: flex;
465
+ align-items: center;
466
+ gap: 8px;
467
+ min-width: 120px;
468
+ padding: 4px 6px;
469
+ font-family: inherit;
470
+ font-size: inherit;
471
+ color: inherit;
472
+ text-align: left;
473
+ background: none;
474
+ border: none;
475
+ border-radius: 4px;
476
+ cursor: pointer;
477
+ transition: all 0.2s ease;
478
+ }
479
+ .atri-style-panel-row:hover, .atri-style-panel-row:focus-visible {
480
+ background-color: var(--atri-bg-color-hover);
481
+ }
482
+ .atri-style-panel-row:focus-visible {
483
+ outline: 1px solid var(--atri-border-color-hover);
484
+ outline-offset: 1px;
485
+ }
486
+
487
+ .atri-style-panel--grid .atri-style-panel-row {
488
+ min-width: 0;
489
+ padding: 0;
490
+ justify-content: center;
491
+ }
492
+
493
+ .atri-style-panel-row--swatch-only .atri-style-panel-text {
494
+ display: none;
495
+ }
496
+
497
+ .atri-style-panel-swatch {
498
+ width: 22px;
499
+ height: 22px;
500
+ border: 1px solid var(--atri-border-color);
501
+ border-radius: 4px;
502
+ flex: none;
503
+ }
504
+
505
+ .atri-style-panel-text {
506
+ overflow: hidden;
507
+ white-space: nowrap;
508
+ text-overflow: ellipsis;
509
+ }
510
+
511
+ .atri-style-panel-row--clear {
512
+ margin-top: 2px;
513
+ color: var(--atri-text-color-secondary);
514
+ border-top: 1px solid var(--atri-border-color);
515
+ border-radius: 0;
516
+ }
517
+
518
+ .atri-style-panel--grid .atri-style-panel-row--clear,
519
+ .atri-style-panel-custom {
520
+ grid-column: 1/-1;
521
+ }
522
+
523
+ .atri-style-panel-custom {
524
+ display: flex;
525
+ align-items: center;
526
+ gap: 8px;
527
+ margin-top: 8px;
528
+ padding-top: 8px;
529
+ color: var(--atri-text-color-secondary);
530
+ border-top: 1px solid var(--atri-border-color);
531
+ cursor: pointer;
532
+ }
533
+
534
+ .atri-style-panel-custom-input {
535
+ width: 28px;
536
+ height: 22px;
537
+ padding: 0;
538
+ background: none;
539
+ border: 1px solid var(--atri-border-color);
540
+ border-radius: 4px;
541
+ cursor: pointer;
542
+ }
543
+
544
+ .atri-editor-toolbar-btn--menu {
545
+ width: auto;
546
+ min-width: 32px;
547
+ padding: 0 4px;
548
+ gap: 2px;
549
+ }
550
+ .atri-editor-toolbar-btn--menu svg:last-child {
551
+ width: 12px;
552
+ height: 12px;
553
+ opacity: 0.65;
554
+ }
555
+
556
+ .atri-toolbar-menu {
557
+ position: fixed;
558
+ z-index: 1000;
559
+ min-width: 140px;
560
+ padding: 4px;
561
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
562
+ font-size: 12px;
563
+ color: var(--atri-text-color);
564
+ background-color: var(--atri-bg-color);
565
+ border: 1px solid var(--atri-border-color);
566
+ border-radius: 8px;
567
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
568
+ box-sizing: border-box;
569
+ }
570
+ .atri-toolbar-menu *,
571
+ .atri-toolbar-menu *::before,
572
+ .atri-toolbar-menu *::after {
573
+ box-sizing: border-box;
574
+ }
575
+ .atri-toolbar-menu:focus {
576
+ outline: none;
577
+ }
578
+
579
+ .atri-toolbar-menu-item {
580
+ display: block;
581
+ width: 100%;
582
+ padding: 5px 8px;
583
+ font-family: inherit;
584
+ font-size: inherit;
585
+ color: inherit;
586
+ text-align: left;
587
+ background: none;
588
+ border: none;
589
+ border-radius: 4px;
590
+ cursor: pointer;
591
+ transition: all 0.2s ease;
592
+ }
593
+ .atri-toolbar-menu-item:hover, .atri-toolbar-menu-item:focus-visible {
594
+ background-color: var(--atri-bg-color-hover);
595
+ }
596
+ .atri-toolbar-menu-item:focus-visible {
597
+ outline: 1px solid var(--atri-border-color-hover);
598
+ outline-offset: -1px;
599
+ }
600
+ .atri-toolbar-menu-item.active {
601
+ color: var(--atri-color-primary);
602
+ font-weight: 600;
603
+ }
604
+ .atri-toolbar-menu-item:disabled {
605
+ color: var(--atri-text-color-disabled);
606
+ cursor: not-allowed;
607
+ opacity: 0.6;
608
+ }
609
+
331
610
  :root {
332
611
  --atri-color-primary: #1890ff;
333
612
  --atri-color-primary-hover: #40a9ff;
@@ -432,11 +711,16 @@
432
711
  background-color: var(--atri-bg-color);
433
712
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
434
713
  z-index: 1000;
714
+ max-width: min(90vw, 320px);
715
+ flex-wrap: wrap;
716
+ justify-content: center;
435
717
  }
436
718
  .atri-editor-bubble-toolbar .atri-editor-bubble-group {
437
719
  display: none;
438
720
  align-items: center;
439
721
  gap: 2px;
722
+ flex-wrap: wrap;
723
+ justify-content: center;
440
724
  }
441
725
 
442
726
  .atri-editor-bubble-toolbar[data-atri-bubble-mode=text] .atri-editor-bubble-group[data-atri-bubble-group=text],
@@ -526,6 +810,11 @@
526
810
  background: none;
527
811
  padding: 0;
528
812
  }
813
+ .atri-editor-content hr {
814
+ border: none;
815
+ border-top: 1px solid var(--atri-border-color);
816
+ margin: 1em 0;
817
+ }
529
818
  .atri-editor-content a {
530
819
  color: var(--atri-color-primary);
531
820
  text-decoration: none;
@@ -567,6 +856,24 @@
567
856
  pointer-events: none;
568
857
  }
569
858
 
859
+ .atri-editor-content .tableWrapper {
860
+ overflow-x: auto;
861
+ }
862
+
863
+ .atri-editor-content .column-resize-handle {
864
+ position: absolute;
865
+ top: 0;
866
+ bottom: 0;
867
+ right: -2px;
868
+ width: 4px;
869
+ background-color: var(--atri-color-primary);
870
+ pointer-events: none;
871
+ }
872
+
873
+ .atri-editor-content.resize-cursor {
874
+ cursor: col-resize;
875
+ }
876
+
570
877
  .atri-editor-content ul[data-type=taskList] {
571
878
  list-style: none;
572
879
  padding-left: 0;
@@ -74,5 +74,10 @@ export interface AtriAIConfig {
74
74
  autoTranslateMarkdownToHTML?: boolean;
75
75
  /** 全局错误处理 */
76
76
  onError?: (error: Error, context: AIRequestContext) => void;
77
+ /**
78
+ * 等待 requestEndpoint 的超时毫秒数,缺省不超时(长生成是合法场景)。
79
+ * 超时只让库停止等待并丢弃随后到达的结果——请求由宿主发出,库没有取消它的能力
80
+ */
81
+ timeout?: number;
77
82
  }
78
83
  //# sourceMappingURL=ai.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/types/ai.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC5C,WAAW;IACX,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,KAAK,CAAC;IACrE,oBAAoB;IACpB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,KAAK,UAAU,CAAC;IAC5E,+BAA+B;IAC/B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC;IACtE,YAAY;IACZ,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc;IACd,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,eAAe,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACpE,WAAW;IACX,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,4CAA4C;IAC5C,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,aAAa;IACb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC7D"}
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/types/ai.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC5C,WAAW;IACX,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,aAAa;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,KAAK,CAAC;IACrE,oBAAoB;IACpB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,KAAK,UAAU,CAAC;IAC5E,+BAA+B;IAC/B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC;IACtE,YAAY;IACZ,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc;IACd,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,eAAe,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACpE,WAAW;IACX,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,4CAA4C;IAC5C,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,aAAa;IACb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5D;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -32,7 +32,11 @@ export interface ToolbarItem {
32
32
  icon?: string;
33
33
  /** 提示文字,优先于当前语言的内置词条 */
34
34
  tooltip?: string;
35
- /** 子菜单(尚未实现,声明后会被忽略) */
35
+ /**
36
+ * 下拉菜单的子项 id 列表,替换该内置菜单的默认子项。
37
+ * 目前只有 `heading` 与 `align` 两个内置项是下拉,写在其他项上会告警并忽略。
38
+ * 只支持一层;子项走的是与顶栏项同一张表,所以同样受能力门控,未知 id 告警跳过
39
+ */
36
40
  children?: ToolbarItem[];
37
41
  }
38
42
  /**
@@ -55,6 +59,33 @@ export interface InsertTableOptions {
55
59
  /** 首行是否为表头,默认 true */
56
60
  withHeaderRow?: boolean;
57
61
  }
62
+ /**
63
+ * 表格配置
64
+ */
65
+ export interface AtriTableConfig {
66
+ /** 列宽拖拽,默认开 */
67
+ resizable?: boolean;
68
+ /** 光标进入表格时浮出的操作菜单,默认开 */
69
+ menu?: boolean;
70
+ }
71
+ /** 链接打开方式 */
72
+ export type AtriLinkTarget = '_blank' | '_self';
73
+ /**
74
+ * 链接配置
75
+ */
76
+ export interface AtriLinkConfig {
77
+ /**
78
+ * 编辑态点击链接是否直接导航,默认 false
79
+ *
80
+ * 默认关:编辑时点链接多半是想改它,跳走会把当前页面连同未保存的内容一起丢下。
81
+ * 关闭时点击落在链接上,浮层就地打开编辑;置 true 交回链接扩展去 window.open
82
+ */
83
+ openOnClick?: boolean;
84
+ /** 新链接的打开方式,默认 '_blank',也是浮层里「在新窗口打开」的初始状态 */
85
+ target?: AtriLinkTarget;
86
+ /** 输入 [文字](url) 时实时转成链接,默认 false */
87
+ markdownLinks?: boolean;
88
+ }
58
89
  /**
59
90
  * 编辑器配置
60
91
  */
@@ -85,8 +116,23 @@ export interface AtriEditorOptions {
85
116
  markdown?: AtriMarkdownConfig;
86
117
  /** 媒体(图片 / 附件)配置,false 时不注册图片与附件节点 */
87
118
  media?: AtriMediaConfig | false;
88
- /** 表格开关,false 时不注册表格节点、工具栏也不出插入表格按钮;默认开 */
89
- table?: boolean;
119
+ /** 表格开关,false 时不注册表格节点、工具栏也不出插入表格按钮、光标进入表格不再浮出操作菜单;默认开 */
120
+ table?: boolean | AtriTableConfig;
121
+ /** 链接配置;不设置时编辑态点击不导航,改为就地编辑 */
122
+ link?: AtriLinkConfig;
123
+ /**
124
+ * 基础格式(文字颜色 / 背景色 / 字号 / 字体 / 高亮 / 上下标)开关,默认开。
125
+ * `false` 时这些 mark 一个都不注册,外来 HTML 里的 `<span style="color:…">`
126
+ * 也不会再变成带样式的文字。导出行为见 `markdown.inlineStyles`。
127
+ */
128
+ formatting?: boolean;
129
+ /**
130
+ * 内置代码块开关,默认开。`false` 时不注册 StarterKit 的 CodeBlock,
131
+ * `codeBlock` 这个节点名让给你自己(或 @atri-editor/code-highlight)的实现。
132
+ * 需要关掉而不是"传个同名的顶掉":节点确实后者赢,但两个同名实现并存时
133
+ * lowlight 的装饰插件不工作,且不报错
134
+ */
135
+ codeBlock?: false;
90
136
  /** 创建完成回调 */
91
137
  onCreate?: (editor: IAtriEditor) => void;
92
138
  /** 内容变更回调 */
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/types/editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../src/types/editor.ts"],"names":[],"mappings":"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"}
@@ -25,5 +25,19 @@ export interface AtriMarkdownConfig {
25
25
  * 作用于所有扩展注册的 input rules,不影响粘贴处理与 Markdown 序列化
26
26
  */
27
27
  shortcuts?: boolean;
28
+ /**
29
+ * 文字颜色 / 背景色 / 字号 / 字体 / 彩色高亮 / 上下标在导出 Markdown 时怎么落。
30
+ *
31
+ * Markdown 没有这些的表示法,默认 `'html'` 用内联 HTML(`<span style>` / `<sub>` /
32
+ * `<mark data-color>`)承载:自家 `getMarkdown → setMarkdown` 无损且幂等,发到 GitHub
33
+ * 一类渲染器时样式会被剥掉但**不会露出字面标签**,读者看到的是干净纯文本。
34
+ *
35
+ * `'drop'` 则完全不发出这些样式,导出的是最纯粹的 CommonMark,代价是这次导出丢内容
36
+ * (粘贴与外来 .md 里的 `<span style>` 仍会正常解析进来)。要发给严格的
37
+ * Markdown 渲染器就用它,配合 `getMarkdownLosses()` 自己决定要不要提示用户。
38
+ *
39
+ * 默认 `'html'`
40
+ */
41
+ inlineStyles?: 'html' | 'drop';
28
42
  }
29
43
  //# sourceMappingURL=markdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/types/markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,kBAAkB;IAClB,aAAa,CAAC,EAAE;QACd,+BAA+B;QAC/B,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,gBAAgB;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,WAAW;QACX,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IACF;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/types/markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,kBAAkB;IAClB,aAAa,CAAC,EAAE;QACd,+BAA+B;QAC/B,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,gBAAgB;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,WAAW;QACX,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IACF;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC"}
@@ -42,6 +42,11 @@ export interface AtriUploadConfig {
42
42
  requestName?: (file: File) => string;
43
43
  /** 响应体形状千差万别,用它挑出 url;缺省时依次找 url / data.url / location */
44
44
  transformResult?: (body: unknown, file: File) => UploadResult;
45
+ /**
46
+ * 内置 XHR 通道的超时毫秒数。缺省不超时——大文件走慢网本就该能传完,
47
+ * 给一个通用上界反而会把原本成功的宿主变成失败
48
+ */
49
+ timeout?: number;
45
50
  }
46
51
  /**
47
52
  * 媒体类型,与同名节点一一对应
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/types/media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/types/media.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * HTML 转义
3
+ *
4
+ * 只服务一件事:把用户或远端来的文本拼成 HTML 字符串(见 utils/markdown.ts 的降级路径)。
5
+ * 走 ProseMirror schema 的正常渲染不需要这里——DOMOutputSpec 的文本与属性由 PM 自己处理,
6
+ * 手工转义反而转出新实体。
7
+ */
8
+ /**
9
+ * 转义文本节点内容:挡住 `<img src=x onerror=…>` 这类标签破出。
10
+ * 不动引号,所以已确定要进属性的文本还得再过一道 escapeQuotes。
11
+ */
12
+ export declare function escapeHtml(value: string): string;
13
+ /**
14
+ * 转义引号:`[x](y" onclick="z)` 会闭合掉属性定界符,把 URL 尾巴变成新属性。
15
+ *
16
+ * 与 escapeHtml 是两个独立步骤而不是一个 escapeAttr,因为拼 HTML 的正确顺序是
17
+ * "整段先过 escapeHtml、再按语法片段插值"——那时捕获到的文本里 `&` 已经是 `&amp;`,
18
+ * 再跑一遍全量转义就成了 `&amp;amp;`,双重转义会把地址改坏。
19
+ */
20
+ export declare function escapeQuotes(value: string): string;
21
+ /**
22
+ * escapeHtml + escapeQuotes 的逆运算。
23
+ *
24
+ * 只有一处需要它:内联 HTML 片段的 Markdown 往返(见 extensions/markdown-inline-html.ts)。
25
+ * 那边发出时把值转义成 &amp;,读回来却不会再解码,于是同一个值每导出一次就多背一层
26
+ * 转义(& → &amp; → &amp;amp;),getMarkdown→setMarkdown→getMarkdown 直接不幂等。
27
+ * 发与收必须成对改动,只改一边就把幂等性换掉了。
28
+ */
29
+ export declare function decodeEntities(value: string): string;
30
+ //# sourceMappingURL=escape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/utils/escape.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqBH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAUD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * 基础格式能力探测:工具栏决定"这个按钮摆不摆"的唯一依据
3
+ *
4
+ * 内部使用,不进 utils barrel、不随包出口——判据(mark 的 spec.attrs 上有没有那一项)
5
+ * 是 extension-text-style 的实现细节,公共面只承诺"这一下真能生效"。
6
+ *
7
+ * 为什么不看配置而看 schema:CoreEditor 把内置扩展放在用户扩展之前,就是为了让宿主能用
8
+ * 同名扩展顶掉内置 mark。顶掉之后配置里写着 formatting: true,但那四类属性可能一个都不剩,
9
+ * 于是按钮摆出来、点了没反应——正是本包反复在消除的那类"命令返回成功、什么都没发生"。
10
+ */
11
+ import type { Editor } from '@tiptap/core';
12
+ /** textStyle 这一个 mark 承载的四个属性,颜色类与字号字体共用同一个 mark */
13
+ export type TextStyleAttr = 'color' | 'backgroundColor' | 'fontSize' | 'fontFamily';
14
+ /** 这个属性是否既设得了也存得住 */
15
+ export declare function canUseTextStyle(editor: Editor, attr: TextStyleAttr): boolean;
16
+ /** 独立 mark(高亮 / 下标 / 上标)是否在册 */
17
+ export declare function hasMark(editor: Editor, name: string): boolean;
18
+ //# sourceMappingURL=formatting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatting.d.ts","sourceRoot":"","sources":["../../src/utils/formatting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,oDAAoD;AACpD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,iBAAiB,GAAG,UAAU,GAAG,YAAY,CAAC;AAepF,qBAAqB;AACrB,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAI5E;AAED,gCAAgC;AAChC,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D"}
@@ -1,4 +1,7 @@
1
1
  export * from './dom';
2
2
  export * from './selection';
3
3
  export * from './markdown';
4
+ export * from './url';
5
+ export * from './escape';
6
+ export * from './safe-call';
4
7
  //# sourceMappingURL=index.d.ts.map