markdown-wysiwyg-editor 0.3.0 → 0.3.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.
@@ -12,6 +12,7 @@ interface EditorChromeProps {
12
12
  showDownloadButton: boolean;
13
13
  onDownloadAsMarkdown: () => void;
14
14
  onInsertMarkdown: (markdown: string, cursorOffset?: number) => void;
15
+ onImageSourceSelect?: (file: File) => string | Promise<string>;
15
16
  pasteEvents: Array<{
16
17
  timestamp: number;
17
18
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"EditorChrome.d.ts","sourceRoot":"","sources":["../../src/components/EditorChrome.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAK9D,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,cAAc,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,yBAAyB,EAAE,OAAO,CAAC;IACnC,uBAAuB,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,WAAW,EAAE,KAAK,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6EpD,CAAC"}
1
+ {"version":3,"file":"EditorChrome.d.ts","sourceRoot":"","sources":["../../src/components/EditorChrome.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAK9D,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,cAAc,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,yBAAyB,EAAE,OAAO,CAAC;IACnC,uBAAuB,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/D,WAAW,EAAE,KAAK,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAiFpD,CAAC"}
@@ -26,6 +26,8 @@ export interface FloatingToolbarProps {
26
26
  showDownloadButton?: boolean;
27
27
  /** Handler for download action */
28
28
  onDownloadAsMarkdown?: () => void;
29
+ /** Handler for image source selection */
30
+ onImageSourceSelect?: (file: File) => string | Promise<string>;
29
31
  }
30
32
  /**
31
33
  * FloatingToolbar component
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingToolbar.d.ts","sourceRoot":"","sources":["../../src/components/FloatingToolbar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,qCAAqC;IACrC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kCAAkC;IAClC,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;CACnC;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA8C1D,CAAC"}
1
+ {"version":3,"file":"FloatingToolbar.d.ts","sourceRoot":"","sources":["../../src/components/FloatingToolbar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,qCAAqC;IACrC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kCAAkC;IAClC,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,yCAAyC;IACzC,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChE;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgD1D,CAAC"}
@@ -2,6 +2,7 @@ import type React from 'react';
2
2
  interface ImagePickerProps {
3
3
  onInsertMarkdown: (markdown: string) => void;
4
4
  onClose: () => void;
5
+ onImageSourceSelect?: (file: File) => string | Promise<string>;
5
6
  disabled?: boolean;
6
7
  t: (key: string, fallback?: string) => string;
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ImagePicker.d.ts","sourceRoot":"","sources":["../../src/components/ImagePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,UAAU,gBAAgB;IACxB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/C;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsGlD,CAAC"}
1
+ {"version":3,"file":"ImagePicker.d.ts","sourceRoot":"","sources":["../../src/components/ImagePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,UAAU,gBAAgB;IACxB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/C;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA8IlD,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
- import { type IMarkdownEditorProps } from '../types/index';
3
- export declare const MarkdownEditor: React.FC<IMarkdownEditorProps>;
2
+ import { type IMarkdownEditorProps, type IMarkdownEditorRef } from '../types/index';
3
+ export declare const MarkdownEditor: React.ForwardRefExoticComponent<IMarkdownEditorProps & React.RefAttributes<IMarkdownEditorRef>>;
4
4
  //# sourceMappingURL=MarkdownEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownEditor.d.ts","sourceRoot":"","sources":["../../src/components/MarkdownEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AA4BhE,OAAO,EAAa,KAAK,oBAAoB,EAAoB,MAAM,gBAAgB,CAAC;AAexF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAkezD,CAAC"}
1
+ {"version":3,"file":"MarkdownEditor.d.ts","sourceRoot":"","sources":["../../src/components/MarkdownEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4E,MAAM,OAAO,CAAC;AA4BjG,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EAExB,MAAM,gBAAgB,CAAC;AAexB,eAAO,MAAM,cAAc,iGAqpB1B,CAAC"}
@@ -8,6 +8,7 @@ import type { Editor } from '@tiptap/react';
8
8
  interface MarkdownToolbarProps {
9
9
  onInsertMarkdown: (markdown: string, cursorOffset?: number) => void;
10
10
  onImageUploadComplete?: (markdownImageUrl: string) => void;
11
+ onImageSourceSelect?: (file: File) => string | Promise<string>;
11
12
  disabled?: boolean;
12
13
  selectedText?: string;
13
14
  editor?: Editor | null;
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownToolbar.d.ts","sourceRoot":"","sources":["../../src/components/MarkdownToolbar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AA4B5C,UAAU,oBAAoB;IAC5B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,qBAAqB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAyX1D,CAAC"}
1
+ {"version":3,"file":"MarkdownToolbar.d.ts","sourceRoot":"","sources":["../../src/components/MarkdownToolbar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AA4B5C,UAAU,oBAAoB;IAC5B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,qBAAqB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqZ1D,CAAC"}
@@ -3,7 +3,7 @@ import type { LucideIcon } from '../ui/icons';
3
3
  interface ToolbarButtonProps {
4
4
  icon: LucideIcon;
5
5
  title: string;
6
- onClick: () => void;
6
+ onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;
7
7
  disabled?: boolean;
8
8
  }
9
9
  export declare const ToolbarButton: React.FC<ToolbarButtonProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarButton.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/ToolbarButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,UAAU,kBAAkB;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAuBtD,CAAC"}
1
+ {"version":3,"file":"ToolbarButton.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/ToolbarButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,UAAU,kBAAkB;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAuBtD,CAAC"}
@@ -11,6 +11,7 @@ interface UseMarkdownEditorProps {
11
11
  onMarkdownChange?: (markdown: string) => void;
12
12
  onSelectionChange?: (selection: ISelectionInfo) => void;
13
13
  onEditorReady?: (editor: Editor) => void;
14
+ onImageSourceSelect?: (file: File) => string | Promise<string>;
14
15
  isUpdating: boolean;
15
16
  isProcessing: boolean;
16
17
  setIsProcessing: (isProcessing: boolean) => void;
@@ -27,7 +28,10 @@ interface UseMarkdownEditorProps {
27
28
  to: number;
28
29
  }) => void;
29
30
  handleTableContextMenu: (event: React.MouseEvent) => void;
31
+ pendingImagesRef: React.MutableRefObject<Map<string, File>>;
30
32
  }
31
- export declare const useMarkdownEditor: ({ value, initialContent, editable, placeholder, publicImagePathPrefix, onContentChange, onChange, onMarkdownChange, onSelectionChange, onEditorReady, isUpdating, isProcessing, setIsProcessing, setProcessingProgress, setSelectionInfo, setContent, handleLinkContextMenu, handleTableContextMenu, }: UseMarkdownEditorProps) => Editor;
33
+ export declare const useMarkdownEditor: ({ value, initialContent, editable, placeholder, publicImagePathPrefix, onContentChange, onChange, onMarkdownChange, onSelectionChange, onEditorReady, onImageSourceSelect, isUpdating, isProcessing, setIsProcessing, setProcessingProgress, setSelectionInfo, setContent, handleLinkContextMenu, handleTableContextMenu, pendingImagesRef, }: UseMarkdownEditorProps) => {
34
+ editor: Editor;
35
+ };
32
36
  export {};
33
37
  //# sourceMappingURL=useMarkdownEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMarkdownEditor.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkdownEditor.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAa,MAAM,eAAe,CAAC;AAczE,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AAI9E,UAAU,sBAAsB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAC;IACxD,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,qBAAqB,EAAE,CAAC,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAChF,gBAAgB,EAAE,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,qBAAqB,EAAE,CACrB,KAAK,EAAE,KAAK,CAAC,UAAU,EACvB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAC/D,IAAI,CAAC;IACV,sBAAsB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CAC3D;AAKD,eAAO,MAAM,iBAAiB,GAAI,wSAmB/B,sBAAsB,WA2JxB,CAAC"}
1
+ {"version":3,"file":"useMarkdownEditor.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkdownEditor.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAa,MAAM,eAAe,CAAC;AAczE,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AAI9E,UAAU,sBAAsB;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,CAAC;IACxD,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/D,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,qBAAqB,EAAE,CAAC,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAChF,gBAAgB,EAAE,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,qBAAqB,EAAE,CACrB,KAAK,EAAE,KAAK,CAAC,UAAU,EACvB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAC/D,IAAI,CAAC;IACV,sBAAsB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC1D,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;CAC7D;AAKD,eAAO,MAAM,iBAAiB,GAAI,+UAqB/B,sBAAsB;;CAuNxB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { ExtendedEditor } from '../types/editor';
2
2
  interface UseMarkdownInsertionOptions {
3
3
  editor: ExtendedEditor | null;
4
+ onImageSourceSelect?: (file: File) => string | Promise<string>;
4
5
  publicImagePathPrefix?: string;
5
6
  setIsUpdating: (value: boolean) => void;
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useMarkdownInsertion.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkdownInsertion.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMtD,UAAU,2BAA2B;IACnC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,oBAAoB,GAAI,mDAIlC,2BAA2B;qCAkBT,MAAM,iBAAiB,MAAM;CAuQjD,CAAC"}
1
+ {"version":3,"file":"useMarkdownInsertion.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkdownInsertion.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMtD,UAAU,2BAA2B;IACnC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,oBAAoB,GAAI,mDAIlC,2BAA2B;qCAkBT,MAAM,iBAAiB,MAAM;CAyQjD,CAAC"}
package/dist/index.css CHANGED
@@ -701,4 +701,85 @@
701
701
  .mw-image-insert:disabled {
702
702
  opacity: 0.5;
703
703
  cursor: not-allowed;
704
- }
704
+ }
705
+
706
+ /* Image Picker File Button */
707
+ .mw-image-file-section {
708
+ display: flex;
709
+ flex-direction: column;
710
+ gap: 8px;
711
+ margin-bottom: 4px;
712
+ }
713
+
714
+ .mw-image-file-button {
715
+ display: flex;
716
+ align-items: center;
717
+ justify-content: center;
718
+ gap: 8px;
719
+ width: 100%;
720
+ height: 48px;
721
+ border: 2px dashed #4b5563;
722
+ background-color: var(--mw-toolbar-hover-bg, rgba(0, 0, 0, 0.02));
723
+ color: var(--mw-text-primary, #111827);
724
+ border-radius: var(--radius);
725
+ font-size: 13px;
726
+ font-weight: 600;
727
+ cursor: pointer;
728
+ transition: all 0.2s ease;
729
+ }
730
+
731
+ .mw-image-file-button:hover {
732
+ border-color: var(--mw-ring, #3b82f6);
733
+ background-color: var(--mw-toolbar-hover-bg, rgba(0, 0, 0, 0.04));
734
+ color: #3b82f6;
735
+ }
736
+
737
+ .mw-image-file-button:active {
738
+ background-color: var(--mw-toolbar-active-bg, rgba(0, 0, 0, 0.08));
739
+ transform: scale(0.98);
740
+ }
741
+
742
+ .mw-image-file-button:disabled {
743
+ opacity: 0.5;
744
+ cursor: not-allowed;
745
+ }
746
+
747
+ .mw-image-file-section {
748
+ display: flex;
749
+ flex-direction: column;
750
+ gap: 8px;
751
+ margin-bottom: 4px;
752
+ }
753
+
754
+ .mw-image-file-button {
755
+ display: flex;
756
+ align-items: center;
757
+ justify-content: center;
758
+ gap: 8px;
759
+ width: 100%;
760
+ height: 48px;
761
+ border: 2px dashed var(--mw-toolbar-border, #d1d5db);
762
+ background-color: var(--mw-toolbar-hover-bg, rgba(0, 0, 0, 0.02));
763
+ color: var(--mw-text-primary, #111827);
764
+ border-radius: var(--radius);
765
+ font-size: 13px;
766
+ font-weight: 600;
767
+ cursor: pointer;
768
+ transition: all 0.2s ease;
769
+ }
770
+
771
+ .mw-image-file-button:hover {
772
+ border-color: var(--mw-ring, #3b82f6);
773
+ background-color: var(--mw-toolbar-hover-bg, rgba(0, 0, 0, 0.04));
774
+ color: #3b82f6;
775
+ }
776
+
777
+ .mw-image-file-button:active {
778
+ background-color: var(--mw-toolbar-active-bg, rgba(0, 0, 0, 0.08));
779
+ transform: scale(0.98);
780
+ }
781
+
782
+ .mw-image-file-button:disabled {
783
+ opacity: 0.5;
784
+ cursor: not-allowed;
785
+ }
package/dist/index.d.ts CHANGED
@@ -23,7 +23,7 @@ export { I18nProvider, useI18n, defaultT } from './i18n/I18nContext';
23
23
  export type { Translator } from './i18n/I18nContext';
24
24
  export { createLogger, createContextLogger } from './utils/logger';
25
25
  export { SelectionUtils } from './utils/selectionUtils';
26
- export type { IMarkdownEditorProps, ILanguageOption, ISelectionInfo, I18nKey, IEmoji, EmojiCategory, IEmojiCategoryMeta, ToolbarMode, } from './types/index';
26
+ export type { IMarkdownEditorProps, ILanguageOption, ISelectionInfo, I18nKey, IEmoji, EmojiCategory, IEmojiCategoryMeta, ToolbarMode, IMarkdownEditorRef, } from './types/index';
27
27
  export { I18N_KEYS } from './types/index';
28
28
  export { EMOJI_DATA, EMOJI_CATEGORIES, EMOJI_BY_CATEGORY } from './constants/emojiData';
29
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACrE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,OAAO,EACP,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAG7E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACrE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,OAAO,EACP,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}