mardora 1.2.0 → 1.2.1

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/dist/index.cjs CHANGED
@@ -1,117 +1,109 @@
1
1
  'use strict';
2
2
 
3
- var chunk3ZOCCFDL_cjs = require('./chunk-3ZOCCFDL.cjs');
4
- var chunk7JOEPNEV_cjs = require('./chunk-7JOEPNEV.cjs');
3
+ var chunkOHZKW7YE_cjs = require('./chunk-OHZKW7YE.cjs');
5
4
  var chunkMLBEBFHB_cjs = require('./chunk-MLBEBFHB.cjs');
6
5
  var chunkKNDWF2DP_cjs = require('./chunk-KNDWF2DP.cjs');
6
+ var chunk3ZOCCFDL_cjs = require('./chunk-3ZOCCFDL.cjs');
7
7
  var chunkSWFUKJDO_cjs = require('./chunk-SWFUKJDO.cjs');
8
8
  var chunkWFVCG4LD_cjs = require('./chunk-WFVCG4LD.cjs');
9
9
 
10
10
 
11
11
 
12
- Object.defineProperty(exports, "extractPreviewTocFromMarkdown", {
13
- enumerable: true,
14
- get: function () { return chunk3ZOCCFDL_cjs.extractPreviewTocFromMarkdown; }
15
- });
16
- Object.defineProperty(exports, "generateCSS", {
17
- enumerable: true,
18
- get: function () { return chunk3ZOCCFDL_cjs.generateCSS; }
19
- });
20
- Object.defineProperty(exports, "preview", {
21
- enumerable: true,
22
- get: function () { return chunk3ZOCCFDL_cjs.preview; }
23
- });
24
12
  Object.defineProperty(exports, "CODE_COPY_SUCCESS_ICON", {
25
13
  enumerable: true,
26
- get: function () { return chunk7JOEPNEV_cjs.CODE_COPY_SUCCESS_ICON; }
14
+ get: function () { return chunkOHZKW7YE_cjs.CODE_COPY_SUCCESS_ICON; }
27
15
  });
28
16
  Object.defineProperty(exports, "CodePlugin", {
29
17
  enumerable: true,
30
- get: function () { return chunk7JOEPNEV_cjs.CodePlugin; }
18
+ get: function () { return chunkOHZKW7YE_cjs.CodePlugin; }
31
19
  });
32
20
  Object.defineProperty(exports, "EmojiPlugin", {
33
21
  enumerable: true,
34
- get: function () { return chunk7JOEPNEV_cjs.EmojiPlugin; }
22
+ get: function () { return chunkOHZKW7YE_cjs.EmojiPlugin; }
35
23
  });
36
24
  Object.defineProperty(exports, "HRPlugin", {
37
25
  enumerable: true,
38
- get: function () { return chunk7JOEPNEV_cjs.HRPlugin; }
26
+ get: function () { return chunkOHZKW7YE_cjs.HRPlugin; }
39
27
  });
40
28
  Object.defineProperty(exports, "HTMLPlugin", {
41
29
  enumerable: true,
42
- get: function () { return chunk7JOEPNEV_cjs.HTMLPlugin; }
30
+ get: function () { return chunkOHZKW7YE_cjs.HTMLPlugin; }
43
31
  });
44
32
  Object.defineProperty(exports, "HeadingPlugin", {
45
33
  enumerable: true,
46
- get: function () { return chunk7JOEPNEV_cjs.HeadingPlugin; }
34
+ get: function () { return chunkOHZKW7YE_cjs.HeadingPlugin; }
47
35
  });
48
36
  Object.defineProperty(exports, "ImagePlugin", {
49
37
  enumerable: true,
50
- get: function () { return chunk7JOEPNEV_cjs.ImagePlugin; }
38
+ get: function () { return chunkOHZKW7YE_cjs.ImagePlugin; }
51
39
  });
52
40
  Object.defineProperty(exports, "InlinePlugin", {
53
41
  enumerable: true,
54
- get: function () { return chunk7JOEPNEV_cjs.InlinePlugin; }
42
+ get: function () { return chunkOHZKW7YE_cjs.InlinePlugin; }
55
43
  });
56
44
  Object.defineProperty(exports, "LinkPlugin", {
57
45
  enumerable: true,
58
- get: function () { return chunk7JOEPNEV_cjs.LinkPlugin; }
46
+ get: function () { return chunkOHZKW7YE_cjs.LinkPlugin; }
59
47
  });
60
48
  Object.defineProperty(exports, "ListPlugin", {
61
49
  enumerable: true,
62
- get: function () { return chunk7JOEPNEV_cjs.ListPlugin; }
50
+ get: function () { return chunkOHZKW7YE_cjs.ListPlugin; }
63
51
  });
64
52
  Object.defineProperty(exports, "MathPlugin", {
65
53
  enumerable: true,
66
- get: function () { return chunk7JOEPNEV_cjs.MathPlugin; }
54
+ get: function () { return chunkOHZKW7YE_cjs.MathPlugin; }
67
55
  });
68
56
  Object.defineProperty(exports, "MermaidPlugin", {
69
57
  enumerable: true,
70
- get: function () { return chunk7JOEPNEV_cjs.MermaidPlugin; }
58
+ get: function () { return chunkOHZKW7YE_cjs.MermaidPlugin; }
71
59
  });
72
60
  Object.defineProperty(exports, "ParagraphPlugin", {
73
61
  enumerable: true,
74
- get: function () { return chunk7JOEPNEV_cjs.ParagraphPlugin; }
62
+ get: function () { return chunkOHZKW7YE_cjs.ParagraphPlugin; }
75
63
  });
76
64
  Object.defineProperty(exports, "QuotePlugin", {
77
65
  enumerable: true,
78
- get: function () { return chunk7JOEPNEV_cjs.QuotePlugin; }
66
+ get: function () { return chunkOHZKW7YE_cjs.QuotePlugin; }
79
67
  });
