@bendyline/squisq-editor-react 1.2.1 → 1.3.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 (105) hide show
  1. package/dist/EditorContext.d.ts +65 -1
  2. package/dist/EditorContext.d.ts.map +1 -1
  3. package/dist/EditorContext.js +31 -4
  4. package/dist/EditorContext.js.map +1 -1
  5. package/dist/EditorShell.d.ts +101 -2
  6. package/dist/EditorShell.d.ts.map +1 -1
  7. package/dist/EditorShell.js +20 -8
  8. package/dist/EditorShell.js.map +1 -1
  9. package/dist/ImageNodeView.d.ts.map +1 -1
  10. package/dist/ImageNodeView.js +12 -2
  11. package/dist/ImageNodeView.js.map +1 -1
  12. package/dist/MediaBin.d.ts.map +1 -1
  13. package/dist/MediaBin.js +16 -1
  14. package/dist/MediaBin.js.map +1 -1
  15. package/dist/MentionExtension.d.ts +22 -0
  16. package/dist/MentionExtension.d.ts.map +1 -0
  17. package/dist/MentionExtension.js +242 -0
  18. package/dist/MentionExtension.js.map +1 -0
  19. package/dist/PreviewPanel.d.ts +3 -8
  20. package/dist/PreviewPanel.d.ts.map +1 -1
  21. package/dist/PreviewPanel.js +4 -282
  22. package/dist/PreviewPanel.js.map +1 -1
  23. package/dist/RawEditor.d.ts +8 -1
  24. package/dist/RawEditor.d.ts.map +1 -1
  25. package/dist/RawEditor.js +167 -30
  26. package/dist/RawEditor.js.map +1 -1
  27. package/dist/TemplateAnnotation.d.ts.map +1 -1
  28. package/dist/TemplateAnnotation.js +4 -2
  29. package/dist/TemplateAnnotation.js.map +1 -1
  30. package/dist/Toolbar.d.ts +7 -1
  31. package/dist/Toolbar.d.ts.map +1 -1
  32. package/dist/Toolbar.js +57 -18
  33. package/dist/Toolbar.js.map +1 -1
  34. package/dist/Tooltip.d.ts +10 -0
  35. package/dist/Tooltip.d.ts.map +1 -0
  36. package/dist/Tooltip.js +104 -0
  37. package/dist/Tooltip.js.map +1 -0
  38. package/dist/ViewSwitcher.d.ts +1 -1
  39. package/dist/ViewSwitcher.d.ts.map +1 -1
  40. package/dist/ViewSwitcher.js +10 -4
  41. package/dist/ViewSwitcher.js.map +1 -1
  42. package/dist/WysiwygEditor.d.ts +13 -2
  43. package/dist/WysiwygEditor.d.ts.map +1 -1
  44. package/dist/WysiwygEditor.js +239 -4
  45. package/dist/WysiwygEditor.js.map +1 -1
  46. package/dist/__tests__/detectMarkdown.test.d.ts +2 -0
  47. package/dist/__tests__/detectMarkdown.test.d.ts.map +1 -0
  48. package/dist/__tests__/detectMarkdown.test.js +69 -0
  49. package/dist/__tests__/detectMarkdown.test.js.map +1 -0
  50. package/dist/__tests__/fileKind.test.d.ts +2 -0
  51. package/dist/__tests__/fileKind.test.d.ts.map +1 -0
  52. package/dist/__tests__/fileKind.test.js +81 -0
  53. package/dist/__tests__/fileKind.test.js.map +1 -0
  54. package/dist/__tests__/tiptapBridge.test.js +36 -0
  55. package/dist/__tests__/tiptapBridge.test.js.map +1 -1
  56. package/dist/buildPreviewDoc.d.ts +22 -0
  57. package/dist/buildPreviewDoc.d.ts.map +1 -0
  58. package/dist/buildPreviewDoc.js +212 -0
  59. package/dist/buildPreviewDoc.js.map +1 -0
  60. package/dist/detectMarkdown.d.ts +20 -0
  61. package/dist/detectMarkdown.d.ts.map +1 -0
  62. package/dist/detectMarkdown.js +61 -0
  63. package/dist/detectMarkdown.js.map +1 -0
  64. package/dist/fileKind.d.ts +30 -0
  65. package/dist/fileKind.d.ts.map +1 -0
  66. package/dist/fileKind.js +123 -0
  67. package/dist/fileKind.js.map +1 -0
  68. package/dist/hooks/useFileDrop.d.ts.map +1 -1
  69. package/dist/hooks/useFileDrop.js +9 -7
  70. package/dist/hooks/useFileDrop.js.map +1 -1
  71. package/dist/index.d.ts +5 -1
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +6 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/mediaDragMime.d.ts +17 -0
  76. package/dist/mediaDragMime.d.ts.map +1 -0
  77. package/dist/mediaDragMime.js +22 -0
  78. package/dist/mediaDragMime.js.map +1 -0
  79. package/dist/tiptapBridge.d.ts.map +1 -1
  80. package/dist/tiptapBridge.js +58 -2
  81. package/dist/tiptapBridge.js.map +1 -1
  82. package/package.json +9 -7
  83. package/src/EditorContext.tsx +106 -3
  84. package/src/EditorShell.tsx +195 -15
  85. package/src/ImageNodeView.tsx +15 -2
  86. package/src/MediaBin.tsx +23 -1
  87. package/src/MentionExtension.tsx +258 -0
  88. package/src/PreviewPanel.tsx +5 -333
  89. package/src/RawEditor.tsx +193 -37
  90. package/src/TemplateAnnotation.ts +4 -2
  91. package/src/Toolbar.tsx +111 -48
  92. package/src/Tooltip.tsx +124 -0
  93. package/src/ViewSwitcher.tsx +15 -5
  94. package/src/WysiwygEditor.tsx +270 -5
  95. package/src/__tests__/detectMarkdown.test.ts +88 -0
  96. package/src/__tests__/fileKind.test.ts +96 -0
  97. package/src/__tests__/tiptapBridge.test.ts +44 -0
  98. package/src/buildPreviewDoc.ts +254 -0
  99. package/src/detectMarkdown.ts +62 -0
  100. package/src/fileKind.ts +134 -0
  101. package/src/hooks/useFileDrop.ts +10 -6
  102. package/src/index.ts +14 -0
  103. package/src/mediaDragMime.ts +32 -0
  104. package/src/styles/editor.css +214 -8
  105. package/src/tiptapBridge.ts +66 -2
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Shared MIME type used to signal an in-app drag from the MediaBin to either
3
+ * the Raw or WYSIWYG editor. Carries a JSON payload of the form
4
+ * `{ name, mimeType, alt }` so the receiving editor can insert a reference
5
+ * to an existing media entry without re-uploading it.
6
+ */
7
+ export declare const SQUISQ_MEDIA_MIME = "application/x-squisq-media";
8
+ export interface SquisqMediaDragPayload {
9
+ /** Relative path / filename as stored in the MediaProvider. */
10
+ name: string;
11
+ /** MIME type of the entry. */
12
+ mimeType: string;
13
+ /** Default alt text derived from the filename. */
14
+ alt: string;
15
+ }
16
+ export declare function parseSquisqMediaPayload(raw: string): SquisqMediaDragPayload | null;
17
+ //# sourceMappingURL=mediaDragMime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaDragMime.d.ts","sourceRoot":"","sources":["../src/mediaDragMime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,+BAA+B,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAclF"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Shared MIME type used to signal an in-app drag from the MediaBin to either
3
+ * the Raw or WYSIWYG editor. Carries a JSON payload of the form
4
+ * `{ name, mimeType, alt }` so the receiving editor can insert a reference
5
+ * to an existing media entry without re-uploading it.
6
+ */
7
+ export const SQUISQ_MEDIA_MIME = 'application/x-squisq-media';
8
+ export function parseSquisqMediaPayload(raw) {
9
+ try {
10
+ const parsed = JSON.parse(raw);
11
+ if (typeof parsed.name === 'string' &&
12
+ typeof parsed.mimeType === 'string' &&
13
+ typeof parsed.alt === 'string') {
14
+ return parsed;
15
+ }
16
+ }
17
+ catch {
18
+ // fall through
19
+ }
20
+ return null;
21
+ }
22
+ //# sourceMappingURL=mediaDragMime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaDragMime.js","sourceRoot":"","sources":["../src/mediaDragMime.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AAW9D,MAAM,UAAU,uBAAuB,CAAC,GAAW;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoC,CAAC;QAClE,IACE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAC/B,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YACnC,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAC9B,CAAC;YACD,OAAO,MAAgC,CAAC;QAC1C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tiptapBridge.d.ts","sourceRoot":"","sources":["../src/tiptapBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAsBH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmOzD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsNrD"}
1
+ {"version":3,"file":"tiptapBridge.d.ts","sourceRoot":"","sources":["../src/tiptapBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA2BH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAmOzD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsNrD"}
@@ -19,6 +19,11 @@ const RE_STRIKETHROUGH = /~~(.+?)~~/g;
19
19
  const RE_INLINE_CODE = /`(.+?)`/g;
20
20
  const RE_LINK = /\[(.+?)\]\((.+?)\)/g;
21
21
  const RE_IMAGE = /!\[(.+?)\]\((.+?)\)/g;
22
+ // Mentions: `@[Display](scheme:id)` — scheme-part must start with a letter
23
+ // so plain `$100` or price-style parentheticals don't accidentally match.
24
+ // remark-stringify may round-trip the colon as `\:` — tolerate either.
25
+ const RE_MENTION = /@\[([^\]]+?)\]\(([a-z][a-z0-9+.-]*)\\?:([^)\s]+)\)/gi;
26
+ const RE_MENTION_TAG = /<span\b[^>]*?\bdata-mention\b[^>]*?>(?:<[^>]+>)*([^<]*)<\/span>/gi;
22
27
  const RE_STRONG_TAG = /<strong>(.*?)<\/strong>/g;
