@pyreon/code 0.5.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 (80) hide show
  1. package/LICENSE +21 -0
  2. package/lib/analysis/index.js.html +5406 -0
  3. package/lib/dist-B5vB-rif.js +3904 -0
  4. package/lib/dist-B5vB-rif.js.map +1 -0
  5. package/lib/dist-BAfzu5eu.js +1428 -0
  6. package/lib/dist-BAfzu5eu.js.map +1 -0
  7. package/lib/dist-BLlV_D16.js +1166 -0
  8. package/lib/dist-BLlV_D16.js.map +1 -0
  9. package/lib/dist-BNmKLTu8.js +373 -0
  10. package/lib/dist-BNmKLTu8.js.map +1 -0
  11. package/lib/dist-BZtTlC1J.js +692 -0
  12. package/lib/dist-BZtTlC1J.js.map +1 -0
  13. package/lib/dist-CTDqGIAf.js +856 -0
  14. package/lib/dist-CTDqGIAf.js.map +1 -0
  15. package/lib/dist-CTPisNZp.js +83 -0
  16. package/lib/dist-CTPisNZp.js.map +1 -0
  17. package/lib/dist-Ce2tvOxv.js +379 -0
  18. package/lib/dist-Ce2tvOxv.js.map +1 -0
  19. package/lib/dist-CttF0OTv.js +465 -0
  20. package/lib/dist-CttF0OTv.js.map +1 -0
  21. package/lib/dist-DS2tluW9.js +818 -0
  22. package/lib/dist-DS2tluW9.js.map +1 -0
  23. package/lib/dist-DUNx9ldu.js +460 -0
  24. package/lib/dist-DUNx9ldu.js.map +1 -0
  25. package/lib/dist-Dej_yf3k.js +473 -0
  26. package/lib/dist-Dej_yf3k.js.map +1 -0
  27. package/lib/dist-DshStUxU.js +283 -0
  28. package/lib/dist-DshStUxU.js.map +1 -0
  29. package/lib/dist-qTrOe7xY.js +461 -0
  30. package/lib/dist-qTrOe7xY.js.map +1 -0
  31. package/lib/dist-v09vikKr.js +2421 -0
  32. package/lib/dist-v09vikKr.js.map +1 -0
  33. package/lib/index.js +915 -0
  34. package/lib/index.js.map +1 -0
  35. package/lib/types/dist.d.ts +798 -0
  36. package/lib/types/dist.d.ts.map +1 -0
  37. package/lib/types/dist10.d.ts +67 -0
  38. package/lib/types/dist10.d.ts.map +1 -0
  39. package/lib/types/dist11.d.ts +126 -0
  40. package/lib/types/dist11.d.ts.map +1 -0
  41. package/lib/types/dist12.d.ts +21 -0
  42. package/lib/types/dist12.d.ts.map +1 -0
  43. package/lib/types/dist13.d.ts +404 -0
  44. package/lib/types/dist13.d.ts.map +1 -0
  45. package/lib/types/dist14.d.ts +292 -0
  46. package/lib/types/dist14.d.ts.map +1 -0
  47. package/lib/types/dist15.d.ts +132 -0
  48. package/lib/types/dist15.d.ts.map +1 -0
  49. package/lib/types/dist2.d.ts +15 -0
  50. package/lib/types/dist2.d.ts.map +1 -0
  51. package/lib/types/dist3.d.ts +106 -0
  52. package/lib/types/dist3.d.ts.map +1 -0
  53. package/lib/types/dist4.d.ts +67 -0
  54. package/lib/types/dist4.d.ts.map +1 -0
  55. package/lib/types/dist5.d.ts +95 -0
  56. package/lib/types/dist5.d.ts.map +1 -0
  57. package/lib/types/dist6.d.ts +330 -0
  58. package/lib/types/dist6.d.ts.map +1 -0
  59. package/lib/types/dist7.d.ts +15 -0
  60. package/lib/types/dist7.d.ts.map +1 -0
  61. package/lib/types/dist8.d.ts +15 -0
  62. package/lib/types/dist8.d.ts.map +1 -0
  63. package/lib/types/dist9.d.ts +635 -0
  64. package/lib/types/dist9.d.ts.map +1 -0
  65. package/lib/types/index.d.ts +852 -0
  66. package/lib/types/index.d.ts.map +1 -0
  67. package/lib/types/index2.d.ts +347 -0
  68. package/lib/types/index2.d.ts.map +1 -0
  69. package/package.json +79 -0
  70. package/src/components/code-editor.tsx +42 -0
  71. package/src/components/diff-editor.tsx +97 -0
  72. package/src/components/tabbed-editor.tsx +86 -0
  73. package/src/editor.ts +652 -0
  74. package/src/index.ts +52 -0
  75. package/src/languages.ts +77 -0
  76. package/src/minimap.ts +160 -0
  77. package/src/tabbed-editor.ts +231 -0
  78. package/src/tests/code.test.ts +505 -0
  79. package/src/themes.ts +87 -0
  80. package/src/types.ts +253 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":["CMGutterMarker","placeholderExt","undo","redo","setDiagnostics","cmSetDiagnostics"],"sources":["../../../../node_modules/.bun/@pyreon+core@0.6.0/node_modules/@pyreon/core/lib/jsx-runtime.js","../../src/components/code-editor.tsx","../../src/languages.ts","../../src/themes.ts","../../src/components/diff-editor.tsx","../../src/components/tabbed-editor.tsx","../../src/minimap.ts","../../src/editor.ts"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -0,0 +1,347 @@