80
68
  Object.defineProperty(exports, "TablePlugin", {
81
69
  enumerable: true,
82
- get: function () { return chunk7JOEPNEV_cjs.TablePlugin; }
70
+ get: function () { return chunkOHZKW7YE_cjs.TablePlugin; }
83
71
  });
84
72
  Object.defineProperty(exports, "allPlugins", {
85
73
  enumerable: true,
86
- get: function () { return chunk7JOEPNEV_cjs.allPlugins; }
74
+ get: function () { return chunkOHZKW7YE_cjs.allPlugins; }
87
75
  });
88
76
  Object.defineProperty(exports, "bindCodeCopyButtons", {
89
77
  enumerable: true,
90
- get: function () { return chunk7JOEPNEV_cjs.bindCodeCopyButtons; }
78
+ get: function () { return chunkOHZKW7YE_cjs.bindCodeCopyButtons; }
79
+ });
80
+ Object.defineProperty(exports, "bindImagePreviewButtons", {
81
+ enumerable: true,
82
+ get: function () { return chunkOHZKW7YE_cjs.bindImagePreviewButtons; }
91
83
  });
92
84
  Object.defineProperty(exports, "copyCodeTextToClipboard", {
93
85
  enumerable: true,
94
- get: function () { return chunk7JOEPNEV_cjs.copyCodeTextToClipboard; }
86
+ get: function () { return chunkOHZKW7YE_cjs.copyCodeTextToClipboard; }
95
87
  });
96
88
  Object.defineProperty(exports, "decodeCodeCopyPayload", {
97
89
  enumerable: true,
98
- get: function () { return chunk7JOEPNEV_cjs.decodeCodeCopyPayload; }
90
+ get: function () { return chunkOHZKW7YE_cjs.decodeCodeCopyPayload; }
99
91
  });
100
92
  Object.defineProperty(exports, "encodeCodeCopyPayload", {
101
93
  enumerable: true,
102
- get: function () { return chunk7JOEPNEV_cjs.encodeCodeCopyPayload; }
94
+ get: function () { return chunkOHZKW7YE_cjs.encodeCodeCopyPayload; }
103
95
  });
104
96
  Object.defineProperty(exports, "essentialPlugins", {
105
97
  enumerable: true,
106
- get: function () { return chunk7JOEPNEV_cjs.essentialPlugins; }
98
+ get: function () { return chunkOHZKW7YE_cjs.essentialPlugins; }
107
99
  });
108
100
  Object.defineProperty(exports, "resolveCalloutTitleInputTarget", {
109
101
  enumerable: true,
110
- get: function () { return chunk7JOEPNEV_cjs.resolveCalloutTitleInputTarget; }
102
+ get: function () { return chunkOHZKW7YE_cjs.resolveCalloutTitleInputTarget; }
111
103
  });
112
104
  Object.defineProperty(exports, "resolveCalloutTypeChange", {
113
105
  enumerable: true,
114
- get: function () { return chunk7JOEPNEV_cjs.resolveCalloutTypeChange; }
106
+ get: function () { return chunkOHZKW7YE_cjs.resolveCalloutTypeChange; }
115
107
  });