23
28
  const RE_B_TAG = /<b>(.*?)<\/b>/g;
24
29
  const RE_EM_TAG = /<em>(.*?)<\/em>/g;
@@ -367,7 +372,7 @@ export function tiptapToMarkdown(html) {
367
372
  if (ulMatch) {
368
373
  const items = ulMatch[1].matchAll(/<li>(.*?)<\/li>/gs);
369
374
  for (const item of items) {
370
- lines.push('- ' + htmlToInline(item[1].replace(/<\/?p>/g, '')));
375
+ lines.push(...renderListItem('- ', item[1]));
371
376
  }
372
377
  lines.push('');
373
378
  remaining = remaining.slice(ulMatch[0].length);
@@ -378,7 +383,7 @@ export function tiptapToMarkdown(html) {
378
383
  if (olMatch) {
379
384
  const items = [...olMatch[1].matchAll(/<li>(.*?)<\/li>/gs)];
380
385
  items.forEach((item, idx) => {
381
- lines.push(`${idx + 1}. ` + htmlToInline(item[1].replace(/<\/?p>/g, '')));
386
+ lines.push(...renderListItem(`${idx + 1}. `, item[1]));
382
387
  });
383
388
  lines.push('');
384
389
  remaining = remaining.slice(olMatch[0].length);
@@ -417,6 +422,39 @@ export function tiptapToMarkdown(html) {
417
422
  .replace(/\n{3,}/g, '\n\n')
418
423
  .trim() + '\n');
419
424
  }
425
+ /**
426
+ * Render a list item's HTML content as one or more markdown lines.
427
+ * Handles `<p>` paragraph breaks (blank line) and `<br>` hard breaks
428
+ * (two trailing spaces). Continuation lines are indented to keep them
429
+ * inside the list item.
430
+ */
431
+ function renderListItem(prefix, html) {
432
+ const indent = ' '.repeat(prefix.length);
433
+ // Split on </p><p> to detect paragraph breaks within the item
434
+ const paragraphs = html
435
+ .split(/<\/p>\s*<p[^>]*>/i)
436
+ .map((p) => p.replace(/^<p[^>]*>/i, '').replace(/<\/p>\s*$/i, ''));
437
+ const result = [];
438
+ paragraphs.forEach((paragraph, pIdx) => {
439
+ const inline = htmlToInline(paragraph).trim();
440
+ if (!inline)
441
+ return;
442
+ // Each <br> already became " \n" in htmlToInline; split on it now.
443
+ const subLines = inline.split('\n');
444
+ subLines.forEach((sub, sIdx) => {
445
+ if (pIdx === 0 && sIdx === 0) {
446
+ result.push(prefix + sub);
447
+ }
448
+ else {
449
+ // Blank line separator between paragraphs (sIdx === 0 means new paragraph)
450
+ if (sIdx === 0)
451
+ result.push('');
452
+ result.push(indent + sub);
453
+ }
454
+ });
455
+ });
456
+ return result.length > 0 ? result : [prefix];
457
+ }
420
458
  // ─── Table helpers ───────────────────────────────────────
421
459
  /** Split a GFM table row into trimmed cell strings (strips outer pipes). */
422
460
  function parseTableCells(line) {
@@ -470,6 +508,11 @@ function inlineToHtml(text) {
470
508
  result = result.replace(RE_INLINE_CODE, '<code>$1</code>');
471
509
  // Images first: ![alt](src) — must be before links so the `!` prefix is consumed
472
510
  result = result.replace(RE_IMAGE, '<img alt="$1" src="$2">');
511
+ // Mentions: @[Display](scheme:id) — must run before links so the
512
+ // bracket+paren isn't consumed as a regular link. The input here has
513
+ // already been run through escapeHtml at the top of this function, so
514
+ // the captured groups are safe to interpolate directly.
515
+ result = result.replace(RE_MENTION, (_match, label, kind, id) => `<span data-mention="true" data-kind="${kind}" data-id="${id}" data-label="${label}" class="mention">@${label}</span>`);
473
516
  // Links: [text](url)
474
517
  result = result.replace(RE_LINK, '<a href="$2">$1</a>');
475
518
  return result;
@@ -477,6 +520,9 @@ function inlineToHtml(text) {
477
520
  /** Convert inline HTML back to markdown */
478
521
  function htmlToInline(html) {
479
522
  let result = html;
523
+ // Soft line breaks — convert <br> to GFM hard-break syntax (two trailing
524
+ // spaces + newline) before stripping tags so the newline survives.
525
+ result = result.replace(/<br\s*\/?>/gi, ' \n');
480
526
  // Strong
481
527
  result = result.replace(RE_STRONG_TAG, '**$1**');
482
528
  result = result.replace(RE_B_TAG, '**$1**');
@@ -488,6 +534,16 @@ function htmlToInline(html) {
488
534
  result = result.replace(RE_DEL_TAG, '~~$1~~');
489
535
  // Code
490
536
  result = result.replace(RE_CODE_TAG, '`$1`');
537
+ // Mentions — match before the link handler so the span isn't stripped
538
+ // out as an unknown tag. Pull kind + id out of the data attributes.
539
+ result = result.replace(RE_MENTION_TAG, (match, _inner) => {
540
+ const kind = /data-kind="([^"]*)"/i.exec(match)?.[1] ?? '';
541
+ const id = /data-id="([^"]*)"/i.exec(match)?.[1] ?? '';
542
+ const label = /data-label="([^"]*)"/i.exec(match)?.[1] ?? '';
543
+ if (!kind || !id || !label)
544
+ return match;
545
+ return `@[${label}](${kind}:${id})`;
546
+ });
491
547
  // Links
492
548
  result = result.replace(RE_A_TAG, '[$2]($1)');
493
549
  // Images
@@ -1 +1 @@
1
- {"version":3,"file":"tiptapBridge.js","sourceRoot":"","sources":["../src/tiptapBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tiptapBridge.js","sourceRoot":"","sources":["../src/tiptapBridge.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/squisq-editor-react",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "React editor shell with raw/WYSIWYG/preview modes for Squisq documents",
5
5
  "license": "MIT",
6
6
  "author": "Bendyline",
@@ -31,8 +31,8 @@
31
31
  ],
32
32
  "exports": {
33
33
  ".": {
34
- "import": "./dist/index.js",
35
- "types": "./dist/index.d.ts"
34
+ "types": "./dist/index.d.ts",
35
+ "import": "./dist/index.js"
36
36
  },
37
37
  "./styles": "./src/styles/editor.css"
38
38
  },
@@ -46,11 +46,12 @@
46
46
  "react-dom": "^18.0.0 || ^19.0.0"
47
47
  },
48
48
  "dependencies": {
49
- "@bendyline/squisq": "1.2.1",
50
- "@bendyline/squisq-formats": "1.2.1",
51
- "@bendyline/squisq-react": "1.1.1",
49
+ "@bendyline/squisq": "1.3.0",
50
+ "@bendyline/squisq-formats": "1.2.3",
51
+ "@bendyline/squisq-react": "1.2.0",
52
52
  "@monaco-editor/react": "4.7.0",
53
53
  "@tiptap/extension-image": "2.27.2",
54
+ "@tiptap/extension-mention": "2.27.2",
54
55
  "@tiptap/extension-placeholder": "2.27.2",
55
56
  "@tiptap/extension-table": "2.27.2",
56
57
  "@tiptap/extension-table-cell": "2.27.2",
@@ -60,7 +61,8 @@
60
61
  "@tiptap/extension-task-list": "2.27.2",
61
62
  "@tiptap/pm": "2.27.2",
62
63
  "@tiptap/react": "2.27.2",
63
- "@tiptap/starter-kit": "2.27.2"
64
+ "@tiptap/starter-kit": "2.27.2",
65
+ "@tiptap/suggestion": "2.27.2"
64
66
  },
65
67
  "devDependencies": {
66
68
  "@types/react": "18.3.28",
@@ -24,14 +24,47 @@ import { markdownToDoc } from '@bendyline/squisq/doc';
24
24
  import type { Editor as TiptapEditor } from '@tiptap/core';
25
25
  import type { editor as MonacoEditorNs } from 'monaco-editor';
26
26
  import { markdownToTiptap } from './tiptapBridge';
27
+ import { resolveFileKind } from './fileKind';
27
28
 
28
29
  /** Monaco standalone code editor instance type */
29
30
  type MonacoEditor = MonacoEditorNs.IStandaloneCodeEditor;
30
31
 
32
+ /**
33
+ * One candidate returned by a {@link MentionProvider}. Shown in the editor's
34
+ * `@` popover. `id` is the stable identifier (serialized into the mention
35
+ * wire format); `label` is what the reader sees; `scheme` is the namespace
36
+ * (e.g. `'user'`, `'issue'`) written into the markdown as `@[label](scheme:id)`;
37
+ * `description` and `group` are optional hints for richer suggestion UIs.
38
+ *
39
+ * Different candidates in the same result set may carry different schemes —
40
+ * a provider that returns both users and issues, for example, tags each
41
+ * candidate with its own namespace and the editor emits mentions accordingly.
42
+ */
43
+ export interface MentionCandidate {
44
+ id: string;
45
+ label: string;
46
+ scheme: string;
47
+ description?: string;
48
+ group?: string;
49
+ }
50
+
51
+ /**
52
+ * Looks up mention candidates matching a query. Called as the user types
53
+ * after `@`. The provider is free to do server-side or client-side filtering;
54
+ * the editor only cares that candidates come back in relevance order.
55
+ */
56
+ export type MentionProvider = (query: string) => Promise<MentionCandidate[]>;
57
+
31
58
  // ─── Types ───────────────────────────────────────────────
32
59
 
33
60
  export type EditorView = 'raw' | 'wysiwyg' | 'preview';
34
61
  export type EditorTheme = 'light' | 'dark';
62
+ /**
63
+ * Editor operating mode. `markdown` is the full experience (WYSIWYG +
64
+ * Preview tabs, formatting toolbar). `code` is a Monaco-only view used
65
+ * when the content represents a non-markdown file like `foo.ts`.
66
+ */
67
+ export type EditorMode = 'markdown' | 'code';
35
68
 
36
69
  export interface EditorState {
37
70
  /** Raw markdown source string */
@@ -48,6 +81,10 @@ export interface EditorState {
48
81
  isParsing: boolean;
49
82
  /** Current color theme */
50
83
  theme: EditorTheme;
84
+ /** Operating mode — 'markdown' for the full shell, 'code' for Monaco-only. */
85
+ editorMode: EditorMode;
86
+ /** Monaco language ID for the Raw editor. */
87
+ language: string;
51
88
  }
52
89
 
53
90
  export interface EditorActions {
@@ -76,8 +113,25 @@ export interface EditorContextValue extends EditorState, EditorActions {
76
113
  monacoEditor: MonacoEditor | null;
77
114
  /** MediaProvider for resolving image URLs in the WYSIWYG editor */
78
115
  mediaProvider: MediaProvider | null;
116
+ /**
117
+ * How pasted/inserted images should be displayed in the WYSIWYG view.
118
+ * `'inline'` (default) lets them flow at natural size up to the editor
119
+ * width; `'thumbnail'` constrains them to a 100×100 box so chat
120
+ * composers and other dense surfaces don't get dominated by a single
121
+ * pasted screenshot. The stored image bytes are unchanged — this is a
122
+ * pure render-time decision.
123
+ */
124
+ imageDisplayMode: ImageDisplayMode;
125
+ /**
126
+ * Optional provider for `@`-mention suggestions. When set, both the
127
+ * WYSIWYG (Tiptap) and Raw (Monaco) editors show a mention popover as
128
+ * the user types `@<query>`. When unset, `@` is just a literal character.
129
+ */
130
+ mentionProvider: MentionProvider | null;
79
131
  }
80
132
 
133
+ export type ImageDisplayMode = 'inline' | 'thumbnail';
134
+
81
135
  // ─── Context ─────────────────────────────────────────────
82
136
 
83
137
  const EditorContext = createContext<EditorContextValue | null>(null);
@@ -107,6 +161,20 @@ export interface EditorProviderProps {
107
161
  theme?: EditorTheme;
108
162
  /** MediaProvider for resolving image URLs */
109
163
  mediaProvider?: MediaProvider | null;
164
+ /** Display mode for images in the WYSIWYG view. Defaults to `'inline'`. */
165
+ imageDisplayMode?: ImageDisplayMode;
166
+ /**
167
+ * Async provider for `@`-mention suggestions. Omit to disable mentions
168
+ * entirely — typing `@` becomes just a literal character again.
169
+ */
170
+ mentionProvider?: MentionProvider | null;
171
+ /**
172
+ * File name (e.g. `foo.ts`) or bare extension — used to pick a Monaco
173
+ * language and decide between markdown vs. code mode.
174
+ */
175
+ fileName?: string;
176
+ /** Explicit Monaco language ID — wins over the fileName-derived one. */
177
+ language?: string;
110
178
  children: ReactNode;
111
179
  }
112
180
 
@@ -120,12 +188,34 @@ export function EditorProvider({
120
188
  articleId = 'untitled',
121
189
  theme: initialTheme = 'light',
122
190
  mediaProvider = null,
191
+ imageDisplayMode = 'inline',
192
+ mentionProvider = null,
193
+ fileName,
194
+ language,
123
195
  children,
124
196
  }: EditorProviderProps) {
197
+ // Resolve once per provider mount. Changing fileName/language after mount
198
+ // would require recreating the Monaco model anyway, so treat it as static.
199
+ const { mode: editorMode, language: resolvedLanguage } = useMemo(
200
+ () => resolveFileKind(fileName, language),
201
+ [fileName, language],
202
+ );
203
+ // In code mode, WYSIWYG and Preview aren't rendered — force the starting
204
+ // view to 'raw' so we don't boot into an unmounted surface.
125
205
  const [markdownSource, setMarkdownSourceRaw] = useState(initialMarkdown);
126
206
  const [markdownDoc, setMarkdownDocState] = useState<MarkdownDocument | null>(null);
127
207
  const [doc, setDoc] = useState<Doc | null>(null);
128
- const [activeView, setActiveView] = useState<EditorView>(initialView);
208
+ const [activeView, setActiveViewRaw] = useState<EditorView>(
209
+ editorMode === 'code' ? 'raw' : initialView,
210
+ );
211
+ const setActiveView = useCallback(
212
+ (view: EditorView) => {
213
+ // In code mode only the raw view is valid; ignore any other requests.
214
+ if (editorMode === 'code' && view !== 'raw') return;
215
+ setActiveViewRaw(view);
216
+ },
217
+ [editorMode],
218
+ );
129
219
  const [parseError, setParseError] = useState<string | null>(null);
130
220
  const [isParsing, setIsParsing] = useState(false);
131
221
  const [theme, setTheme] = useState<EditorTheme>(initialTheme);
@@ -170,8 +260,12 @@ export function EditorProvider({
170
260
  }
171
261
  }, []);
172
262
 
173
- // Parse on source changes with debounce
263
+ // Parse on source changes with debounce. Skipped in code mode — the
264
+ // WYSIWYG/Preview surfaces that consume markdownDoc/doc aren't mounted,
265
+ // so there's nothing to feed and no reason to run the markdown parser on
266
+ // TypeScript / JSON / etc.
174
267
  useEffect(() => {
268
+ if (editorMode === 'code') return;
175
269
  if (parseTimeoutRef.current) {
176
270
  clearTimeout(parseTimeoutRef.current);
177
271
  }
@@ -183,10 +277,11 @@ export function EditorProvider({
183
277
  clearTimeout(parseTimeoutRef.current);
184
278
  }
185
279
  };
186
- }, [markdownSource, doParse]);
280
+ }, [markdownSource, doParse, editorMode]);
187
281
 
188
282
  // Initial parse
189
283
  useEffect(() => {
284
+ if (editorMode === 'code') return;
190
285
  if (initialMarkdown) {
191
286
  doParse(initialMarkdown);
192
287
  }
@@ -276,9 +371,13 @@ export function EditorProvider({
276
371
  parseError,
277
372
  isParsing,
278
373
  theme,
374
+ editorMode,
375
+ language: resolvedLanguage,
279
376
  tiptapEditor,
280
377
  monacoEditor,
281
378
  mediaProvider,
379
+ imageDisplayMode,
380
+ mentionProvider,
282
381
  setMarkdownSource,
283
382
  setMarkdownDoc,
284
383
  setActiveView,
@@ -296,9 +395,13 @@ export function EditorProvider({
296
395
  parseError,
297
396
  isParsing,
298
397
  theme,
398
+ editorMode,
399
+ resolvedLanguage,
299
400
  tiptapEditor,
300
401
  monacoEditor,
301
402
  mediaProvider,
403
+ imageDisplayMode,
404
+ mentionProvider,
302
405
  setMarkdownSource,
303
406
  setMarkdownDoc,
304
407
  setActiveView,