markdown-wysiwyg-editor 0.3.0 → 0.3.3

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/theme.css CHANGED
@@ -94,3 +94,39 @@
94
94
  --ring: 212.7 26.8% 83.9%;
95
95
  }
96
96
  }
97
+
98
+ @theme {
99
+ --color-background: hsl(var(--background));
100
+ --color-foreground: hsl(var(--foreground));
101
+
102
+ --color-card: hsl(var(--card));
103
+ --color-card-foreground: hsl(var(--card-foreground));
104
+
105
+ --color-popover: hsl(var(--popover));
106
+ --color-popover-foreground: hsl(var(--popover-foreground));
107
+
108
+ --color-primary: hsl(var(--primary));
109
+ --color-primary-foreground: hsl(var(--primary-foreground));
110
+
111
+ --color-secondary: hsl(var(--secondary));
112
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
113
+
114
+ --color-muted: hsl(var(--muted));
115
+ --color-muted-foreground: hsl(var(--muted-foreground));
116
+
117
+ --color-accent: hsl(var(--accent));
118
+ --color-accent-foreground: hsl(var(--accent-foreground));
119
+
120
+ --color-destructive: hsl(var(--destructive));
121
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
122
+
123
+ --color-border: hsl(var(--border));
124
+ --color-input: hsl(var(--input));
125
+ --color-ring: hsl(var(--ring));
126
+
127
+ --radius-lg: var(--radius);
128
+ --radius-md: calc(var(--radius) - 2px);
129
+ --radius-sm: calc(var(--radius) - 4px);
130
+
131
+ --variant-dark: .dark &;
132
+ }
@@ -47,6 +47,11 @@ export interface IMarkdownEditorProps {
47
47
  onContentChange?: (content: JSONContent) => void;
48
48
  onSelectionChange?: (selectionInfo: ISelectionInfo | null) => void;
49
49
  onEditorReady?: (editor: Editor) => void;
50
+ /**
51
+ * Callback to handle image file selection or drop/paste.
52
+ * Returns a URL (persistent or blob:) to be used in the markdown image node.
53
+ */
54
+ onImageSourceSelect?: (file: File) => string | Promise<string>;
50
55
  extensions?: unknown[];
51
56
  supportedLanguages?: ILanguageOption[];
52
57
  showSyntaxStatus?: boolean;
@@ -66,6 +71,24 @@ export interface IMarkdownEditorProps {
66
71
  showPasteDebug?: boolean;
67
72
  debug?: boolean;
68
73
  }
74
+ /**
75
+ * Interface for exposing internal editor functionality to the host application
76
+ */
77
+ export interface IMarkdownEditorRef {
78
+ /**
79
+ * Returns the current markdown content of the editor.
80
+ */
81
+ getMarkdown: () => string;
82
+ /**
83
+ * Returns a map of blob: URLs and their associated File objects that have not been uploaded yet.
84
+ */
85
+ getPendingFiles: () => Map<string, File>;
86
+ /**
87
+ * Uploads all pending images using the provided function and replaces blob: URLs with the returned URLs.
88
+ * Returns the updated markdown content.
89
+ */
90
+ finalizeImages: (uploadFn: (file: File) => Promise<string>) => Promise<string>;
91
+ }
69
92
  /**
70
93
  * i18n translation keys (for external i18n systems)
71
94
  * Use these keys with your i18n library (e.g., react-i18next, next-i18n)
@@ -189,6 +212,7 @@ export declare const I18N_KEYS: {
189
212
  readonly altLabel: "markdown_editor.image.alt_label";
190
213
  readonly altPlaceholder: "markdown_editor.image.alt_placeholder";
191
214
  readonly insert: "markdown_editor.image.insert";
215
+ readonly chooseFile: "markdown_editor.image.choose_file";
192
216
  };
193
217
  };
194
218
  type NestedValues<T> = T extends string ? T : T extends Record<string, unknown> ? {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IAEnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAGnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAG9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAG5B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAGzC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,eAAe,EAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0CAA0C;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwHZ,CAAC;AAEX,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACnC,CAAC,GACD,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,CAAC,GAC/C,KAAK,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,kBAAkB;IAClB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,QAAQ,GACR,SAAS,GACT,MAAM,GACN,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,aAAa,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,OAOxC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAQ3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,IAczD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,KAAK,MAAM,EACX,UAAU;IACR,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,KACA,MAAM,GAAG,IAgEX,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAsCzC,CAAC"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,KAAG,OAOxC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAQ3C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,IAczD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,KAAK,MAAM,EACX,UAAU;IACR,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,KACA,MAAM,GAAG,IAmEX,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,KAAG,MAsCzC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "markdown-wysiwyg-editor",
3
- "version": "0.3.0",
3
+ "version": "0.3.3",
4
4
  "description": "Lightweight Markdown WYSIWYG editor with TipTap, Mermaid support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -18,9 +18,10 @@
18
18
  "workspaces": ["example"],
19
19
  "scripts": {
20
20
  "dev": "bun build --watch ./src/index.ts --outdir ./dist --external react --external react-dom --external mermaid",
21
- "build": "bun run build:js && bun run build:css && bun run typecheck",
21
+ "build": "bun run build:js && bun run build:css && bun run build:bundle && bun run typecheck",
22
22
  "build:js": "vite build",
23
23
  "build:css": "cp ./src/index.css ./dist/index.css && cp ./src/theme.css ./dist/theme.css",
24
+ "build:bundle": "bunx @tailwindcss/cli -i ./src/bundle.css -o ./dist/bundle.css",
24
25
  "typecheck": "tsc --emitDeclarationOnly --declaration --outDir dist",
25
26
  "test": "vitest run",
26
27
  "test:coverage": "vitest run --coverage",