1
+ import { Extension } from "@codemirror/state";
2
+ import { EditorView } from "@codemirror/view";
3
+ import { Computed, Signal } from "@pyreon/reactivity";
4
+ import { VNodeChild } from "@pyreon/core";
5
+
6
+ //#region src/types.d.ts
7
+ type EditorLanguage = 'javascript' | 'typescript' | 'jsx' | 'tsx' | 'html' | 'css' | 'json' | 'markdown' | 'python' | 'rust' | 'sql' | 'xml' | 'yaml' | 'cpp' | 'java' | 'go' | 'php' | 'ruby' | 'shell' | 'plain';
8
+ type EditorTheme = 'light' | 'dark' | Extension;
9
+ interface EditorConfig {
10
+ /** Initial value */
11
+ value?: string;
12
+ /** Language for syntax highlighting — lazy-loaded */
13
+ language?: EditorLanguage;
14
+ /** Theme — 'light', 'dark', or a custom CodeMirror theme extension */
15
+ theme?: EditorTheme;
16
+ /** Show line numbers — default: true */
17
+ lineNumbers?: boolean;
18
+ /** Read-only mode — default: false */
19
+ readOnly?: boolean;
20
+ /** Enable code folding — default: true */
21
+ foldGutter?: boolean;
22
+ /** Enable bracket matching — default: true */
23
+ bracketMatching?: boolean;
24
+ /** Enable autocomplete — default: true */
25
+ autocomplete?: boolean;
26
+ /** Enable search (Cmd+F) — default: true */
27
+ search?: boolean;
28
+ /** Enable lint/diagnostics — default: false */
29
+ lint?: boolean;
30
+ /** Enable indent guides — default: true */
31
+ highlightIndentGuides?: boolean;
32
+ /** Vim keybinding mode — default: false */
33
+ vim?: boolean;
34
+ /** Emacs keybinding mode — default: false */
35
+ emacs?: boolean;
36
+ /** Tab size — default: 2 */
37
+ tabSize?: number;
38
+ /** Enable indent guides — default: true */
39
+ indentGuides?: boolean;
40
+ /** Enable line wrapping — default: false */
41
+ lineWrapping?: boolean;
42
+ /** Placeholder text when empty */
43
+ placeholder?: string;
44
+ /** Enable minimap — default: false */
45
+ minimap?: boolean;
46
+ /** Additional CodeMirror extensions */
47
+ extensions?: Extension[];
48
+ /** Called when value changes */
49
+ onChange?: (value: string) => void;
50
+ }
51
+ interface EditorInstance {
52
+ /** Current editor value — reactive signal */
53
+ value: Signal<string>;
54
+ /** Current language — reactive signal */
55
+ language: Signal<EditorLanguage>;
56
+ /** Current theme — reactive signal */
57
+ theme: Signal<EditorTheme>;
58
+ /** Read-only state — reactive signal */
59
+ readOnly: Signal<boolean>;
60
+ /** Cursor position — reactive */
61
+ cursor: Computed<{
62
+ line: number;
63
+ col: number;
64
+ }>;
65
+ /** Current selection — reactive */
66
+ selection: Computed<{
67
+ from: number;
68
+ to: number;
69
+ text: string;
70
+ }>;
71
+ /** Line count — reactive */
72
+ lineCount: Computed<number>;
73
+ /** Whether the editor has focus — reactive */
74
+ focused: Signal<boolean>;
75
+ /** The underlying CodeMirror EditorView — null until mounted */
76
+ view: Signal<EditorView | null>;
77
+ /** Focus the editor */
78
+ focus: () => void;
79
+ /** Insert text at cursor */
80
+ insert: (text: string) => void;
81
+ /** Replace selection */
82
+ replaceSelection: (text: string) => void;
83
+ /** Select a range */
84
+ select: (from: number, to: number) => void;
85
+ /** Select all */
86
+ selectAll: () => void;
87
+ /** Go to a specific line */
88
+ goToLine: (line: number) => void;
89
+ /** Undo */
90
+ undo: () => void;
91
+ /** Redo */
92
+ redo: () => void;
93
+ /** Fold all */
94
+ foldAll: () => void;
95
+ /** Unfold all */
96
+ unfoldAll: () => void;
97
+ /** Set diagnostics (lint errors/warnings) */
98
+ setDiagnostics: (diagnostics: Diagnostic[]) => void;
99
+ /** Clear all diagnostics */
100
+ clearDiagnostics: () => void;
101
+ /** Highlight a specific line (e.g., error line, current execution) */
102
+ highlightLine: (line: number, className: string) => void;
103
+ /** Clear all line highlights */
104
+ clearLineHighlights: () => void;
105
+ /** Set gutter markers (breakpoints, error icons) */
106
+ setGutterMarker: (line: number, marker: GutterMarker) => void;
107
+ /** Clear all gutter markers */
108
+ clearGutterMarkers: () => void;
109
+ /** Add a custom keybinding */
110
+ addKeybinding: (key: string, handler: () => boolean | undefined) => void;
111
+ /** Get the text of a specific line */
112
+ getLine: (line: number) => string;
113
+ /** Get word at cursor position */
114
+ getWordAtCursor: () => string;
115
+ /** Scroll to a specific position */
116
+ scrollTo: (pos: number) => void;
117
+ /** The editor configuration */
118
+ config: EditorConfig;
119
+ /** Dispose — clean up view and listeners */
120
+ dispose: () => void;
121
+ }
122
+ interface Diagnostic {
123
+ /** Start position (character offset) */
124
+ from: number;
125
+ /** End position (character offset) */
126
+ to: number;
127
+ /** Severity */
128
+ severity: 'error' | 'warning' | 'info' | 'hint';
129
+ /** Message */
130
+ message: string;
131
+ /** Optional source (e.g., "typescript", "eslint") */
132
+ source?: string;
133
+ }
134
+ interface GutterMarker {
135
+ /** CSS class for the marker element */
136
+ class?: string;
137
+ /** Text content (e.g., emoji or icon) */
138
+ text?: string;
139
+ /** Tooltip on hover */
140
+ title?: string;
141
+ }
142
+ interface CodeEditorProps {
143
+ instance: EditorInstance;
144
+ style?: string;
145
+ class?: string;
146
+ }
147
+ interface DiffEditorProps {
148
+ /** Original (left) content */
149
+ original: string | Signal<string>;
150
+ /** Modified (right) content */
151
+ modified: string | Signal<string>;
152
+ /** Language for both panels */
153
+ language?: EditorLanguage;
154
+ /** Theme */
155
+ theme?: EditorTheme;
156
+ /** Show inline diff instead of side-by-side — default: false */
157
+ inline?: boolean;
158
+ /** Read-only — default: true */
159
+ readOnly?: boolean;
160
+ style?: string;
161
+ class?: string;
162
+ }
163
+ interface Tab {
164
+ /** Unique tab identifier — defaults to name */
165
+ id?: string;
166
+ /** File name displayed in the tab */
167
+ name: string;
168
+ /** Language for syntax highlighting */
169
+ language?: EditorLanguage;
170
+ /** File content */
171
+ value: string;
172
+ /** Whether the tab has unsaved changes */
173
+ modified?: boolean;
174
+ /** Whether the tab can be closed — default: true */
175
+ closable?: boolean;
176
+ }
177
+ interface TabbedEditorConfig {
178
+ /** Initial tabs */
179
+ tabs?: Tab[];
180
+ /** Theme — 'light', 'dark', or custom */
181
+ theme?: EditorTheme;
182
+ /** Editor config applied to all tabs */
183
+ editorConfig?: Omit<EditorConfig, 'value' | 'language' | 'theme'>;
184
+ }
185
+ interface TabbedEditorInstance {
186
+ /** The underlying editor instance */
187
+ editor: EditorInstance;
188
+ /** All open tabs — reactive */
189
+ tabs: Signal<Tab[]>;
190
+ /** Active tab — reactive */
191
+ activeTab: Computed<Tab | null>;
192
+ /** Active tab ID — reactive */
193
+ activeTabId: Signal<string>;
194
+ /** Open a new tab (or switch to it if already open) */
195
+ openTab: (tab: Tab) => void;
196
+ /** Close a tab by ID */
197
+ closeTab: (id: string) => void;
198
+ /** Switch to a tab by ID */
199
+ switchTab: (id: string) => void;
200
+ /** Rename a tab */
201
+ renameTab: (id: string, name: string) => void;
202
+ /** Mark a tab as modified/saved */
203
+ setModified: (id: string, modified: boolean) => void;
204
+ /** Reorder tabs */
205
+ moveTab: (fromIndex: number, toIndex: number) => void;
206
+ /** Get tab by ID */
207
+ getTab: (id: string) => Tab | undefined;
208
+ /** Close all tabs */
209
+ closeAll: () => void;
210
+ /** Close all tabs except the given one */
211
+ closeOthers: (id: string) => void;
212
+ /** Dispose */
213
+ dispose: () => void;
214
+ }
215
+ interface TabbedEditorProps {
216
+ instance: TabbedEditorInstance;
217
+ style?: string;
218
+ class?: string;
219
+ }
220
+ //#endregion
221
+ //#region src/components/code-editor.d.ts
222
+ /**
223
+ * Code editor component — mounts a CodeMirror 6 instance.
224
+ *
225
+ * @example
226
+ * ```tsx
227
+ * const editor = createEditor({
228
+ * value: 'const x = 1',
229
+ * language: 'typescript',
230
+ * theme: 'dark',
231
+ * })
232
+ *
233
+ * <CodeEditor instance={editor} style="height: 400px" />
234
+ * ```
235
+ */
236
+ declare function CodeEditor(props: CodeEditorProps): VNodeChild;
237
+ //#endregion
238
+ //#region src/components/diff-editor.d.ts
239
+ /**
240
+ * Side-by-side or inline diff editor using @codemirror/merge.
241
+ *
242
+ * @example
243
+ * ```tsx
244
+ * <DiffEditor
245
+ * original="const x = 1"
246
+ * modified="const x = 2"
247
+ * language="typescript"
248
+ * theme="dark"
249
+ * style="height: 400px"
250
+ * />
251
+ * ```
252
+ */
253
+ declare function DiffEditor(props: DiffEditorProps): VNodeChild;
254
+ //#endregion
255
+ //#region src/components/tabbed-editor.d.ts
256
+ /**
257
+ * Tabbed code editor component — renders tab bar + editor.
258
+ * Headless styling — the tab bar is a plain div with button tabs.
259
+ * Consumers can style via CSS classes.
260
+ *
261
+ * @example
262
+ * ```tsx
263
+ * const editor = createTabbedEditor({
264
+ * tabs: [
265
+ * { name: 'index.ts', language: 'typescript', value: 'const x = 1' },
266
+ * { name: 'style.css', language: 'css', value: '.app { }' },
267
+ * ],
268
+ * theme: 'dark',
269
+ * })
270
+ *
271
+ * <TabbedEditor instance={editor} style="height: 500px" />
272
+ * ```
273
+ */
274
+ declare function TabbedEditor(props: TabbedEditorProps): VNodeChild;
275
+ //#endregion
276
+ //#region src/editor.d.ts
277
+ /**
278
+ * Create a reactive code editor instance.
279
+ *
280
+ * The editor state (value, language, theme, cursor, selection) is backed
281
+ * by signals. The CodeMirror EditorView is created when mounted via
282
+ * the `<CodeEditor>` component.
283
+ *
284
+ * @param config - Editor configuration
285
+ * @returns A reactive EditorInstance
286
+ *
287
+ * @example
288
+ * ```tsx
289
+ * const editor = createEditor({
290
+ * value: 'const x = 1',
291
+ * language: 'typescript',
292
+ * theme: 'dark',
293
+ * })
294
+ *
295
+ * editor.value() // reactive
296
+ * editor.value.set('new') // updates editor
297
+ *
298
+ * <CodeEditor instance={editor} />
299
+ * ```
300
+ */
301
+ declare function createEditor(config?: EditorConfig): EditorInstance;
302
+ //#endregion
303
+ //#region src/languages.d.ts
304
+ /**
305
+ * Load a language extension. Returns cached if already loaded.
306
+ * Language grammars are lazy-imported — zero cost until used.
307
+ *
308
+ * @example
309
+ * ```ts
310
+ * const ext = await loadLanguage('typescript')
311
+ * ```
312
+ */
313
+ declare function loadLanguage(language: EditorLanguage): Promise<Extension>;
314
+ /**
315
+ * Get available languages.
316
+ */
317
+ declare function getAvailableLanguages(): EditorLanguage[];
318
+ //#endregion
319
+ //#region src/minimap.d.ts
320
+ /**
321
+ * CodeMirror 6 minimap extension.
322
+ * Renders a canvas-based code overview on the right side of the editor.
323
+ *
324
+ * @example
325
+ * ```ts
326
+ * import { minimapExtension } from '@pyreon/code'
327
+ * // Add to editor extensions
328
+ * ```
329
+ */
330
+ declare function minimapExtension(): Extension;
331
+ //#endregion
332
+ //#region src/themes.d.ts
333
+ /**
334
+ * Light theme — clean, minimal.
335
+ */
336
+ declare const lightTheme: Extension;
337
+ /**
338
+ * Dark theme — VS Code inspired.
339
+ */
340
+ declare const darkTheme: Extension;
341
+ /**
342
+ * Resolve a theme value to a CodeMirror extension.
343
+ */
344
+ declare function resolveTheme(theme: EditorTheme): Extension;
345
+ //#endregion
346
+ export { CodeEditor, type CodeEditorProps, DiffEditor, type DiffEditorProps, type EditorConfig, type EditorInstance, type EditorLanguage, type EditorTheme, type GutterMarker, type Tab, TabbedEditor, type TabbedEditorConfig, type TabbedEditorInstance, type TabbedEditorProps, createEditor, darkTheme, getAvailableLanguages, lightTheme, loadLanguage, minimapExtension, resolveTheme };
347
+ //# sourceMappingURL=index2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.d.ts","names":[],"sources":["../../src/types.ts","../../src/components/code-editor.tsx","../../src/components/diff-editor.tsx","../../src/components/tabbed-editor.tsx","../../src/editor.ts","../../src/languages.ts","../../src/minimap.ts","../../src/themes.ts"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "@pyreon/code",
3
+ "version": "0.5.0",
4
+ "description": "Reactive code editor for Pyreon — CodeMirror 6 with signals, minimap, diff editor, lazy-loaded languages",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/pyreon/fundamentals.git",
9
+ "directory": "packages/code"
10
+ },
11
+ "homepage": "https://github.com/pyreon/fundamentals/tree/main/packages/code#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/pyreon/fundamentals/issues"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "files": [
19
+ "lib",
20
+ "src",
21
+ "README.md",
22
+ "LICENSE"
23
+ ],
24
+ "type": "module",
25
+ "main": "./lib/index.js",
26
+ "module": "./lib/index.js",
27
+ "types": "./lib/types/index.d.ts",
28
+ "exports": {
29
+ ".": {
30
+ "bun": "./src/index.ts",
31
+ "import": "./lib/index.js",
32
+ "types": "./lib/types/index.d.ts"
33
+ }
34
+ },
35
+ "sideEffects": false,
36
+ "scripts": {
37
+ "build": "vl_rolldown_build",
38
+ "dev": "vl_rolldown_build-watch",
39
+ "test": "vitest run",
40
+ "typecheck": "tsc --noEmit"
41
+ },
42
+ "dependencies": {
43
+ "@codemirror/autocomplete": "^6.20.1",
44
+ "@codemirror/commands": "^6.10.3",
45
+ "@codemirror/language": "^6.12.2",
46
+ "@codemirror/lint": "^6.9.5",
47
+ "@codemirror/merge": "^6.12.1",
48
+ "@codemirror/search": "^6.6.0",
49
+ "@codemirror/state": "^6.6.0",
50
+ "@codemirror/view": "^6.40.0",
51
+ "codemirror": "^6.0.2"
52
+ },
53
+ "optionalDependencies": {
54
+ "@codemirror/lang-javascript": "^6.2.5",
55
+ "@codemirror/lang-html": "^6.4.11",
56
+ "@codemirror/lang-css": "^6.3.1",
57
+ "@codemirror/lang-json": "^6.0.2",
58
+ "@codemirror/lang-python": "^6.2.1",
59
+ "@codemirror/lang-markdown": "^6.5.0",
60
+ "@codemirror/lang-rust": "^6.0.2",
61
+ "@codemirror/lang-sql": "^6.10.0",
62
+ "@codemirror/lang-xml": "^6.1.0",
63
+ "@codemirror/lang-yaml": "^6.1.2",
64
+ "@codemirror/lang-cpp": "^6.0.2",
65
+ "@codemirror/lang-java": "^6.0.1",
66
+ "@codemirror/lang-go": "^6.0.1",
67
+ "@codemirror/lang-php": "^6.0.1"
68
+ },
69
+ "peerDependencies": {
70
+ "@pyreon/core": ">=0.5.0 <1.0.0",
71
+ "@pyreon/reactivity": ">=0.5.0 <1.0.0"
72
+ },
73
+ "devDependencies": {
74
+ "@happy-dom/global-registrator": "^20.8.3",
75
+ "@pyreon/core": ">=0.5.0 <1.0.0",
76
+ "@pyreon/reactivity": ">=0.5.0 <1.0.0",
77
+ "@vitus-labs/tools-lint": "^1.11.0"
78
+ }
79
+ }
@@ -0,0 +1,42 @@
1
+ import type { VNodeChild } from '@pyreon/core'
2
+ import type { CodeEditorProps, EditorInstance } from '../types'
3
+
4
+ /**
5
+ * Code editor component — mounts a CodeMirror 6 instance.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * const editor = createEditor({
10
+ * value: 'const x = 1',
11
+ * language: 'typescript',
12
+ * theme: 'dark',
13
+ * })
14
+ *
15
+ * <CodeEditor instance={editor} style="height: 400px" />
16
+ * ```
17
+ */
18
+ export function CodeEditor(props: CodeEditorProps): VNodeChild {
19
+ const { instance } = props
20
+
21
+ const containerRef = (el: Element | null) => {
22
+ if (!el) return
23
+
24
+ // Mount the editor into the container
25
+ const mountable = instance as EditorInstance & {
26
+ _mount?: (parent: HTMLElement) => Promise<void>
27
+ }
28
+ if (mountable._mount) {
29
+ mountable._mount(el as HTMLElement)
30
+ }
31
+ }
32
+
33
+ const baseStyle = `width: 100%; height: 100%; overflow: hidden; ${props.style ?? ''}`
34
+
35
+ return (
36
+ <div
37
+ ref={containerRef}
38
+ class={`pyreon-code-editor ${props.class ?? ''}`}
39
+ style={baseStyle}
40
+ />
41
+ )
42
+ }
@@ -0,0 +1,97 @@
1
+ import { defaultHighlightStyle, syntaxHighlighting } from '@codemirror/language'
2
+ import { MergeView } from '@codemirror/merge'
3
+ import { EditorState, type Extension } from '@codemirror/state'
4
+ import { EditorView } from '@codemirror/view'
5
+ import type { VNodeChild } from '@pyreon/core'
6
+ import type { Signal } from '@pyreon/reactivity'
7
+ import { loadLanguage } from '../languages'
8
+ import { resolveTheme } from '../themes'
9
+ import type { DiffEditorProps } from '../types'
10
+
11
+ /**
12
+ * Side-by-side or inline diff editor using @codemirror/merge.
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * <DiffEditor
17
+ * original="const x = 1"
18
+ * modified="const x = 2"
19
+ * language="typescript"
20
+ * theme="dark"
21
+ * style="height: 400px"
22
+ * />
23
+ * ```
24
+ */
25
+ export function DiffEditor(props: DiffEditorProps): VNodeChild {
26
+ const {
27
+ original,
28
+ modified,
29
+ language = 'plain',
30
+ theme = 'light',
31
+ readOnly = true,
32
+ inline = false,
33
+ } = props
34
+
35
+ const containerRef = async (el: Element | null) => {
36
+ if (!el) return
37
+
38
+ const langExt = await loadLanguage(language)
39
+ const themeExt = resolveTheme(theme)
40
+
41
+ const extensions: Extension[] = [
42
+ syntaxHighlighting(defaultHighlightStyle, { fallback: true }),
43
+ langExt,
44
+ themeExt,
45
+ EditorView.editable.of(!readOnly),
46
+ EditorState.readOnly.of(readOnly),
47
+ ]
48
+
49
+ const originalText =
50
+ typeof original === 'string' ? original : (original as Signal<string>)()
51
+ const modifiedText =
52
+ typeof modified === 'string' ? modified : (modified as Signal<string>)()
53
+
54
+ // Clear previous content
55
+ ;(el as HTMLElement).innerHTML = ''
56
+
57
+ if (inline) {
58
+ // Unified/inline diff view
59
+ new MergeView({
60
+ a: {
61
+ doc: originalText,
62
+ extensions,
63
+ },
64
+ b: {
65
+ doc: modifiedText,
66
+ extensions,
67
+ },
68
+ parent: el as HTMLElement,
69
+ collapseUnchanged: { margin: 3, minSize: 4 },
70
+ })
71
+ } else {
72
+ // Side-by-side diff
73
+ new MergeView({
74
+ a: {
75
+ doc: originalText,
76
+ extensions,
77
+ },
78
+ b: {
79
+ doc: modifiedText,
80
+ extensions,
81
+ },
82
+ parent: el as HTMLElement,
83
+ collapseUnchanged: { margin: 3, minSize: 4 },
84
+ })
85
+ }
86
+ }
87
+
88
+ const baseStyle = `width: 100%; height: 100%; overflow: hidden; ${props.style ?? ''}`
89
+
90
+ return (
91
+ <div
92
+ ref={containerRef}
93
+ class={`pyreon-diff-editor ${props.class ?? ''}`}
94
+ style={baseStyle}
95
+ />
96
+ )
97
+ }