@octaviaflow/core 3.0.1 → 3.0.2
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/chunk-ZAUUGK2Y.js +17 -0
- package/dist/chunk-ZAUUGK2Y.js.map +1 -0
- package/dist/index.cjs +970 -1515
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +968 -1525
- package/dist/index.js.map +1 -1
- package/dist/monaco.cjs +589 -0
- package/dist/monaco.cjs.map +1 -0
- package/dist/monaco.d.ts +2 -0
- package/dist/monaco.d.ts.map +1 -0
- package/dist/monaco.js +554 -0
- package/dist/monaco.js.map +1 -0
- package/package.json +10 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/monaco.ts","../src/components/MonacoEditor/MonacoEditor.tsx","../src/utils/cn.ts","../src/components/MonacoEditor/octaviaflowTheme.ts","../src/components/MonacoEditor/MonacoDiffEditor.tsx"],"sourcesContent":["// `@octaviaflow/core/monaco` — opt-in entry for the Monaco-based editor\n// components. Pulled into a consumer's bundle only when explicitly imported,\n// so the rest of @octaviaflow/core stays free of any `@monaco-editor/react`\n// peer-dep dependency.\n//\n// Usage:\n// import { MonacoEditor, MonacoDiffEditor } from \"@octaviaflow/core/monaco\";\n//\n// Required peer deps when this subpath is used:\n// - @monaco-editor/react\n// - monaco-editor\n//\n// Lazy-loading is still preserved inside the editor components themselves —\n// the actual `@monaco-editor/react` import happens only when the editor first\n// renders, not at module-evaluation time.\n\nexport {\n MonacoDiffEditor,\n type MonacoDiffEditorProps,\n MonacoEditor,\n type MonacoEditorProps,\n type MonacoLanguage,\n type MonacoMarker,\n OCTAVIAFLOW_LIGHT,\n OCTAVIAFLOW_THEME_ID,\n} from \"./components/MonacoEditor\";\n","\"use client\";\n// IMPORTANT: `@monaco-editor/react` and `monaco-editor` are optional peer deps.\n// Consumers that don't install them must still be able to import the rest of\n// `@octaviaflow/core` without crashing. Using `React.lazy` + dynamic import\n// keeps Monaco out of the synchronous module graph — it only resolves when a\n// MonacoEditor is actually rendered, deferring the require to that moment.\n//\n// Type-only imports for `editor` and `Monaco` are erased at build time, so\n// they impose no runtime dependency.\nimport type { Monaco, OnMount } from \"@monaco-editor/react\";\nimport type { editor } from \"monaco-editor\";\nimport {\n type CSSProperties,\n type ReactNode,\n Suspense,\n lazy,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { OCTAVIAFLOW_LIGHT, OCTAVIAFLOW_THEME_ID } from \"./octaviaflowTheme\";\n\nconst Editor = lazy(() =>\n import(\"@monaco-editor/react\").then((mod) => ({ default: mod.Editor })),\n);\n\nexport type MonacoLanguage =\n | \"sql\"\n | \"json\"\n | \"javascript\"\n | \"typescript\"\n | \"tsx\"\n | \"yaml\"\n | \"xml\"\n | \"html\"\n | \"css\"\n | \"scss\"\n | \"markdown\"\n | \"python\"\n | \"go\"\n | \"rust\"\n | \"java\"\n | \"csharp\"\n | \"shell\"\n | \"plaintext\";\n\nexport interface MonacoMarker {\n /** 1-based line number. */\n line: number;\n /** 1-based column. */\n column?: number;\n /** 1-based end line. Defaults to `line`. */\n endLine?: number;\n /** 1-based end column. */\n endColumn?: number;\n severity?: \"error\" | \"warning\" | \"info\" | \"hint\";\n message: string;\n /** Optional source label, e.g. \"json-schema\". */\n source?: string;\n}\n\nexport interface MonacoEditorProps {\n value: string;\n onChange?: (value: string) => void;\n language?: MonacoLanguage;\n /** Read-only mode. */\n readOnly?: boolean;\n /** Editor height — number (px) or any CSS length. Default 320. */\n height?: number | string;\n /** Min height when auto-sizing is disabled. */\n minHeight?: number;\n /** Custom toolbar slot above the editor. */\n toolbar?: ReactNode;\n /** Status pill on the right side of the toolbar. */\n status?: ReactNode;\n /** Hide the toolbar entirely. */\n hideToolbar?: boolean;\n /** Hide the footer (cursor pos + shortcut hints). */\n hideFooter?: boolean;\n /** Show built-in Copy button. */\n showCopy?: boolean;\n /** Show built-in Format button. Uses Monaco's `editor.action.formatDocument`. */\n showFormat?: boolean;\n /** Show built-in word-wrap toggle. */\n showWordWrapToggle?: boolean;\n /** Show built-in minimap toggle. */\n showMinimapToggle?: boolean;\n /** Initial word wrap. Default false. */\n wordWrap?: boolean;\n /** Initial minimap state. Default false (off — Linear-tight). */\n minimap?: boolean;\n /** Show line numbers. Default true. */\n showLineNumbers?: boolean;\n /** Diagnostic markers (errors, warnings, info, hints). */\n markers?: MonacoMarker[];\n /** Pass-through Monaco editor options. Merged after the defaults. */\n options?: editor.IStandaloneEditorConstructionOptions;\n /** Called once Monaco has mounted with the editor + monaco namespace. */\n onMount?: OnMount;\n /** Style attribute for the wrapper. */\n style?: CSSProperties;\n className?: string;\n ariaLabel?: string;\n /** Theme override. Defaults to \"octaviaflow-light\". */\n theme?: string;\n}\n\nconst MARKER_SEVERITY: Record<\n Required<MonacoMarker>[\"severity\"],\n number\n> = {\n hint: 1,\n info: 2,\n warning: 4,\n error: 8,\n};\n\nexport function MonacoEditor({\n value,\n onChange,\n language = \"plaintext\",\n readOnly = false,\n height = 320,\n minHeight = 120,\n toolbar,\n status,\n hideToolbar = false,\n hideFooter = false,\n showCopy = true,\n showFormat = true,\n showWordWrapToggle = true,\n showMinimapToggle = true,\n wordWrap: wordWrapProp,\n minimap: minimapProp,\n showLineNumbers = true,\n markers,\n options,\n onMount,\n style,\n className,\n ariaLabel = \"Code editor\",\n theme,\n}: MonacoEditorProps) {\n const editorRef = useRef<editor.IStandaloneCodeEditor | null>(null);\n const monacoRef = useRef<Monaco | null>(null);\n\n const [wordWrap, setWordWrap] = useState<boolean>(wordWrapProp ?? false);\n const [minimap, setMinimap] = useState<boolean>(minimapProp ?? false);\n const [copied, setCopied] = useState(false);\n const [cursor, setCursor] = useState({ line: 1, column: 1 });\n const [selection, setSelection] = useState({ chars: 0, lines: 0 });\n const [lineCount, setLineCount] = useState(value.split(\"\\n\").length);\n\n // Keep prop-driven state in sync if controlled\n useEffect(() => {\n if (wordWrapProp !== undefined) setWordWrap(wordWrapProp);\n }, [wordWrapProp]);\n useEffect(() => {\n if (minimapProp !== undefined) setMinimap(minimapProp);\n }, [minimapProp]);\n\n // Apply word wrap / minimap changes to the live editor\n useEffect(() => {\n editorRef.current?.updateOptions({\n wordWrap: wordWrap ? \"on\" : \"off\",\n minimap: { enabled: minimap },\n });\n }, [wordWrap, minimap]);\n\n // Apply markers when they change\n useEffect(() => {\n const editor = editorRef.current;\n const monaco = monacoRef.current;\n if (!editor || !monaco || !markers) return;\n const model = editor.getModel();\n if (!model) return;\n monaco.editor.setModelMarkers(\n model,\n \"octaviaflow\",\n markers.map((m) => ({\n severity: MARKER_SEVERITY[m.severity ?? \"error\"],\n message: m.message,\n startLineNumber: m.line,\n startColumn: m.column ?? 1,\n endLineNumber: m.endLine ?? m.line,\n endColumn: m.endColumn ?? (m.column ?? 1) + 1,\n source: m.source,\n })),\n );\n }, [markers]);\n\n const handleMount: OnMount = useCallback(\n (editor, monaco) => {\n editorRef.current = editor;\n monacoRef.current = monaco;\n monaco.editor.defineTheme(OCTAVIAFLOW_THEME_ID, OCTAVIAFLOW_LIGHT);\n monaco.editor.setTheme(theme ?? OCTAVIAFLOW_THEME_ID);\n\n // Cursor + selection tracking\n editor.onDidChangeCursorPosition((e) => {\n setCursor({ line: e.position.lineNumber, column: e.position.column });\n });\n editor.onDidChangeCursorSelection((e) => {\n const sel = e.selection;\n if (sel.isEmpty()) {\n setSelection({ chars: 0, lines: 0 });\n return;\n }\n const model = editor.getModel();\n if (!model) return;\n const text = model.getValueInRange(sel);\n setSelection({\n chars: text.length,\n lines: text.split(\"\\n\").length,\n });\n });\n // Track line count for footer\n const model = editor.getModel();\n if (model) {\n setLineCount(model.getLineCount());\n model.onDidChangeContent(() => setLineCount(model.getLineCount()));\n }\n\n onMount?.(editor, monaco);\n },\n [onMount, theme],\n );\n\n const handleCopy = async () => {\n if (typeof navigator === \"undefined\") return;\n try {\n await navigator.clipboard.writeText(value);\n setCopied(true);\n setTimeout(() => setCopied(false), 1200);\n } catch {\n /* ignore */\n }\n };\n\n const handleFormat = () => {\n editorRef.current?.getAction(\"editor.action.formatDocument\")?.run();\n };\n\n const mergedOptions: editor.IStandaloneEditorConstructionOptions = {\n readOnly,\n fontFamily:\n \"ui-monospace, SFMono-Regular, 'JetBrains Mono', 'Fira Code', Menlo, Consolas, monospace\",\n fontSize: 13,\n fontLigatures: true,\n lineHeight: 20,\n lineNumbers: showLineNumbers ? \"on\" : \"off\",\n lineNumbersMinChars: 3,\n lineDecorationsWidth: 6,\n folding: true,\n glyphMargin: false,\n minimap: { enabled: minimap },\n wordWrap: wordWrap ? \"on\" : \"off\",\n scrollBeyondLastLine: false,\n smoothScrolling: true,\n cursorBlinking: \"smooth\",\n cursorSmoothCaretAnimation: \"on\",\n renderLineHighlight: \"line\",\n padding: { top: 8, bottom: 8 },\n bracketPairColorization: { enabled: true },\n guides: { bracketPairs: true, indentation: true },\n automaticLayout: true,\n tabSize: 2,\n insertSpaces: true,\n scrollbar: {\n verticalScrollbarSize: 8,\n horizontalScrollbarSize: 8,\n useShadows: false,\n },\n fixedOverflowWidgets: true,\n contextmenu: true,\n suggestOnTriggerCharacters: true,\n quickSuggestions: { other: true, comments: false, strings: false },\n formatOnPaste: false,\n formatOnType: false,\n \"semanticHighlighting.enabled\": true,\n ...options,\n };\n\n const showWrapBtn = showWordWrapToggle && wordWrapProp === undefined;\n const showMinimapBtn = showMinimapToggle && minimapProp === undefined;\n\n return (\n <div\n className={cn(\n \"ods-monaco\",\n `ods-monaco--${language}`,\n readOnly && \"ods-monaco--readonly\",\n className,\n )}\n style={style}\n >\n {!hideToolbar && (\n <div className=\"ods-monaco__toolbar\">\n <div className=\"ods-monaco__toolbar-left\">\n <span className=\"ods-monaco__lang\">{language.toUpperCase()}</span>\n {toolbar}\n </div>\n <div className=\"ods-monaco__toolbar-right\">\n <span className=\"ods-monaco__lines\">\n {lineCount} line{lineCount === 1 ? \"\" : \"s\"}\n </span>\n {status && <span className=\"ods-monaco__status\">{status}</span>}\n {showWrapBtn && (\n <button\n type=\"button\"\n className={cn(\"ods-monaco__btn\", wordWrap && \"ods-monaco__btn--active\")}\n onClick={() => setWordWrap((w) => !w)}\n aria-pressed={wordWrap}\n aria-label=\"Toggle word wrap\"\n title=\"Word wrap\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M2 3.5h10M2 7h7.5a2 2 0 1 1 0 4H8m0 0 1.5-1.5M8 11l1.5 1.5M2 10.5h3\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n )}\n {showMinimapBtn && (\n <button\n type=\"button\"\n className={cn(\"ods-monaco__btn\", minimap && \"ods-monaco__btn--active\")}\n onClick={() => setMinimap((m) => !m)}\n aria-pressed={minimap}\n aria-label=\"Toggle minimap\"\n title=\"Minimap\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2\" y=\"2.5\" width=\"6\" height=\"9\" rx=\"0.5\" stroke=\"currentColor\" strokeWidth=\"1.2\" />\n <rect x=\"9\" y=\"2.5\" width=\"3\" height=\"9\" rx=\"0.5\" fill=\"currentColor\" opacity=\"0.25\" />\n <path d=\"M3.5 4.5h3M3.5 6.5h3M3.5 8.5h2\" stroke=\"currentColor\" strokeWidth=\"1\" strokeLinecap=\"round\" />\n </svg>\n </button>\n )}\n {showFormat && !readOnly && (\n <button\n type=\"button\"\n className=\"ods-monaco__btn\"\n onClick={handleFormat}\n aria-label=\"Format document\"\n title=\"Format (Shift+Alt+F)\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M2.5 4h9M4 7h7.5M5.5 10H11\" stroke=\"currentColor\" strokeWidth=\"1.3\" strokeLinecap=\"round\" />\n <path d=\"M2.5 7 3.5 6 2.5 5\" stroke=\"currentColor\" strokeWidth=\"1.2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n )}\n {showCopy && (\n <button\n type=\"button\"\n className={cn(\"ods-monaco__btn\", copied && \"ods-monaco__btn--success\")}\n onClick={handleCopy}\n aria-label=\"Copy\"\n title=\"Copy\"\n >\n {copied ? (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"m3 7 3 3 5-6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.6\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ) : (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"3\" y=\"3\" width=\"8\" height=\"8\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <path d=\"M5 1.5h6V8\" stroke=\"currentColor\" strokeWidth=\"1.3\" strokeLinecap=\"round\" />\n </svg>\n )}\n </button>\n )}\n </div>\n </div>\n )}\n\n <div className=\"ods-monaco__body\" style={{ minHeight }}>\n <Suspense fallback={\n <div className=\"ods-monaco__loading\">\n <span className=\"ods-monaco__loading-spin\" aria-hidden=\"true\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\n <circle cx=\"7\" cy=\"7\" r=\"5\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeDasharray=\"4 18\" strokeLinecap=\"round\" />\n </svg>\n </span>\n <span>Loading editor…</span>\n </div>\n }>\n <Editor\n value={value}\n onChange={(v) => onChange?.(v ?? \"\")}\n language={language}\n height={height}\n theme={theme ?? OCTAVIAFLOW_THEME_ID}\n options={mergedOptions}\n onMount={handleMount}\n loading={\n <div className=\"ods-monaco__loading\">\n <span className=\"ods-monaco__loading-spin\" aria-hidden=\"true\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\n <circle cx=\"7\" cy=\"7\" r=\"5\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeDasharray=\"4 18\" strokeLinecap=\"round\" />\n </svg>\n </span>\n <span>Loading editor…</span>\n </div>\n }\n aria-label={ariaLabel}\n />\n </Suspense>\n </div>\n\n {!hideFooter && (\n <div className=\"ods-monaco__footer\">\n <span className=\"ods-monaco__pos\">\n Ln {cursor.line}, Col {cursor.column}\n {selection.chars > 0 && (\n <>\n {\" \"}· {selection.chars} char{selection.chars === 1 ? \"\" : \"s\"}\n {selection.lines > 1 && ` · ${selection.lines} lines`}\n </>\n )}\n </span>\n <span className=\"ods-monaco__shortcut-hint\">\n <kbd className=\"ods-monaco__kbd\">⌘F</kbd> find\n <span className=\"ods-monaco__sep\">·</span>\n <kbd className=\"ods-monaco__kbd\">⌘⇧F</kbd> replace\n <span className=\"ods-monaco__sep\">·</span>\n <kbd className=\"ods-monaco__kbd\">F1</kbd> commands\n </span>\n </div>\n )}\n </div>\n );\n}\n","import { type ClassValue, clsx } from \"clsx\";\n\nexport function cn(...inputs: ClassValue[]): string {\n return clsx(inputs);\n}\n","import type { editor } from \"monaco-editor\";\n\n/**\n * OctaviaFlow v1 Monaco theme — light, Linear-tight, accent-driven.\n * Hex values mirror the canonical v1 tokens (see packages/styles/src/02-tokens/_v1.scss).\n */\nexport const OCTAVIAFLOW_LIGHT: editor.IStandaloneThemeData = {\n base: \"vs\",\n inherit: true,\n rules: [\n { token: \"\", foreground: \"161616\", background: \"FFFFFF\" },\n { token: \"comment\", foreground: \"6F6F6F\", fontStyle: \"italic\" },\n { token: \"string\", foreground: \"198038\" },\n { token: \"string.key.json\", foreground: \"0F62FE\" },\n { token: \"string.value.json\", foreground: \"198038\" },\n { token: \"number\", foreground: \"0043CE\" },\n { token: \"keyword\", foreground: \"8A3FFC\" },\n { token: \"keyword.sql\", foreground: \"8A3FFC\" },\n { token: \"operator\", foreground: \"393939\" },\n { token: \"delimiter\", foreground: \"525252\" },\n { token: \"type\", foreground: \"0F62FE\" },\n { token: \"type.identifier\", foreground: \"0F62FE\" },\n { token: \"identifier\", foreground: \"161616\" },\n { token: \"constant\", foreground: \"0043CE\" },\n { token: \"boolean\", foreground: \"F1C21B\", fontStyle: \"bold\" },\n { token: \"tag\", foreground: \"DA1E28\" },\n { token: \"attribute.name\", foreground: \"8A3FFC\" },\n { token: \"attribute.value\", foreground: \"198038\" },\n { token: \"regexp\", foreground: \"DA1E28\" },\n { token: \"function\", foreground: \"0F62FE\" },\n { token: \"variable\", foreground: \"161616\" },\n { token: \"variable.parameter\", foreground: \"393939\", fontStyle: \"italic\" },\n { token: \"namespace\", foreground: \"0F62FE\" },\n ],\n colors: {\n \"editor.background\": \"#FFFFFF\",\n \"editor.foreground\": \"#161616\",\n \"editor.lineHighlightBackground\": \"#F4F4F4\",\n \"editor.lineHighlightBorder\": \"#00000000\",\n \"editorLineNumber.foreground\": \"#A8A8A8\",\n \"editorLineNumber.activeForeground\": \"#0F62FE\",\n \"editorCursor.foreground\": \"#0F62FE\",\n \"editor.selectionBackground\": \"#D0E2FF\",\n \"editor.selectionHighlightBackground\": \"#EDF5FF\",\n \"editor.wordHighlightBackground\": \"#EDF5FF\",\n \"editor.wordHighlightStrongBackground\": \"#D0E2FF\",\n \"editor.findMatchBackground\": \"#FFD7D9\",\n \"editor.findMatchHighlightBackground\": \"#FFE9EB\",\n \"editorIndentGuide.background1\": \"#F4F4F4\",\n \"editorIndentGuide.activeBackground1\": \"#E0E0E0\",\n \"editorWhitespace.foreground\": \"#E0E0E0\",\n \"editorBracketMatch.background\": \"#D0E2FF\",\n \"editorBracketMatch.border\": \"#0F62FE\",\n \"editor.foldBackground\": \"#F4F4F4\",\n\n \"editorGutter.background\": \"#F4F4F4\",\n \"editorGutter.modifiedBackground\": \"#0F62FE\",\n \"editorGutter.addedBackground\": \"#198038\",\n \"editorGutter.deletedBackground\": \"#DA1E28\",\n\n \"editorWidget.background\": \"#FFFFFF\",\n \"editorWidget.foreground\": \"#161616\",\n \"editorWidget.border\": \"#E0E0E0\",\n \"editorSuggestWidget.background\": \"#FFFFFF\",\n \"editorSuggestWidget.border\": \"#E0E0E0\",\n \"editorSuggestWidget.foreground\": \"#161616\",\n \"editorSuggestWidget.selectedBackground\": \"#EDF5FF\",\n \"editorSuggestWidget.selectedForeground\": \"#161616\",\n \"editorSuggestWidget.highlightForeground\": \"#0F62FE\",\n\n \"editorHoverWidget.background\": \"#FFFFFF\",\n \"editorHoverWidget.border\": \"#E0E0E0\",\n\n \"editorError.foreground\": \"#DA1E28\",\n \"editorWarning.foreground\": \"#F1C21B\",\n \"editorInfo.foreground\": \"#0F62FE\",\n\n \"diffEditor.insertedTextBackground\": \"#A7F0BA40\",\n \"diffEditor.removedTextBackground\": \"#FFB3B840\",\n \"diffEditor.insertedLineBackground\": \"#DEFBE640\",\n \"diffEditor.removedLineBackground\": \"#FFD7D940\",\n\n \"scrollbar.shadow\": \"#00000000\",\n \"scrollbarSlider.background\": \"#0F62FE20\",\n \"scrollbarSlider.hoverBackground\": \"#0F62FE40\",\n \"scrollbarSlider.activeBackground\": \"#0F62FE60\",\n\n \"minimap.background\": \"#FAFAFA\",\n \"minimap.selectionHighlight\": \"#0F62FE\",\n \"minimapSlider.background\": \"#0F62FE15\",\n \"minimapSlider.hoverBackground\": \"#0F62FE30\",\n \"minimapSlider.activeBackground\": \"#0F62FE50\",\n\n \"input.background\": \"#FFFFFF\",\n \"input.foreground\": \"#161616\",\n \"input.border\": \"#C6C6C6\",\n \"inputOption.activeBorder\": \"#0F62FE\",\n\n \"focusBorder\": \"#0F62FE\",\n },\n};\n\nexport const OCTAVIAFLOW_THEME_ID = \"octaviaflow-light\";\n","\"use client\";\n// Same lazy-load rationale as MonacoEditor.tsx — keep Monaco out of the\n// synchronous module graph so consumers without @monaco-editor/react can\n// still import @octaviaflow/core safely.\nimport type { Monaco } from \"@monaco-editor/react\";\nimport type { editor } from \"monaco-editor\";\nimport { type CSSProperties, type ReactNode, Suspense, lazy, useRef, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { OCTAVIAFLOW_LIGHT, OCTAVIAFLOW_THEME_ID } from \"./octaviaflowTheme\";\nimport type { MonacoLanguage } from \"./MonacoEditor\";\n\nconst DiffEditor = lazy(() =>\n import(\"@monaco-editor/react\").then((mod) => ({ default: mod.DiffEditor })),\n);\n\nexport interface MonacoDiffEditorProps {\n original: string;\n modified: string;\n onModifiedChange?: (value: string) => void;\n language?: MonacoLanguage;\n /** Side-by-side vs inline diff. Default \"side-by-side\". */\n renderSideBySide?: boolean;\n /** Read-only on the right side. Default false. */\n readOnly?: boolean;\n /** Show only changed regions. */\n hideUnchangedRegions?: boolean;\n /** Editor height. Default 360. */\n height?: number | string;\n minHeight?: number;\n /** Labels above each side. */\n originalLabel?: ReactNode;\n modifiedLabel?: ReactNode;\n toolbar?: ReactNode;\n /** Pass-through Monaco diff editor options. */\n options?: editor.IDiffEditorConstructionOptions;\n onMount?: (\n editor: editor.IStandaloneDiffEditor,\n monaco: Monaco,\n ) => void;\n style?: CSSProperties;\n className?: string;\n theme?: string;\n hideToolbar?: boolean;\n}\n\nexport function MonacoDiffEditor({\n original,\n modified,\n onModifiedChange,\n language = \"plaintext\",\n renderSideBySide = true,\n readOnly = false,\n hideUnchangedRegions = false,\n height = 360,\n minHeight = 200,\n originalLabel = \"Original\",\n modifiedLabel = \"Modified\",\n toolbar,\n options,\n onMount,\n style,\n className,\n theme,\n hideToolbar = false,\n}: MonacoDiffEditorProps) {\n const editorRef = useRef<editor.IStandaloneDiffEditor | null>(null);\n const [sideBySide, setSideBySide] = useState(renderSideBySide);\n\n const handleMount = (\n diffEditor: editor.IStandaloneDiffEditor,\n monaco: Monaco,\n ) => {\n editorRef.current = diffEditor;\n monaco.editor.defineTheme(OCTAVIAFLOW_THEME_ID, OCTAVIAFLOW_LIGHT);\n monaco.editor.setTheme(theme ?? OCTAVIAFLOW_THEME_ID);\n\n const modifiedEditor = diffEditor.getModifiedEditor();\n modifiedEditor.onDidChangeModelContent(() => {\n onModifiedChange?.(modifiedEditor.getValue());\n });\n\n onMount?.(diffEditor, monaco);\n };\n\n const mergedOptions: editor.IDiffEditorConstructionOptions = {\n readOnly,\n originalEditable: false,\n renderSideBySide: sideBySide,\n fontFamily:\n \"ui-monospace, SFMono-Regular, 'JetBrains Mono', 'Fira Code', Menlo, Consolas, monospace\",\n fontSize: 13,\n lineHeight: 20,\n automaticLayout: true,\n lineNumbersMinChars: 3,\n lineDecorationsWidth: 6,\n folding: true,\n glyphMargin: false,\n minimap: { enabled: false },\n scrollBeyondLastLine: false,\n smoothScrolling: true,\n renderOverviewRuler: true,\n diffWordWrap: \"off\",\n padding: { top: 8, bottom: 8 },\n hideUnchangedRegions: {\n enabled: hideUnchangedRegions,\n revealLineCount: 20,\n minimumLineCount: 3,\n contextLineCount: 3,\n },\n scrollbar: {\n verticalScrollbarSize: 8,\n horizontalScrollbarSize: 8,\n useShadows: false,\n },\n ...options,\n };\n\n return (\n <div\n className={cn(\"ods-monaco-diff\", `ods-monaco-diff--${language}`, className)}\n style={style}\n >\n {!hideToolbar && (\n <div className=\"ods-monaco__toolbar\">\n <div className=\"ods-monaco__toolbar-left\">\n <span className=\"ods-monaco__lang\">DIFF · {language.toUpperCase()}</span>\n <span className=\"ods-monaco-diff__labels\">\n <span className=\"ods-monaco-diff__label ods-monaco-diff__label--orig\">\n {originalLabel}\n </span>\n <span className=\"ods-monaco-diff__arrow\" aria-hidden=\"true\">→</span>\n <span className=\"ods-monaco-diff__label ods-monaco-diff__label--mod\">\n {modifiedLabel}\n </span>\n </span>\n {toolbar}\n </div>\n <div className=\"ods-monaco__toolbar-right\">\n <button\n type=\"button\"\n className={cn(\n \"ods-monaco__btn\",\n sideBySide && \"ods-monaco__btn--active\",\n )}\n onClick={() => setSideBySide((s) => !s)}\n aria-pressed={sideBySide}\n aria-label=\"Toggle side-by-side\"\n title={sideBySide ? \"Inline\" : \"Side-by-side\"}\n >\n {sideBySide ? (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1.5\" y=\"2\" width=\"5\" height=\"10\" rx=\"0.5\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"7.5\" y=\"2\" width=\"5\" height=\"10\" rx=\"0.5\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n ) : (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1.5\" y=\"2\" width=\"11\" height=\"10\" rx=\"0.5\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <path d=\"M1.5 7h11\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n )}\n </button>\n </div>\n </div>\n )}\n\n <div className=\"ods-monaco__body\" style={{ minHeight }}>\n <Suspense fallback={\n <div className=\"ods-monaco__loading\">\n <span className=\"ods-monaco__loading-spin\" aria-hidden=\"true\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\n <circle cx=\"7\" cy=\"7\" r=\"5\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeDasharray=\"4 18\" strokeLinecap=\"round\" />\n </svg>\n </span>\n <span>Loading diff…</span>\n </div>\n }>\n <DiffEditor\n original={original}\n modified={modified}\n language={language}\n height={height}\n theme={theme ?? OCTAVIAFLOW_THEME_ID}\n options={mergedOptions}\n onMount={handleMount}\n loading={\n <div className=\"ods-monaco__loading\">\n <span className=\"ods-monaco__loading-spin\" aria-hidden=\"true\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\">\n <circle cx=\"7\" cy=\"7\" r=\"5\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeDasharray=\"4 18\" strokeLinecap=\"round\" />\n </svg>\n </span>\n <span>Loading diff…</span>\n </div>\n }\n />\n </Suspense>\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":["model","import_react","import_jsx_runtime"]}
|
package/dist/monaco.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monaco.d.ts","sourceRoot":"","sources":["../src/monaco.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC"}
|