116
108
  Object.defineProperty(exports, "Compartment", {
117
109
  enumerable: true,
@@ -305,6 +297,18 @@ Object.defineProperty(exports, "createWrapSelectionInputHandler", {
305
297
  enumerable: true,
306
298
  get: function () { return chunkKNDWF2DP_cjs.createWrapSelectionInputHandler; }
307
299
  });
300
+ Object.defineProperty(exports, "extractPreviewTocFromMarkdown", {
301
+ enumerable: true,
302
+ get: function () { return chunk3ZOCCFDL_cjs.extractPreviewTocFromMarkdown; }
303
+ });
304
+ Object.defineProperty(exports, "generateCSS", {
305
+ enumerable: true,
306
+ get: function () { return chunk3ZOCCFDL_cjs.generateCSS; }
307
+ });
308
+ Object.defineProperty(exports, "preview", {
309
+ enumerable: true,
310
+ get: function () { return chunk3ZOCCFDL_cjs.preview; }
311
+ });
308
312
  Object.defineProperty(exports, "PreviewRenderer", {
309
313
  enumerable: true,
310
314
  get: function () { return chunkSWFUKJDO_cjs.PreviewRenderer; }
package/dist/index.d.cts CHANGED
@@ -2,7 +2,7 @@ export { ChangeSpec, Compartment, EditorSelection, EditorState, Extension, Selec
2
2
  export { EditorView, KeyBinding, ViewUpdate, highlightActiveLine, keymap } from '@codemirror/view';
3
3
  export { D as DecorationContext, a as DecorationPlugin, I as InlineFormatInput, L as LinkChangeInput, M as MardoraAttachmentAccept, b as MardoraAttachmentKind, c as MardoraAttachmentUploadContext, d as MardoraAttachmentUploadResult, e as MardoraAttachmentUploadSource, f as MardoraAttachmentUploader, g as MardoraAttachmentsConfig, h as MardoraConfig, i as MardoraFileLike, j as MardoraHeadingFoldConfig, k as MardoraHeadingFoldLevel, l as MardoraHeadingFoldRange, m as MardoraI18nConfig, n as MardoraIconName, o as MardoraLocale, p as MardoraNode, q as MardoraPlugin, r as MardoraSelectionToolbarConfig, s as MardoraSlashCommand, t as MardoraSlashCommandContext, u as MardoraSlashCommandGroup, v as MardoraSlashCommandsConfig, w as MardoraSlashMessages, x as MardoraSlashQuery, y as MardoraTocConfig, z as MardoraTocItem, A as MardoraTocLevel, P as ParsedSelectionLink, B as PluginConfig, C as PluginContext, R as ResolvedMardoraHeadingFoldConfig, E as ResolvedMardoraTocConfig, S as SelectionToolbarActionId, F as SelectionToolbarAnchorRect, G as SelectionToolbarBlockType, H as SelectionToolbarBoundary, J as SelectionToolbarButton, K as SelectionToolbarFloatingSize, N as SelectionToolbarLayout, O as SelectionToolbarLayoutInput, Q as SelectionToolbarLinkState, T as SelectionToolbarListKind, U as SelectionToolbarMenuCallbacks, V as SelectionToolbarMenuState, W as SelectionToolbarMessages, X as SelectionToolbarPaletteItem, Y as SelectionToolbarPanel, Z as SelectionToolbarPlacement, _ as SelectionToolbarViewport, $ as SyntaxPlugin, a0 as TextChange, a1 as TextCommandResult, a2 as TextSelection, a3 as ThemeEnum, a4 as ThemeStyle, a5 as TocPanelState, a6 as TocStorageAdapter, a7 as createMardoraIcon, a8 as createTheme, a9 as cursorInRange, aa as deepMerge, ab as defaultMardoraLocale, ac as fixSelector, ad as flattenThemeStyles, ae as getSelectionToolbarMessages, af as hasMardoraIcon, ag as mardora, ah as resolveMardoraLocale, ai as selectionOverlapsRange, aj as toggleMarkdownStyle } from './mardora-DCwjomil.cjs';
4
4
  export { MardoraAttachmentEditorView, MardoraSlashMenuCallbacks, MardoraSlashMenuState, MardoraSlashReplacement, MardoraSlashReplacementTemplate, MardoraSlashRuntimeConfig, MardoraUploadAttachmentOptions, MardoraUploadMarkerInput, MardoraUploadMarkerState, ResolvedMardoraSlashRuntimeConfig, TocPanelCallbacks, TocPanelRenderState, attachments, buildBlockTypeChange, buildInlineFormatChange, buildLinkChange, buildListChange, buildSlashReplacement, clampTocWidth, computeSelectionToolbarLayout, createSelectionToolbarElement, createSlashMenuElement, createSlashRuntimeConfig, createTocPanelElement, createTocSlugger, createUploadMarker, defaultSlashCommands, detectAttachmentKind, detectSelectionBlockType, detectSlashQuery, extractHeadingFoldRangesFromState, extractTocItemsFromState, filterSlashCommands, formatAttachmentMarkdown, getDefaultSlashCommands, getSlashMessages, headingFold, headingFoldTheme, isAcceptedAttachment, mardoraBaseTheme, markdownResetExtension, parseSelectedLink, readTocPanelState, resolveHeadingFoldConfig, resolveTocConfig, selectionToolbar, selectionToolbarTheme, slashCommands, slashMenuTheme, stripMarkdownHeadingText, tableOfContents, tocTheme, uploadAttachmentFile, writeTocPanelState } from './editor/index.cjs';
5
- export { CODE_COPY_SUCCESS_ICON, CalloutLabel, CalloutTitleInputTarget, CalloutTypeChange, CodePlugin, EmojiPlugin, HRPlugin, HTMLPlugin, HeadingPlugin, ImagePlugin, InlinePlugin, LinkPlugin, ListPlugin, MathPlugin, MermaidPlugin, ParagraphPlugin, QuotePlugin, TablePlugin, allPlugins, bindCodeCopyButtons, copyCodeTextToClipboard, decodeCodeCopyPayload, encodeCodeCopyPayload, essentialPlugins, resolveCalloutTitleInputTarget, resolveCalloutTypeChange } from './plugins/index.cjs';
5
+ export { CODE_COPY_SUCCESS_ICON, CalloutLabel, CalloutTitleInputTarget, CalloutTypeChange, CodePlugin, EmojiPlugin, HRPlugin, HTMLPlugin, HeadingPlugin, ImagePlugin, InlinePlugin, LinkPlugin, ListPlugin, MathPlugin, MermaidPlugin, ParagraphPlugin, QuotePlugin, TablePlugin, allPlugins, bindCodeCopyButtons, bindImagePreviewButtons, copyCodeTextToClipboard, decodeCodeCopyPayload, encodeCodeCopyPayload, essentialPlugins, resolveCalloutTitleInputTarget, resolveCalloutTypeChange } from './plugins/index.cjs';
6
6
  export { PreviewRenderer, defaultRenderers, escapeHtml, extractPreviewTocFromMarkdown, generateCSS, generateSyntaxThemeCSS, preview } from './preview/index.cjs';
7
7
  export { G as GenerateCSSConfig, N as NodeRenderer, a as NodeRendererMap, P as PreviewConfig, b as PreviewContext, S as SyntaxThemeInput } from './types-NBsaxl4d.cjs';
8
8
  export { WrapSelectionMarkerMap, createWrapSelectionInputHandler } from './lib/index.cjs';
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { ChangeSpec, Compartment, EditorSelection, EditorState, Extension, Selec
2
2
  export { EditorView, KeyBinding, ViewUpdate, highlightActiveLine, keymap } from '@codemirror/view';
3
3
  export { D as DecorationContext, a as DecorationPlugin, I as InlineFormatInput, L as LinkChangeInput, M as MardoraAttachmentAccept, b as MardoraAttachmentKind, c as MardoraAttachmentUploadContext, d as MardoraAttachmentUploadResult, e as MardoraAttachmentUploadSource, f as MardoraAttachmentUploader, g as MardoraAttachmentsConfig, h as MardoraConfig, i as MardoraFileLike, j as MardoraHeadingFoldConfig, k as MardoraHeadingFoldLevel, l as MardoraHeadingFoldRange, m as MardoraI18nConfig, n as MardoraIconName, o as MardoraLocale, p as MardoraNode, q as MardoraPlugin, r as MardoraSelectionToolbarConfig, s as MardoraSlashCommand, t as MardoraSlashCommandContext, u as MardoraSlashCommandGroup, v as MardoraSlashCommandsConfig, w as MardoraSlashMessages, x as MardoraSlashQuery, y as MardoraTocConfig, z as MardoraTocItem, A as MardoraTocLevel, P as ParsedSelectionLink, B as PluginConfig, C as PluginContext, R as ResolvedMardoraHeadingFoldConfig, E as ResolvedMardoraTocConfig, S as SelectionToolbarActionId, F as SelectionToolbarAnchorRect, G as SelectionToolbarBlockType, H as SelectionToolbarBoundary, J as SelectionToolbarButton, K as SelectionToolbarFloatingSize, N as SelectionToolbarLayout, O as SelectionToolbarLayoutInput, Q as SelectionToolbarLinkState, T as SelectionToolbarListKind, U as SelectionToolbarMenuCallbacks, V as SelectionToolbarMenuState, W as SelectionToolbarMessages, X as SelectionToolbarPaletteItem, Y as SelectionToolbarPanel, Z as SelectionToolbarPlacement, _ as SelectionToolbarViewport, $ as SyntaxPlugin, a0 as TextChange, a1 as TextCommandResult, a2 as TextSelection, a3 as ThemeEnum, a4 as ThemeStyle, a5 as TocPanelState, a6 as TocStorageAdapter, a7 as createMardoraIcon, a8 as createTheme, a9 as cursorInRange, aa as deepMerge, ab as defaultMardoraLocale, ac as fixSelector, ad as flattenThemeStyles, ae as getSelectionToolbarMessages, af as hasMardoraIcon, ag as mardora, ah as resolveMardoraLocale, ai as selectionOverlapsRange, aj as toggleMarkdownStyle } from './mardora-DCwjomil.js';
4
4
  export { MardoraAttachmentEditorView, MardoraSlashMenuCallbacks, MardoraSlashMenuState, MardoraSlashReplacement, MardoraSlashReplacementTemplate, MardoraSlashRuntimeConfig, MardoraUploadAttachmentOptions, MardoraUploadMarkerInput, MardoraUploadMarkerState, ResolvedMardoraSlashRuntimeConfig, TocPanelCallbacks, TocPanelRenderState, attachments, buildBlockTypeChange, buildInlineFormatChange, buildLinkChange, buildListChange, buildSlashReplacement, clampTocWidth, computeSelectionToolbarLayout, createSelectionToolbarElement, createSlashMenuElement, createSlashRuntimeConfig, createTocPanelElement, createTocSlugger, createUploadMarker, defaultSlashCommands, detectAttachmentKind, detectSelectionBlockType, detectSlashQuery, extractHeadingFoldRangesFromState, extractTocItemsFromState, filterSlashCommands, formatAttachmentMarkdown, getDefaultSlashCommands, getSlashMessages, headingFold, headingFoldTheme, isAcceptedAttachment, mardoraBaseTheme, markdownResetExtension, parseSelectedLink, readTocPanelState, resolveHeadingFoldConfig, resolveTocConfig, selectionToolbar, selectionToolbarTheme, slashCommands, slashMenuTheme, stripMarkdownHeadingText, tableOfContents, tocTheme, uploadAttachmentFile, writeTocPanelState } from './editor/index.js';
5
- export { CODE_COPY_SUCCESS_ICON, CalloutLabel, CalloutTitleInputTarget, CalloutTypeChange, CodePlugin, EmojiPlugin, HRPlugin, HTMLPlugin, HeadingPlugin, ImagePlugin, InlinePlugin, LinkPlugin, ListPlugin, MathPlugin, MermaidPlugin, ParagraphPlugin, QuotePlugin, TablePlugin, allPlugins, bindCodeCopyButtons, copyCodeTextToClipboard, decodeCodeCopyPayload, encodeCodeCopyPayload, essentialPlugins, resolveCalloutTitleInputTarget, resolveCalloutTypeChange } from './plugins/index.js';
5
+ export { CODE_COPY_SUCCESS_ICON, CalloutLabel, CalloutTitleInputTarget, CalloutTypeChange, CodePlugin, EmojiPlugin, HRPlugin, HTMLPlugin, HeadingPlugin, ImagePlugin, InlinePlugin, LinkPlugin, ListPlugin, MathPlugin, MermaidPlugin, ParagraphPlugin, QuotePlugin, TablePlugin, allPlugins, bindCodeCopyButtons, bindImagePreviewButtons, copyCodeTextToClipboard, decodeCodeCopyPayload, encodeCodeCopyPayload, essentialPlugins, resolveCalloutTitleInputTarget, resolveCalloutTypeChange } from './plugins/index.js';
6
6
  export { PreviewRenderer, defaultRenderers, escapeHtml, extractPreviewTocFromMarkdown, generateCSS, generateSyntaxThemeCSS, preview } from './preview/index.js';
7
7
  export { G as GenerateCSSConfig, N as NodeRenderer, a as NodeRendererMap, P as PreviewConfig, b as PreviewContext, S as SyntaxThemeInput } from './types-Pw2SWWAR.js';
8
8
  export { WrapSelectionMarkerMap, createWrapSelectionInputHandler } from './lib/index.js';
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export { extractPreviewTocFromMarkdown, generateCSS, preview } from './chunk-G4SE26YY.js';
2
- export { CODE_COPY_SUCCESS_ICON, CodePlugin, EmojiPlugin, HRPlugin, HTMLPlugin, HeadingPlugin, ImagePlugin, InlinePlugin, LinkPlugin, ListPlugin, MathPlugin, MermaidPlugin, ParagraphPlugin, QuotePlugin, TablePlugin, allPlugins, bindCodeCopyButtons, copyCodeTextToClipboard, decodeCodeCopyPayload, encodeCodeCopyPayload, essentialPlugins, resolveCalloutTitleInputTarget, resolveCalloutTypeChange } from './chunk-3OCUX4OO.js';
1
+ export { CODE_COPY_SUCCESS_ICON, CodePlugin, EmojiPlugin, HRPlugin, HTMLPlugin, HeadingPlugin, ImagePlugin, InlinePlugin, LinkPlugin, ListPlugin, MathPlugin, MermaidPlugin, ParagraphPlugin, QuotePlugin, TablePlugin, allPlugins, bindCodeCopyButtons, bindImagePreviewButtons, copyCodeTextToClipboard, decodeCodeCopyPayload, encodeCodeCopyPayload, essentialPlugins, resolveCalloutTitleInputTarget, resolveCalloutTypeChange } from './chunk-PCXW2FUR.js';
3
2
  export { Compartment, DecorationPlugin, EditorSelection, EditorState, EditorView, MardoraPlugin, StateEffect, StateField, SyntaxPlugin, attachments, buildBlockTypeChange, buildInlineFormatChange, buildLinkChange, buildListChange, buildSlashReplacement, computeSelectionToolbarLayout, createSelectionToolbarElement, createSlashMenuElement, createSlashRuntimeConfig, createUploadMarker, defaultMardoraLocale, defaultSlashCommands, detectAttachmentKind, detectSelectionBlockType, detectSlashQuery, extractHeadingFoldRangesFromState, filterSlashCommands, formatAttachmentMarkdown, getDefaultSlashCommands, getSelectionToolbarMessages, getSlashMessages, headingFold, headingFoldTheme, highlightActiveLine, isAcceptedAttachment, keymap, mardora, mardoraBaseTheme, markdownResetExtension, parseSelectedLink, resolveHeadingFoldConfig, resolveMardoraLocale, selectionToolbar, selectionToolbarTheme, slashCommands, slashMenuTheme, uploadAttachmentFile } from './chunk-XL6WFGJT.js';
4
3
  export { createWrapSelectionInputHandler } from './chunk-BIKZQZ6W.js';
4
+ export { extractPreviewTocFromMarkdown, generateCSS, preview } from './chunk-G4SE26YY.js';
5
5
  export { PreviewRenderer, defaultRenderers, escapeHtml, generateSyntaxThemeCSS } from './chunk-EQJESPP2.js';
6
6
  export { ThemeEnum, clampTocWidth, createMardoraIcon, createTheme, createTocPanelElement, createTocSlugger, cursorInRange, deepMerge, extractTocItemsFromState, fixSelector, flattenThemeStyles, hasMardoraIcon, readTocPanelState, resolveTocConfig, selectionOverlapsRange, stripMarkdownHeadingText, tableOfContents, tocTheme, toggleMarkdownStyle, writeTocPanelState } from './chunk-P7JFCYU3.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk7JOEPNEV_cjs = require('../chunk-7JOEPNEV.cjs');
3
+ var chunkOHZKW7YE_cjs = require('../chunk-OHZKW7YE.cjs');
4
4
  require('../chunk-MLBEBFHB.cjs');
5
5
  require('../chunk-KNDWF2DP.cjs');
6
6
  require('../chunk-SWFUKJDO.cjs');
@@ -10,95 +10,99 @@ require('../chunk-WFVCG4LD.cjs');
10
10
 
11
11
  Object.defineProperty(exports, "CODE_COPY_SUCCESS_ICON", {
12
12
  enumerable: true,
13
- get: function () { return chunk7JOEPNEV_cjs.CODE_COPY_SUCCESS_ICON; }
13
+ get: function () { return chunkOHZKW7YE_cjs.CODE_COPY_SUCCESS_ICON; }
14
14
  });
15
15
  Object.defineProperty(exports, "CodePlugin", {
16
16
  enumerable: true,
17
- get: function () { return chunk7JOEPNEV_cjs.CodePlugin; }
17
+ get: function () { return chunkOHZKW7YE_cjs.CodePlugin; }
18
18
  });
19
19
  Object.defineProperty(exports, "EmojiPlugin", {
20
20
  enumerable: true,
21
- get: function () { return chunk7JOEPNEV_cjs.EmojiPlugin; }
21
+ get: function () { return chunkOHZKW7YE_cjs.EmojiPlugin; }
22
22
  });
23
23
  Object.defineProperty(exports, "HRPlugin", {
24
24
  enumerable: true,
25
- get: function () { return chunk7JOEPNEV_cjs.HRPlugin; }
25
+ get: function () { return chunkOHZKW7YE_cjs.HRPlugin; }
26
26
  });
27
27
  Object.defineProperty(exports, "HTMLPlugin", {
28
28
  enumerable: true,
29
- get: function () { return chunk7JOEPNEV_cjs.HTMLPlugin; }
29
+ get: function () { return chunkOHZKW7YE_cjs.HTMLPlugin; }
30
30
  });
31
31
  Object.defineProperty(exports, "HeadingPlugin", {
32
32
  enumerable: true,
33
- get: function () { return chunk7JOEPNEV_cjs.HeadingPlugin; }
33
+ get: function () { return chunkOHZKW7YE_cjs.HeadingPlugin; }
34
34
  });
35
35
  Object.defineProperty(exports, "ImagePlugin", {
36
36
  enumerable: true,
37
- get: function () { return chunk7JOEPNEV_cjs.ImagePlugin; }
37
+ get: function () { return chunkOHZKW7YE_cjs.ImagePlugin; }
38
38
  });
39
39
  Object.defineProperty(exports, "InlinePlugin", {
40
40
  enumerable: true,
41
- get: function () { return chunk7JOEPNEV_cjs.InlinePlugin; }
41
+ get: function () { return chunkOHZKW7YE_cjs.InlinePlugin; }
42
42
  });
43
43
  Object.defineProperty(exports, "LinkPlugin", {
44
44
  enumerable: true,
45
- get: function () { return chunk7JOEPNEV_cjs.LinkPlugin; }
45
+ get: function () { return chunkOHZKW7YE_cjs.LinkPlugin; }
46
46
  });
47
47
  Object.defineProperty(exports, "ListPlugin", {
48
48
  enumerable: true,
49
- get: function () { return chunk7JOEPNEV_cjs.ListPlugin; }
49
+ get: function () { return chunkOHZKW7YE_cjs.ListPlugin; }
50
50
  });
51
51
  Object.defineProperty(exports, "MathPlugin", {
52
52
  enumerable: true,
53
- get: function () { return chunk7JOEPNEV_cjs.MathPlugin; }
53
+ get: function () { return chunkOHZKW7YE_cjs.MathPlugin; }
54
54
  });
55
55
  Object.defineProperty(exports, "MermaidPlugin", {
56
56
  enumerable: true,
57
- get: function () { return chunk7JOEPNEV_cjs.MermaidPlugin; }
57
+ get: function () { return chunkOHZKW7YE_cjs.MermaidPlugin; }
58
58
  });
59
59
  Object.defineProperty(exports, "ParagraphPlugin", {
60
60
  enumerable: true,
61
- get: function () { return chunk7JOEPNEV_cjs.ParagraphPlugin; }
61
+ get: function () { return chunkOHZKW7YE_cjs.ParagraphPlugin; }
62
62
  });
63
63
  Object.defineProperty(exports, "QuotePlugin", {
64
64
  enumerable: true,
65
- get: function () { return chunk7JOEPNEV_cjs.QuotePlugin; }
65
+ get: function () { return chunkOHZKW7YE_cjs.QuotePlugin; }
66
66
  });
67
67
  Object.defineProperty(exports, "TablePlugin", {
68
68
  enumerable: true,
69
- get: function () { return chunk7JOEPNEV_cjs.TablePlugin; }
69
+ get: function () { return chunkOHZKW7YE_cjs.TablePlugin; }
70
70
  });
71
71
  Object.defineProperty(exports, "allPlugins", {
72
72
  enumerable: true,
73
- get: function () { return chunk7JOEPNEV_cjs.allPlugins; }
73
+ get: function () { return chunkOHZKW7YE_cjs.allPlugins; }
74
74
  });
75
75
  Object.defineProperty(exports, "bindCodeCopyButtons", {
76
76
  enumerable: true,
77
- get: function () { return chunk7JOEPNEV_cjs.bindCodeCopyButtons; }
77
+ get: function () { return chunkOHZKW7YE_cjs.bindCodeCopyButtons; }
78
+ });
79
+ Object.defineProperty(exports, "bindImagePreviewButtons", {
80
+ enumerable: true,
81
+ get: function () { return chunkOHZKW7YE_cjs.bindImagePreviewButtons; }
78
82
  });
79
83
  Object.defineProperty(exports, "copyCodeTextToClipboard", {
80
84
  enumerable: true,
81
- get: function () { return chunk7JOEPNEV_cjs.copyCodeTextToClipboard; }
85
+ get: function () { return chunkOHZKW7YE_cjs.copyCodeTextToClipboard; }
82
86
  });
83
87
  Object.defineProperty(exports, "decodeCodeCopyPayload", {
84
88
  enumerable: true,
85
- get: function () { return chunk7JOEPNEV_cjs.decodeCodeCopyPayload; }
89
+ get: function () { return chunkOHZKW7YE_cjs.decodeCodeCopyPayload; }
86
90
  });
87
91
  Object.defineProperty(exports, "encodeCodeCopyPayload", {
88
92
  enumerable: true,
89
- get: function () { return chunk7JOEPNEV_cjs.encodeCodeCopyPayload; }
93
+ get: function () { return chunkOHZKW7YE_cjs.encodeCodeCopyPayload; }
90
94
  });
91
95
  Object.defineProperty(exports, "essentialPlugins", {
92
96
  enumerable: true,
93
- get: function () { return chunk7JOEPNEV_cjs.essentialPlugins; }
97
+ get: function () { return chunkOHZKW7YE_cjs.essentialPlugins; }
94
98
  });
95
99
  Object.defineProperty(exports, "resolveCalloutTitleInputTarget", {
96
100
  enumerable: true,
97
- get: function () { return chunk7JOEPNEV_cjs.resolveCalloutTitleInputTarget; }
101
+ get: function () { return chunkOHZKW7YE_cjs.resolveCalloutTitleInputTarget; }
98
102
  });
99
103
  Object.defineProperty(exports, "resolveCalloutTypeChange", {
100
104
  enumerable: true,
101
- get: function () { return chunk7JOEPNEV_cjs.resolveCalloutTypeChange; }
105
+ get: function () { return chunkOHZKW7YE_cjs.resolveCalloutTypeChange; }
102
106
  });
103
107
  //# sourceMappingURL=index.cjs.map
104
108
  //# sourceMappingURL=index.cjs.map
@@ -308,6 +308,7 @@ declare class HTMLPlugin extends DecorationPlugin {
308
308
  buildDecorations(ctx: DecorationContext): void;
309
309
  }
310
310
 
311
+ declare function bindImagePreviewButtons(root: HTMLElement | Document): () => void;
311
312
  /**
312
313
  * ImagePlugin - Decorates and renders images in markdown
313
314
  *
@@ -737,4 +738,4 @@ declare const essentialPlugins: MardoraPlugin[];
737
738
  */
738
739
  declare const allPlugins: MardoraPlugin[];
739
740
 
740
- export { CODE_COPY_SUCCESS_ICON, type CalloutLabel, type CalloutTitleInputTarget, type CalloutTypeChange, CodePlugin, EmojiPlugin, HRPlugin, HTMLPlugin, HeadingPlugin, ImagePlugin, InlinePlugin, LinkPlugin, ListPlugin, MathPlugin, MermaidPlugin, ParagraphPlugin, QuotePlugin, TablePlugin, allPlugins, bindCodeCopyButtons, copyCodeTextToClipboard, decodeCodeCopyPayload, encodeCodeCopyPayload, essentialPlugins, resolveCalloutTitleInputTarget, resolveCalloutTypeChange };
741
+ export { CODE_COPY_SUCCESS_ICON, type CalloutLabel, type CalloutTitleInputTarget, type CalloutTypeChange, CodePlugin, EmojiPlugin, HRPlugin, HTMLPlugin, HeadingPlugin, ImagePlugin, InlinePlugin, LinkPlugin, ListPlugin, MathPlugin, MermaidPlugin, ParagraphPlugin, QuotePlugin, TablePlugin, allPlugins, bindCodeCopyButtons, bindImagePreviewButtons, copyCodeTextToClipboard, decodeCodeCopyPayload, encodeCodeCopyPayload, essentialPlugins, resolveCalloutTitleInputTarget, resolveCalloutTypeChange };
@@ -308,6 +308,7 @@ declare class HTMLPlugin extends DecorationPlugin {
308
308
  buildDecorations(ctx: DecorationContext): void;
309
309
  }
310
310
 
311
+ declare function bindImagePreviewButtons(root: HTMLElement | Document): () => void;
311
312
  /**
312
313
  * ImagePlugin - Decorates and renders images in markdown
313
314
  *
@@ -737,4 +738,4 @@ declare const essentialPlugins: MardoraPlugin[];
737
738
  */
738
739
  declare const allPlugins: MardoraPlugin[];
739
740
 
740
- export { CODE_COPY_SUCCESS_ICON, type CalloutLabel, type CalloutTitleInputTarget, type CalloutTypeChange, CodePlugin, EmojiPlugin, HRPlugin, HTMLPlugin, HeadingPlugin, ImagePlugin, InlinePlugin, LinkPlugin, ListPlugin, MathPlugin, MermaidPlugin, ParagraphPlugin, QuotePlugin, TablePlugin, allPlugins, bindCodeCopyButtons, copyCodeTextToClipboard, decodeCodeCopyPayload, encodeCodeCopyPayload, essentialPlugins, resolveCalloutTitleInputTarget, resolveCalloutTypeChange };
741
+ export { CODE_COPY_SUCCESS_ICON, type CalloutLabel, type CalloutTitleInputTarget, type CalloutTypeChange, CodePlugin, EmojiPlugin, HRPlugin, HTMLPlugin, HeadingPlugin, ImagePlugin, InlinePlugin, LinkPlugin, ListPlugin, MathPlugin, MermaidPlugin, ParagraphPlugin, QuotePlugin, TablePlugin, allPlugins, bindCodeCopyButtons, bindImagePreviewButtons, copyCodeTextToClipboard, decodeCodeCopyPayload, encodeCodeCopyPayload, essentialPlugins, resolveCalloutTitleInputTarget, resolveCalloutTypeChange };
@@ -1,4 +1,4 @@
1
- export { CODE_COPY_SUCCESS_ICON, CodePlugin, EmojiPlugin, HRPlugin, HTMLPlugin, HeadingPlugin, ImagePlugin, InlinePlugin, LinkPlugin, ListPlugin, MathPlugin, MermaidPlugin, ParagraphPlugin, QuotePlugin, TablePlugin, allPlugins, bindCodeCopyButtons, copyCodeTextToClipboard, decodeCodeCopyPayload, encodeCodeCopyPayload, essentialPlugins, resolveCalloutTitleInputTarget, resolveCalloutTypeChange } from '../chunk-3OCUX4OO.js';
1
+ export { CODE_COPY_SUCCESS_ICON, CodePlugin, EmojiPlugin, HRPlugin, HTMLPlugin, HeadingPlugin, ImagePlugin, InlinePlugin, LinkPlugin, ListPlugin, MathPlugin, MermaidPlugin, ParagraphPlugin, QuotePlugin, TablePlugin, allPlugins, bindCodeCopyButtons, bindImagePreviewButtons, copyCodeTextToClipboard, decodeCodeCopyPayload, encodeCodeCopyPayload, essentialPlugins, resolveCalloutTitleInputTarget, resolveCalloutTypeChange } from '../chunk-PCXW2FUR.js';
2
2
  import '../chunk-XL6WFGJT.js';
3
3
  import '../chunk-BIKZQZ6W.js';
4
4
  import '../chunk-EQJESPP2.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mardora",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "Core library for Mardora",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -55,7 +55,7 @@ export function createMediaPreviewButton(
55
55
 
56
56
  export function openMediaLightbox(ownerDocument: Document, options: OpenMediaLightboxOptions): MediaLightboxHandle {
57
57
  ownerDocument.querySelector(".cm-mardora-media-lightbox")?.remove();
58
- const mountPoint = options.returnFocus?.closest(".cm-editor") ?? ownerDocument.body;
58
+ const mountPoint = options.returnFocus?.closest(".cm-editor, .mardora-preview") ?? ownerDocument.body;
59
59
 
60
60
  const root = ownerDocument.createElement("div");
61
61
  root.className = "cm-mardora-media-lightbox";
@@ -6,7 +6,7 @@ export const codePluginTheme = createTheme({
6
6
  // Inline code
7
7
  ".cm-mardora-code-inline": {
8
8
  fontFamily: "var(--font-jetbrains-mono, monospace)",
9
- fontSize: "0.9rem",
9
+ fontSize: "0.9em",
10
10
  backgroundColor: "rgba(0, 0, 0, 0.05)",
11
11
  padding: "0.1rem 0.25rem",
12
12
  border: "1px solid var(--color-border)",
@@ -58,12 +58,11 @@ export const codePluginTheme = createTheme({
58
58
  alignItems: "center",
59
59
  gap: "0.2rem",
60
60
  position: "absolute",
61
- top: "50%",
61
+ top: "0.5rem",
62
62
  right: "0.45rem",
63
63
  zIndex: "20",
64
64
  opacity: "0",
65
65
  pointerEvents: "none",
66
- transform: "translateY(-50%)",
67
66
  transition: "opacity 0.12s ease",
68
67
  color: "var(--color-text, inherit)",
69
68
  fontFamily: "var(--font-sans, system-ui, sans-serif)",
@@ -53,6 +53,7 @@ const codeLanguageOptions = [
53
53
  ["JavaScript", "javascript"],
54
54
  ["JSON", "json"],
55
55
  ["Markdown", "markdown"],
56
+ ["Mermaid", "mermaid"],
56
57
  ["Python", "python"],
57
58
  ["Ruby", "ruby"],
58
59
  ["Rust", "rust"],
@@ -80,6 +81,7 @@ const codeLanguageAliases: Record<string, string> = {
80
81
  js: "JavaScript",
81
82
  json: "JSON",
82
83
  markdown: "Markdown",
84
+ mermaid: "Mermaid",
83
85
  md: "Markdown",
84
86
  python: "Python",
85
87
  py: "Python",
@@ -44,6 +44,8 @@ interface ImageMarkdownRange {
44
44
 
45
45
  const imageWidthAttributePattern = /^(\s*)\{width=(\d+)\}/;
46
46
  const minImageWidth = 120;
47
+ const previewImageIcon =
48
+ '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 3h6v6"></path><path d="m21 3-7 7"></path><path d="M9 21H3v-6"></path><path d="m3 21 7-7"></path></svg>';
47
49
 
48
50
  /**
49
51
  * Parse image markdown to extract alt text, URL, optional title, and optional pixel width.
@@ -131,6 +133,29 @@ export function resolveImageDeleteChange(input: {
131
133
  return { from: input.from, to: range.to, insert: "" };
132
134
  }
133
135
 
136
+ export function bindImagePreviewButtons(root: HTMLElement | Document): () => void {
137
+ const onClick = (event: Event) => {
138
+ const target =
139
+ event.target && typeof (event.target as Element).closest === "function" ? (event.target as Element) : null;
140
+ const previewButton = target?.closest<HTMLButtonElement>(".cm-mardora-image-preview-button[data-src]");
141
+ if (!previewButton || !root.contains(previewButton)) return;
142
+
143
+ consumeMediaLightboxTrigger(event);
144
+ openMediaLightbox(previewButton.ownerDocument, {
145
+ content: {
146
+ kind: "image",
147
+ src: previewButton.dataset.src ?? "",
148
+ alt: previewButton.dataset.alt ?? "",
149
+ ...(previewButton.dataset.title ? { title: previewButton.dataset.title } : {}),
150
+ },
151
+ returnFocus: previewButton,
152
+ });
153
+ };
154
+
155
+ root.addEventListener("click", onClick);
156
+ return () => root.removeEventListener("click", onClick);
157
+ }
158
+
134
159
  /**
135
160
  * Widget to render an image with optional caption using figure/figcaption
136
161
  * Placed below the markdown syntax as a widget decoration
@@ -362,11 +387,18 @@ function clampImageWidth(width: number, maxWidth: number): number {
362
387
  }
363
388
 
364
389
  function resolveImageMaxWidth(view: EditorView, figure: HTMLElement): number {
365
- const content = figure.closest(".cm-content") ?? view.contentDOM ?? view.dom;
390
+ const content = figure.closest(".cm-line") ?? figure.closest(".cm-content") ?? view.contentDOM ?? view.dom;
366
391
  const width = content.getBoundingClientRect().width;
367
392
  return Math.max(minImageWidth, Math.round(width || figure.getBoundingClientRect().width || 800));
368
393
  }
369
394
 
395
+ function renderPreviewImageButton(parsed: ParsedImageMarkdown, ctx: PreviewContext): string {
396
+ const titleDataAttr = parsed.title ? ` data-title="${ctx.sanitize(parsed.title)}"` : "";
397
+ return `<div class="cm-mardora-image-toolbar">
398
+ <button type="button" class="cm-mardora-image-tool-button cm-mardora-image-preview-button" aria-label="放大查看图片" title="放大查看图片" data-src="${ctx.sanitize(parsed.url)}" data-alt="${ctx.sanitize(parsed.alt)}"${titleDataAttr}>${previewImageIcon}</button>
399
+ </div>`;
400
+ }
401
+
370
402
  /**
371
403
  * ImagePlugin - Decorates and renders images in markdown
372
404
  *
@@ -583,10 +615,12 @@ export class ImagePlugin extends DecorationPlugin {
583
615
  const altAttr = ctx.sanitize(parsed.alt);
584
616
  const titleAttr = parsed.title ? ` title="${ctx.sanitize(parsed.title)}"` : "";
585
617
  const ariaLabel = parsed.title ? ` aria-label="${ctx.sanitize(parsed.title)}"` : "";
586
- const widthStyle = parsed.width ? ` style="width: ${parsed.width}px;"` : "";
618
+ const figureWidthStyle = parsed.width ? ` style="width: ${parsed.width}px;"` : "";
619
+ const imageWidthStyle = parsed.width ? ` style="width: 100%;"` : "";
587
620
 
588
- let html = `<figure class="cm-mardora-image-figure" role="figure"${ariaLabel}>`;
589
- html += `<img class="cm-mardora-image" src="${ctx.sanitize(parsed.url)}" alt="${altAttr}"${titleAttr}${widthStyle} loading="lazy" decoding="async" />`;
621
+ let html = `<figure class="cm-mardora-image-figure" role="figure"${ariaLabel}${figureWidthStyle}>`;
622
+ html += `<img class="cm-mardora-image" src="${ctx.sanitize(parsed.url)}" alt="${altAttr}"${titleAttr}${imageWidthStyle} loading="lazy" decoding="async" />`;
623
+ html += renderPreviewImageButton(parsed, ctx);
590
624
 
591
625
  if (parsed.title) {
592
626
  html += `<figcaption class="cm-mardora-image-caption">${ctx.sanitize(parsed.title)}</figcaption>`;
@@ -644,7 +678,9 @@ const imageTheme = createTheme({
644
678
  alignItems: "start",
645
679
  width: "100%",
646
680
  maxWidth: "100%",
681
+ margin: "0",
647
682
  padding: "0",
683
+ position: "relative",
648
684
  },
649
685
 
650
686
  ".cm-mardora-image-toolbar": {
@@ -6,7 +6,7 @@ export { LinkPlugin } from "./link-plugin";
6
6
  export { ListPlugin } from "./list-plugin";
7
7
  export { TablePlugin } from "./table-plugin";
8
8
  export { HTMLPlugin } from "./html-plugin";
9
- export { ImagePlugin } from "./image-plugin";
9
+ export { bindImagePreviewButtons, ImagePlugin } from "./image-plugin";
10
10
  export { MathPlugin } from "./math-plugin";
11
11
  export { MermaidPlugin } from "./mermaid-plugin";
12
12
  export {