{"_id":"@atomic-editor/editor","_rev":"14-5efd412ec50b0dda761145d1980ae8c6","name":"@atomic-editor/editor","dist-tags":{"latest":"0.6.2"},"versions":{"0.1.0":{"name":"@atomic-editor/editor","version":"0.1.0","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.1.0","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"866da5eb6f2e0cd74da18fd01c28bc5783081f9c","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.1.0.tgz","fileCount":41,"integrity":"sha512-UT/EOAlwTkmsstKYOR1Zo0jkpzIiHIUWrfqGwYyWupkBgh34N/PmsE8EZZrhKycrYyuBlA/cCg55neLcxLZuLA==","signatures":[{"sig":"MEQCIC3MevrjhpjwT1Ryce4HUV8ePkavNn9zE2Tk6ONkVcWJAiAdZDuSoJJgCZ1NkoPYk1yFYkfSWX89yHSGxLe4Y6kcTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":264204},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"a1ced3a2a657f2274f36589418b6d96e56774364","scripts":{"dev":"vite","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","test:e2e":"node scripts/test-editor.mjs","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^18.3.1","vitest":"^3.2.4","cpy-cli":"^5.0.0","happy-dom":"^20.9.0","react-dom":"^18.3.1","playwright":"^1.59.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.1.0_1776893281324_0.825850874437613","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@atomic-editor/editor","version":"0.1.1","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.1.1","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"ac443207c4a6917b58cd933be1ec34903d8b4922","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.1.1.tgz","fileCount":41,"integrity":"sha512-6wDsmalPQxpTptxcGUBMRxr8/PpLBkjVvWWFKkWOnFYiGEKNjc+YFoqiFwEhpJdICKqRelutieCpS5iH1PSPAA==","signatures":[{"sig":"MEUCIQDQ3xEC0B0h9LQ+t4bMb+UM1iZnOU1dvLC6LKZAN8UIxwIgPuJEGgpl6w3wvMJ0dYlHt/BeQG5LJMHjQXAEqsS+TOM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":266447},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"0ce516a25f33f9495bb83ff27a1cc530b25213bd","scripts":{"dev":"vite","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","test:e2e":"node scripts/test-editor.mjs","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^18.3.1","vitest":"^3.2.4","cpy-cli":"^5.0.0","happy-dom":"^20.9.0","react-dom":"^18.3.1","playwright":"^1.59.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.1.1_1776901086732_0.24805455564480394","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@atomic-editor/editor","version":"0.2.0","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.2.0","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"a858a61a006096da331a82346345a52a1e5c7c41","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.2.0.tgz","fileCount":41,"integrity":"sha512-wfcnOjMvBKR7NlMfSOlvaobrTizJbGU8KQLO4S+8GStdE0dp6ipK98uS7g4Kz0/nd22CSrcbmMN+Y1Hi68o6HA==","signatures":[{"sig":"MEUCIQC3RmmanvCTL5nc5B1s133hTI91YgH3FrkuvDQH510sFQIge8xP0FnVYxZQy5tP5fawjtRa8emedzGjMfPUQl5LKPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282771},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"dfcc55ef7b763ff82583a73f419d4b48bbc683a8","scripts":{"dev":"vite","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","test:e2e":"node scripts/test-editor.mjs","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^18.3.1","vitest":"^3.2.4","cpy-cli":"^5.0.0","happy-dom":"^20.9.0","react-dom":"^18.3.1","playwright":"^1.59.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.2.0_1776902940946_0.32094006955968823","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@atomic-editor/editor","version":"0.2.1","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.2.1","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"346844d3de8eb6d642bfd5498a359239b80d72b0","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.2.1.tgz","fileCount":41,"integrity":"sha512-uoL1pxHjdBnMS0Ifn8ONfW2YCdct7lbYFT0RED3OF/M6h6EomPZsO/AQA304pys4HOzVPjiyOnvxl2yNK+3LSg==","signatures":[{"sig":"MEUCIQDgXi/uH5wkRTdeKZ35m6pxLwvW3Q+sVh9OYKkMCPzwXQIgIolbVKACD2JaIhLtcvUNgqQtBLjIFiN8G6dqZdPQJkc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":285708},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"6fd6a2f20510837cf5ee26de4e45be7c38943bb9","scripts":{"dev":"vite","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","test:e2e":"node scripts/test-editor.mjs","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^18.3.1","vitest":"^3.2.4","cpy-cli":"^5.0.0","happy-dom":"^20.9.0","react-dom":"^18.3.1","playwright":"^1.59.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.2.1_1776947403105_0.6214790930559171","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@atomic-editor/editor","version":"0.3.0","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.3.0","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"299990ab8bf4db5bec439f126fea4c3754e9fd5b","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.3.0.tgz","fileCount":45,"integrity":"sha512-+d3HXmz1um/QB+rcCC/G5JogywFKaagLeG/Zx1qnvPFEsk/nNt6zf3ai2YgyClMca/x7OPndMZEaA5qFE5zbYw==","signatures":[{"sig":"MEUCIQCv0dENLjRW/aTgdaOXkQIweTsTkiR7YTwjPHXoND+z0wIgSukllWpmAd6pSC8WAbI5G+XrooDCgcmAcC1/o5tdHq4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":330713},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"26f75e76491e3f9dd698ea91ab91efd5a5e84080","scripts":{"dev":"vite --host 0.0.0.0","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","prepare":"npm run build","test:e2e":"node scripts/test-editor.mjs","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^18.3.1","vitest":"^3.2.4","cpy-cli":"^5.0.0","happy-dom":"^20.9.0","react-dom":"^18.3.1","playwright":"^1.59.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.3.0_1777138913477_0.2457206279265236","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@atomic-editor/editor","version":"0.4.0","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.4.0","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"cc68cd53cc9e4ef105e07064f8864f11b7b99845","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.4.0.tgz","fileCount":45,"integrity":"sha512-pyzFDA8rgnCiVpwL88kkuM+JPtSB69J9NvyBn8nveGbgOpikqsOUR6xO/d7TwzgO6NEBE4/eNjSwgtwXcXsSew==","signatures":[{"sig":"MEUCIQD8iJQvgfTOSVZQVwF3C8iK/v1dIX+97vmcDTvYyxFEawIgcpj+lnBoOf1wXFpH512nTUJIpSfKbI9tJTJf26JQI8A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":340029},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"c82ce16a5934144e0dd8e55da60cbf324b6b2785","scripts":{"dev":"vite --host 0.0.0.0","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","prepare":"npm run build","test:e2e":"node scripts/test-editor.mjs","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^18.3.1","vitest":"^3.2.4","cpy-cli":"^5.0.0","happy-dom":"^20.9.0","react-dom":"^18.3.1","playwright":"^1.59.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.4.0_1780229326282_0.411305063654013","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@atomic-editor/editor","version":"0.4.1","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.4.1","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"8a8904f32db0dc97384e22bce8e0dbfec0c4efce","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.4.1.tgz","fileCount":45,"integrity":"sha512-6esk5+FP/dgE/DA2jJWIeRmbD4j/gfjWKI0XdwfV1sgB+WjlZpDLb5NM+/FWbdYhL/tM+PxoXzz/acXcgSMKHQ==","signatures":[{"sig":"MEQCIFKGwdtkLDW9kMfzOQzdwLs52QIitSYnxtuuUJ9XmiICAiB9wluUe6tvlsqJ7RAMUWWTmmg7yG6OVDPWKFDvtI7Zbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":341130},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"cc375bba6e7b97cfb62b6e6b92d7023d3a6545e4","scripts":{"dev":"vite --host 0.0.0.0","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","prepare":"npm run build","test:e2e":"node scripts/test-editor.mjs","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^18.3.1","vitest":"^3.2.4","cpy-cli":"^5.0.0","happy-dom":"^20.9.0","react-dom":"^18.3.1","playwright":"^1.59.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.4.1_1780241392126_0.9984957948982665","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@atomic-editor/editor","version":"0.4.2","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.4.2","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"906e0a27e39384e666f4f454489d9192c5271511","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.4.2.tgz","fileCount":45,"integrity":"sha512-dg1OC8KiuPivpq+Hl0zGPw2YZy1y9sH/DXTSN0pOO3mDc/ZyO/KJxWIl/m+eFjJqjM4mlkgRoBkpFL7JQxyzHw==","signatures":[{"sig":"MEYCIQCkexkFxhsZ1GZh1vNA4Lf3joGBYEE1clF9/N3zMHu/GgIhAOaYsxE0+hAxQ467FhFD1xZHoX3WtYUo0iId9sQoNqwp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":342805},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"beea2c2fa22b39c2c273767972877b5ba5392772","scripts":{"dev":"vite --host 0.0.0.0","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","prepare":"npm run build","test:e2e":"node scripts/test-editor.mjs","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^18.3.1","vitest":"^3.2.4","cpy-cli":"^5.0.0","happy-dom":"^20.9.0","react-dom":"^18.3.1","playwright":"^1.59.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.4.2_1780256717360_0.43936860537653377","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@atomic-editor/editor","version":"0.4.3","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.4.3","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"5ce46d6fc8ccb684a91b9b5abb5b3561c322a146","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.4.3.tgz","fileCount":45,"integrity":"sha512-91+Gztr+Jxut0VSQ1ncUHNurM+NmQdBo8kXQ+EKck+P75cUuKMYMTwhhJk6Fg0Bxe+t57I70p4ipiRHzlFKdLQ==","signatures":[{"sig":"MEYCIQCoVIJkFFhInv7xOI95M72NUQv7T9mAXf7vM0FHz+ZWUQIhAJtEMFhJKOaLb1emS+f6zBlpaMNltKrPBvsGDpnDR5Kq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":353372},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"3a5b95854463c353369c6b7416605f18f932f49a","scripts":{"dev":"vite --host 0.0.0.0","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","prepare":"npm run build","test:e2e":"node scripts/test-editor.mjs","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^18.3.1","vitest":"^3.2.4","cpy-cli":"^5.0.0","happy-dom":"^20.9.0","react-dom":"^18.3.1","playwright":"^1.59.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.4.3_1780271088616_0.3476634713381994","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@atomic-editor/editor","version":"0.5.0","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.5.0","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"e4be1881ec68341bd50771aeefeafd42423ffccb","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.5.0.tgz","fileCount":49,"integrity":"sha512-3kb+uQdqjLG3qwXNr9w9cJPo9wFI36y17YiR9t1bzmD9UDyRhDGj01mgt5aY9wiCa+Za8AOt37fQ60vTq+YoQw==","signatures":[{"sig":"MEQCIA4KvMAwuMmSPrmXb5LKw43qgYORiuBhQvQXzAl6THeyAiAueRDGWtIbrTjOIyxMRt2FW3UsbO2fb10DJ+oumKM1Xw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":374003},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"397d955022e52bdbab00a44df76d2075dfedabfd","scripts":{"dev":"vite --host 0.0.0.0","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","prepare":"npm run build","test:e2e":"node scripts/test-editor.mjs","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^18.3.1","vitest":"^3.2.4","cpy-cli":"^5.0.0","happy-dom":"^20.9.0","react-dom":"^18.3.1","playwright":"^1.59.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.5.0_1783789738464_0.8052654631145644","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@atomic-editor/editor","version":"0.5.1","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.5.1","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"8ab459e120d1b71ca1f5b27c7319f875f4db0581","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.5.1.tgz","fileCount":49,"integrity":"sha512-ChgsiDLnNJ5CjKkFVa3ZkJXV8jDZRA0l8oHheA3p2GpUscBNc4Th1xit9X0F8xvks0UHoVCCnPkE5hwFLhgmlQ==","signatures":[{"sig":"MEUCIQDWvR6EtjpcAkgMabFG9nCc/Tpkhd/JxKVlZLltaTkvawIgS8Lq2vl3hdSUv5g47IoBnjKQH7NEhBaRkRwFSKnwW6Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":377753},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"e80f8f38bce03cddd99dda09ab3e99eaaa9e87af","scripts":{"dev":"vite --host 0.0.0.0","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","prepare":"npm run build","test:e2e":"node scripts/test-editor.mjs","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","react":"^18.3.1","vitest":"^3.2.4","cpy-cli":"^5.0.0","happy-dom":"^20.9.0","react-dom":"^18.3.1","playwright":"^1.59.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.5.1_1783794884313_0.06565191740059606","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@atomic-editor/editor","version":"0.6.0","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.6.0","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"7872ef93baf93771036df765597e2ae29d3b8dee","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.6.0.tgz","fileCount":53,"integrity":"sha512-kVZUPzYPkoaHrxZ1wOjF8hMZTnk6lp4/g/NNAQSGATZycxnmd6cWNpGlH9vD4BryGjIMP6vKH234vDUBSiTGRw==","signatures":[{"sig":"MEUCIG0UgShmvr3r/RBQALwXpWVfBcpIZ/HsMDVUrOHcEfOoAiEAzD1Efp7WnHInn5fXZN0hJSRvRC8263nsa6WL5syrqJM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":397022},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"355bad164f1ae819bb0c2468cf1ffd5afdb47a45","scripts":{"dev":"vite --host 0.0.0.0","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","prepare":"npm run build","test:e2e":"node scripts/test-editor.mjs","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.4.3","react":"^18.3.1","vitest":"^3.2.7","cpy-cli":"^5.0.0","happy-dom":"^20.10.6","react-dom":"^18.3.1","playwright":"^1.59.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@lezer/markdown":"^1.6.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@lezer/markdown":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.6.0_1783799264063_0.5455578915269677","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@atomic-editor/editor","version":"0.6.1","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"author":{"name":"Kenny Bergquist"},"license":"MIT","_id":"@atomic-editor/editor@0.6.1","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"homepage":"https://github.com/kenforthewin/atomic-editor#readme","bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"dist":{"shasum":"b1221c811c56e3237ec925dccd85e3a6fbde9c5c","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.6.1.tgz","fileCount":53,"integrity":"sha512-EP1eVCCsJ3Kr3ihAbd8xgqadujp8DHiqw89c7/Ob6/UMG1SzbryToJwQQeATjuXd1iZkd2whXRDMV4OtjLJLxw==","signatures":[{"sig":"MEUCIQD71GC4I1p/pwhviAW3naei07XFX2Vs0ho0j8YHGFs8kwIgWdLADByO1rnVqypgSUIYP6SRalIrrNlEoflbnIIFMg8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":401890},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles/inline-preview.css","./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"}},"gitHead":"a16a54f4b9d789cead6743a77a661f003674c454","scripts":{"dev":"vite --host 0.0.0.0","test":"vitest run","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles --flat","prepare":"npm run build","test:e2e":"npm run test:e2e:legacy && npm run test:e2e:playwright","typecheck":"tsc -p tsconfig.json --noEmit","build:demo":"vite build","test:watch":"vitest","test:package":"node scripts/test-package.mjs","prepublishOnly":"npm run typecheck && npm run test && npm run build","test:e2e:headed":"playwright test --project=chromium --headed","test:e2e:legacy":"node scripts/test-editor.mjs","test:e2e:playwright":"playwright test","test:e2e:legacy:headed":"node scripts/test-editor.mjs --headed"},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"repository":{"url":"git+https://github.com/kenforthewin/atomic-editor.git","type":"git"},"_npmVersion":"10.8.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.4.3","react":"^18.3.1","vitest":"^3.2.7","cpy-cli":"^5.0.0","happy-dom":"^20.10.6","react-dom":"^18.3.1","playwright":"^1.61.1","typescript":"^5.6.0","@types/react":"^18.3.0","@lezer/common":"^1.2.3","@lezer/markdown":"^1.6.3","@codemirror/view":"^6.38.8","@lezer/highlight":"^1.2.3","@playwright/test":"^1.61.1","@types/react-dom":"^18.3.0","@codemirror/state":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/lang-go":"^6.0.1","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-php":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/language":"^6.12.3","@vitejs/plugin-react":"^4.3.0","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-json":"^6.0.2","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-yaml":"^6.1.3","@codemirror/lang-python":"^6.2.1","@codemirror/autocomplete":"^6.20.0","@codemirror/legacy-modes":"^6.5.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-javascript":"^6.2.5"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@lezer/common":"^1.0.0","@lezer/markdown":"^1.0.0","@codemirror/view":"^6.0.0","@lezer/highlight":"^1.0.0","@codemirror/state":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/autocomplete":"^6.0.0","@codemirror/legacy-modes":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/lang-javascript":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-go":{"optional":true},"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/legacy-modes":{"optional":true},"@codemirror/lang-javascript":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/editor_0.6.1_1783803756828_0.9288936096324469","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@atomic-editor/editor","version":"0.6.2","description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"license":"MIT","author":{"name":"Kenny Bergquist"},"homepage":"https://github.com/kenforthewin/atomic-editor#readme","repository":{"type":"git","url":"git+https://github.com/kenforthewin/atomic-editor.git"},"bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./code-languages":{"types":"./dist/code-languages.d.ts","default":"./dist/code-languages.js"},"./styles.css":"./dist/styles/inline-preview.css"},"sideEffects":["**/*.css"],"engines":{"node":">=18"},"publishConfig":{"access":"public"},"scripts":{"dev":"vite --host 0.0.0.0","build":"tsc -p tsconfig.build.json && cpy src/styles/inline-preview.css dist/styles/ --flat","build:demo":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run","test:watch":"vitest","test:e2e":"npm run test:e2e:legacy && npm run test:e2e:playwright","test:e2e:legacy":"node scripts/test-editor.mjs","test:e2e:legacy:headed":"node scripts/test-editor.mjs --headed","test:e2e:playwright":"playwright test","test:e2e:headed":"playwright test --project=chromium --headed","test:package":"node scripts/test-package.mjs","prepare":"npm run build","prepublishOnly":"npm run typecheck && npm run test && npm run build"},"peerDependencies":{"@codemirror/autocomplete":"^6.0.0","@codemirror/commands":"^6.0.0","@codemirror/lang-markdown":"^6.0.0","@codemirror/language":"^6.0.0","@codemirror/search":"^6.0.0","@codemirror/state":"^6.0.0","@codemirror/view":"^6.0.0","@lezer/common":"^1.0.0","@lezer/highlight":"^1.0.0","@lezer/markdown":"^1.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@codemirror/lang-cpp":"^6.0.0","@codemirror/lang-css":"^6.0.0","@codemirror/lang-go":"^6.0.0","@codemirror/lang-html":"^6.0.0","@codemirror/lang-java":"^6.0.0","@codemirror/lang-javascript":"^6.0.0","@codemirror/lang-json":"^6.0.0","@codemirror/lang-php":"^6.0.0","@codemirror/lang-python":"^6.0.0","@codemirror/lang-rust":"^6.0.0","@codemirror/lang-sql":"^6.0.0","@codemirror/lang-xml":"^6.0.0","@codemirror/lang-yaml":"^6.0.0","@codemirror/legacy-modes":"^6.0.0"},"peerDependenciesMeta":{"@codemirror/lang-cpp":{"optional":true},"@codemirror/lang-css":{"optional":true},"@codemirror/lang-go":{"optional":true},"@codemirror/lang-html":{"optional":true},"@codemirror/lang-java":{"optional":true},"@codemirror/lang-javascript":{"optional":true},"@codemirror/lang-json":{"optional":true},"@codemirror/lang-php":{"optional":true},"@codemirror/lang-python":{"optional":true},"@codemirror/lang-rust":{"optional":true},"@codemirror/lang-sql":{"optional":true},"@codemirror/lang-xml":{"optional":true},"@codemirror/lang-yaml":{"optional":true},"@codemirror/legacy-modes":{"optional":true}},"devDependencies":{"@codemirror/autocomplete":"^6.20.0","@codemirror/commands":"^6.10.0","@codemirror/lang-cpp":"^6.0.3","@codemirror/lang-css":"^6.3.1","@codemirror/lang-go":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-java":"^6.0.2","@codemirror/lang-javascript":"^6.2.5","@codemirror/lang-json":"^6.0.2","@codemirror/lang-markdown":"^6.5.0","@codemirror/lang-php":"^6.0.2","@codemirror/lang-python":"^6.2.1","@codemirror/lang-rust":"^6.0.2","@codemirror/lang-sql":"^6.10.0","@codemirror/lang-xml":"^6.1.0","@codemirror/lang-yaml":"^6.1.3","@codemirror/language":"^6.12.3","@codemirror/legacy-modes":"^6.5.2","@codemirror/search":"^6.5.11","@codemirror/state":"^6.5.2","@codemirror/view":"^6.38.8","@lezer/common":"^1.2.3","@lezer/highlight":"^1.2.3","@lezer/markdown":"^1.6.3","@playwright/test":"^1.61.1","@types/react":"^19.2.17","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.3","cpy-cli":"^7.0.0","happy-dom":"^20.10.6","playwright":"^1.61.1","react":"^19.2.7","react-dom":"^19.2.7","typescript":"^7.0.2","vite":"^8.1.4","vitest":"^4.1.10"},"_id":"@atomic-editor/editor@0.6.2","gitHead":"b6ed65f01bde4510031bc7a495520bc1a7688c66","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-b4cZRduNOoZ5sJ7ywaANcnLLKP3EJYfMUm5BgYK3Wb+9jI+KUs04RZHzFMVcdedNjvfqBDbzW6KYAmq5bAayxw==","shasum":"ee7cb2e5db45de700189c4118e665a2165b7d27b","tarball":"https://registry.npmjs.org/@atomic-editor/editor/-/editor-0.6.2.tgz","fileCount":53,"unpackedSize":402598,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-editor%2feditor@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCbSBZJNyHI/IoAQ2j3QNUYa/vTb4CunRtJE/BYxFa6RgIhAOmevAvfrjfkumxZq2qiQzSziG0vZ/8onj45VDKRoBeL"}]},"_npmUser":{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"},"directories":{},"maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/editor_0.6.2_1783805749190_0.269415196627"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-22T21:28:01.246Z","modified":"2026-07-11T21:35:49.703Z","0.1.0":"2026-04-22T21:28:01.457Z","0.1.1":"2026-04-22T23:38:07.225Z","0.2.0":"2026-04-23T00:09:01.160Z","0.2.1":"2026-04-23T12:30:03.284Z","0.3.0":"2026-04-25T17:41:53.656Z","0.4.0":"2026-05-31T12:08:46.441Z","0.4.1":"2026-05-31T15:29:52.317Z","0.4.2":"2026-05-31T19:45:17.509Z","0.4.3":"2026-05-31T23:44:48.767Z","0.5.0":"2026-07-11T17:08:58.632Z","0.5.1":"2026-07-11T18:34:44.443Z","0.6.0":"2026-07-11T19:47:44.217Z","0.6.1":"2026-07-11T21:02:37.012Z","0.6.2":"2026-07-11T21:35:49.340Z"},"bugs":{"url":"https://github.com/kenforthewin/atomic-editor/issues"},"author":{"name":"Kenny Bergquist"},"license":"MIT","homepage":"https://github.com/kenforthewin/atomic-editor#readme","keywords":["codemirror","codemirror6","markdown","editor","wysiwyg","live-preview","obsidian","react"],"repository":{"type":"git","url":"git+https://github.com/kenforthewin/atomic-editor.git"},"description":"CodeMirror 6 markdown editor with Obsidian-style inline live preview.","maintainers":[{"name":"kenforthewin","email":"bergquist.kenneth@gmail.com"}],"readme":"# Atomic Editor\n\n**Obsidian-style live preview for [CodeMirror 6](https://codemirror.net/), in React.**\n\n[![npm version](https://img.shields.io/npm/v/@atomic-editor/editor?color=7c3aed&labelColor=2d2d2d)](https://www.npmjs.com/package/@atomic-editor/editor)\n[![license](https://img.shields.io/npm/l/@atomic-editor/editor?color=7c3aed&labelColor=2d2d2d)](./LICENSE)\n\nA markdown editor where formatting renders as you type — headings, bold,\ntables, images, task lists — while the text underneath stays plain markdown.\nThe document you read is the document you edit: no split preview, and copy /\nsave / round-trip behave exactly like a plain textarea full of markdown. An\noptional reading mode locks that same rendered surface without introducing a\nseparate preview document.\n\nIt's the writing surface behind\n[**Atomic**](https://github.com/kenforthewin/atomic), a personal knowledge\nbase — extracted to stand on its own, and hardened on real user documents.\n\n[**Try the live demo →**](https://kenforthewin.github.io/atomic-editor/)\n\n## Features\n\n- **Live preview.** Headings, emphasis, `==highlights==`, links, images,\n  and tables render inline; the raw syntax appears only on the line your\n  cursor is on, then tucks itself away when you move on.\n- **Raw markdown is the source of truth.** Every decoration is view-only, so\n  copy, save, and round-trip through any other markdown tool are byte-for-byte\n  identical to a plain textarea.\n- **Virtualized and layout-stable.** CM6 renders only the viewport, and lines\n  never reflow when you click into them — open a 500-page document and scroll\n  stays smooth, even on iOS.\n- **WYSIWYG tables.** Click a cell to edit in place; wide tables scroll\n  horizontally inside a contained wrapper instead of stretching the page.\n- **Wiki links.** `[[target]]` / `[[target|label]]` with async resolution,\n  autocomplete, and click-to-open — for knowledge-base-style cross-linking.\n- **Smart lists.** Enter continues tight bullets and task checkboxes, Enter on\n  an empty item dedents, and `- [ ]` becomes a real, clickable checkbox.\n- **Syntax-highlighted code** for 20+ languages, each grammar lazy-loaded the\n  first time a fence uses it so unused languages never hit the wire.\n- **Themed with CSS variables** — dark by default, light via a single\n  `data-theme=\"light\"` attribute, every color overridable.\n- **Minimal find panel** (Ctrl/Cmd+F) styled to match the editor.\n\n## Install\n\n```bash\nnpm install @atomic-editor/editor \\\n  @codemirror/state @codemirror/view @codemirror/commands \\\n  @codemirror/autocomplete @codemirror/language @codemirror/search \\\n  @codemirror/lang-markdown \\\n  @lezer/common @lezer/highlight @lezer/markdown \\\n  react react-dom\n```\n\nThe CodeMirror and React packages are declared as **peer dependencies**\nrather than regular deps. You install them alongside the editor so\nyour bundler resolves a single shared copy — two copies of\n`@codemirror/state` in one bundle would silently break the editor's\nstate-field identity checks.\n\nFenced-code language grammars (`@codemirror/lang-javascript`,\n`@codemirror/lang-python`, etc.) are **optional peers** — install only\nthe ones you want highlighted. See\n[Syntax highlighting](#syntax-highlighting) below.\n\n## Use\n\n```tsx\nimport { AtomicCodeMirrorEditor } from '@atomic-editor/editor';\nimport '@atomic-editor/editor/styles.css';\n\nfunction App() {\n  return (\n    <AtomicCodeMirrorEditor\n      markdownSource={'# Hello\\n\\nA paragraph.'}\n      onMarkdownChange={(md) => console.log(md)}\n      onLinkClick={(url) => window.open(url, '_blank', 'noopener,noreferrer')}\n    />\n  );\n}\n```\n\nThe editor fills its parent — wrap it in a height-bounded flex or grid\ncontainer.\n\n### Imperative handle\n\nPass a ref if you need to drive the editor from outside — e.g. wire\nyour own toolbar buttons, or open the search panel from a global\nkeybinding:\n\n```tsx\nimport { useRef } from 'react';\nimport {\n  AtomicCodeMirrorEditor,\n  type AtomicCodeMirrorEditorHandle,\n} from '@atomic-editor/editor';\n\nfunction App() {\n  const editor = useRef<AtomicCodeMirrorEditorHandle | null>(null);\n  return (\n    <>\n      <button onClick={() => editor.current?.openSearch()}>Search</button>\n      <AtomicCodeMirrorEditor\n        markdownSource={'…'}\n        editorHandleRef={editor}\n      />\n    </>\n  );\n}\n```\n\nMethods: `focus`, `undo`, `redo`, `openSearch(query?)`, `closeSearch`,\n`revealText(query)`, `isSearchOpen`, `getMarkdown`, `getContentDOM`,\n`setReadOnly(readOnly)`.\n\n### Read-only (reading) mode\n\nPass `readOnly` to render the document as a reading surface, like\nObsidian's Reading view:\n\n```tsx\n<AtomicCodeMirrorEditor markdownSource={'…'} readOnly />\n```\n\nIn read-only mode the whole document stays rendered — source never\nreveals under a caret — typing / paste / table editing are disabled,\nand clicking a link (anywhere on it, not just the trailing icon) opens\nit instead of placing a caret. Task checkboxes stay toggleable and\nfind-in-document still works.\n\n`readOnly` is backed by a CodeMirror `Compartment`, so flipping it\nreconfigures the live view in place — scroll position and search state\nare preserved, no remount. Drive it from a prop, or imperatively via\n`editorHandle.setReadOnly(true)` for a toolbar toggle outside React's\nrender cycle. For consumers composing a custom editor, the underlying\n`readOnlyFacet` and `readOnlyExtension` are exported too.\n\n### Arriving from a search result\n\nTwo props drop the user near a relevant paragraph on mount:\n\n- **`initialSearchText`** opens the search panel pre-filled with the\n  query. Full navigation surface — arrow keys to step through matches,\n  close to dismiss. Good when the user explicitly invoked find.\n- **`initialRevealText`** does a less intrusive scroll-into-view with\n  a 3.2 s fade-out highlight on the first match — no panel, no cursor\n  move. Good for \"I clicked a search result, take me to the paragraph\n  it came from\".\n\nBoth accept `string | null`. The reveal matcher falls back\nprogressively — exact, whitespace-collapsed, individual lines, then\ntruncated prefixes (140 and 80 chars) — so hits still resolve when\nthe query came from an LLM-massaged snippet that doesn't match the\nsource byte-for-byte. For post-mount reveals, call\n`editorHandle.revealText(query)` via the imperative handle.\n\nThe fade highlight uses CSS variables\n`--atomic-editor-initial-reveal-bg` and\n`--atomic-editor-initial-reveal-bg-strong`; override to theme the\npeak and settled colors independently of the main search-match\npalette.\n\n## Syntax highlighting\n\nFenced code blocks are plain monospace by default. To enable\nhighlighting, pass a `codeLanguages` array. `@codemirror/lang-markdown`\ndynamically imports each grammar the first time a fence uses it, so\nlarge lists don't bloat the initial bundle.\n\n### Option 1: use the curated list (~20 languages)\n\n```bash\n# Install the lang-* peers you want highlighted.\nnpm install \\\n  @codemirror/lang-javascript @codemirror/lang-python \\\n  @codemirror/lang-rust @codemirror/lang-go @codemirror/lang-html \\\n  @codemirror/lang-css @codemirror/lang-json @codemirror/lang-yaml \\\n  @codemirror/legacy-modes  # ruby/swift/shell/toml/dockerfile\n```\n\n```tsx\nimport { AtomicCodeMirrorEditor } from '@atomic-editor/editor';\nimport { ATOMIC_CODE_LANGUAGES } from '@atomic-editor/editor/code-languages';\n\n<AtomicCodeMirrorEditor\n  markdownSource={'…'}\n  codeLanguages={ATOMIC_CODE_LANGUAGES}\n/>\n```\n\nSee [`src/code-languages.ts`](./src/code-languages.ts) for the full\nlist (JavaScript, TypeScript, Python, Go, Rust, Ruby, Java, C, C++,\nPHP, Swift, Shell, SQL, HTML, CSS, XML, JSON, YAML, TOML, Dockerfile,\nMarkdown).\n\n### Option 2: bring your own\n\n```tsx\nimport { LanguageDescription } from '@codemirror/language';\nimport { python } from '@codemirror/lang-python';\n\nconst codeLanguages = [\n  LanguageDescription.of({\n    name: 'Python',\n    alias: ['py'],\n    extensions: ['py'],\n    load: () => Promise.resolve(python()),\n  }),\n];\n\n<AtomicCodeMirrorEditor markdownSource={'…'} codeLanguages={codeLanguages} />\n```\n\n## Wiki links\n\n`[[target]]` and `[[target|label]]` links — the way Atomic and Obsidian\ncross-link notes — ship as a composable extension. It renders labeled links,\nresolves bare targets asynchronously (to show a real title and a\nresolved / missing state), opens links on click, and offers autocomplete as\nsoon as you type `[[`:\n\n```tsx\nimport { AtomicCodeMirrorEditor, wikiLinks } from '@atomic-editor/editor';\n\n<AtomicCodeMirrorEditor\n  markdownSource={'See [[atom-42|the design doc]] for details.'}\n  extensions={[\n    wikiLinks({\n      suggest: async (query) => store.search(query),     // autocomplete source\n      resolve: async (target) => store.resolve(target),  // label + status for bare links\n      onOpen: (target) => router.open(target),           // click / Cmd-click to navigate\n    }),\n  ]}\n/>;\n```\n\nDraft links stay editable while the cursor is inside them; resolution is\ndebounced and cached. See [`src/wiki-links.ts`](./src/wiki-links.ts) for the\nfull config — custom serialization, resolver policies, suggestion limits, and\nthe `WikiLinkSuggestion` / `WikiLinkResolvedTarget` types.\n\n## Theming\n\nEvery color, font, and size reads from a CSS custom property with an\ninline fallback. Override on any ancestor of the editor.\n\nThe package ships a **light variant** that activates whenever\n`data-theme=\"light\"` is set on an ancestor — including `<html>` or\n`<body>`. The dark defaults remain unchanged; the light block just\nre-maps the same variables.\n\n```html\n<html data-theme=\"light\">…</html>\n```\n\n| Variable                              | Dark default (auto-light on `[data-theme=\"light\"]`) |\n| ------------------------------------- | --------------------------------------------------- |\n| `--atomic-editor-font`                | system sans                                         |\n| `--atomic-editor-font-mono`           | system mono                                         |\n| `--atomic-editor-body-size`           | `1.0625rem`                                         |\n| `--atomic-editor-body-leading`        | `1.7`                                               |\n| `--atomic-editor-measure`             | `70ch`                                              |\n| `--atomic-editor-fg`                  | `#dcddde`                                           |\n| `--atomic-editor-fg-muted`            | `#888`                                              |\n| `--atomic-editor-fg-faint`            | `#666`                                              |\n| `--atomic-editor-bg`                  | `#1e1e1e`                                           |\n| `--atomic-editor-bg-panel`            | `#252525`                                           |\n| `--atomic-editor-bg-surface`          | `#2d2d2d`                                           |\n| `--atomic-editor-border`              | `#3d3d3d`                                           |\n| `--atomic-editor-accent`              | `#7c3aed`                                           |\n| `--atomic-editor-accent-bright`       | `#a78bfa`                                           |\n| `--atomic-editor-accent-soft`         | blockquote rail / reveal tint                       |\n| `--atomic-editor-link`                | `#818cf8`                                           |\n| `--atomic-editor-link-hover`          | `#a5b4fc`                                           |\n| `--atomic-editor-code-bg`             | subtle dark panel                                   |\n| `--atomic-editor-selection-bg`        | accent-tinted 28%                                   |\n| `--atomic-editor-search-bg`           | accent-tinted 28%                                   |\n| `--atomic-editor-search-bg-active`    | accent-tinted 60%                                   |\n| **Code-token colors** (Palenight)     |                                                     |\n| `--atomic-editor-hl-keyword`          | `#c792ea`                                           |\n| `--atomic-editor-hl-string`           | `#c3e88d`                                           |\n| `--atomic-editor-hl-number`           | `#f78c6c`                                           |\n| `--atomic-editor-hl-comment`          | `#6a7a82`                                           |\n| `--atomic-editor-hl-type`             | `#ffcb6b`                                           |\n| `--atomic-editor-hl-function`         | `#82aaff`                                           |\n| `--atomic-editor-hl-property`         | `#82aaff`                                           |\n| `--atomic-editor-hl-regexp`           | `#f07178`                                           |\n| `--atomic-editor-hl-escape`           | `#89ddff`                                           |\n| `--atomic-editor-hl-tag`              | `#f07178`                                           |\n| `--atomic-editor-hl-variable`         | `#eeffff`                                           |\n| `--atomic-editor-hl-operator`         | `#89ddff`                                           |\n| `--atomic-editor-hl-invalid`          | `#ff5370`                                           |\n\n## Extending with plugins\n\nCodeMirror 6 is extension-based, and so is this package. Pass any\nnumber of CM6 extensions via the `extensions` prop to layer in\nautocomplete sources, custom decorations, domain-specific keymaps,\ncollaboration (yjs), vim mode, or anything else. (The\n[wiki-links](#wiki-links) extension above is built with exactly this hook.)\n\n```tsx\nimport { autocompletion, type CompletionContext } from '@codemirror/autocomplete';\n\nconst hashtags = autocompletion({\n  override: [(ctx: CompletionContext) => {\n    const match = ctx.matchBefore(/#\\w*$/);\n    if (!match) return null;\n    return {\n      from: match.from + 1,\n      options: myTagStore.list().map((tag) => ({ label: tag })),\n    };\n  }],\n});\n\n<AtomicCodeMirrorEditor\n  markdownSource={'…'}\n  extensions={[hashtags]}\n/>\n```\n\nConsumer extensions are appended after the built-ins, so wrap a custom\nkeymap in `Prec.high` (from `@codemirror/state`) if it needs to beat\nthe default bindings. The array is captured at mount — pass a stable\nreference unless you want a remount.\n\n### Low-level composition\n\nIf the React wrapper's extension set is too opinionated, every piece\nis exported individually so you can assemble a fully custom editor:\n\n```ts\nimport {\n  inlinePreview, // live preview decorations\n  imageBlocks,   // rendered image widgets\n  tables,        // WYSIWYG table widget\n  wikiLinks,     // [[...]] links\n  atomicEditorTheme,\n  atomicMarkdownSyntax,\n  extendEmphasisPair,\n} from '@atomic-editor/editor';\n```\n\nYou could build an editor that includes `inlinePreview()` + `tables()`\nbut skips `atomicEditorTheme` for your own `EditorView.theme({...})`,\nor swap `atomicMarkdownSyntax` for a custom\n`syntaxHighlighting(HighlightStyle.define([...]))`. At that point\nyou're outside the React wrapper and in plain CM6 territory.\n\n## Design notes\n\nSee [docs/architecture.md](./docs/architecture.md) for the full design\nrationale. Short version:\n\n- **Raw markdown is the source of truth.** All decorations are\n  view-only — copy, save, and round-trip to any markdown parser are\n  identical to what you'd expect from a plain textarea.\n- **No layout shifts.** Every line has a stable height regardless of\n  cursor position. Inline decorations hide syntax tokens on inactive\n  lines without changing line heights.\n- **Narrow invalidation.** Decoration rebuilds only touch lines whose\n  content (or surrounding trigger characters) changed, so editing a\n  paragraph in a 50KB doc costs O(change size), not O(doc).\n- **Mouse-freeze guard.** Clicks don't trigger a decoration rebuild\n  mid-interaction — eliminates a class of cursor-drift bugs.\n- **iOS-aware.** Momentum-scroll halts (image remount jank, heightmap\n  drift, anchor conflicts) were tracked down and fixed; the demo's\n  sample-size picker doubles as a stress harness for spotting any\n  regressions.\n\n## Contributing\n\nDevelopment requires Node.js 20.19+, 22.12+, or 24+. The published editor\nitself continues to support Node.js 18 and newer.\n\n```bash\ngit clone https://github.com/kenforthewin/atomic-editor\ncd atomic-editor\nnpm install\nnpm run dev        # demo dev server at http://localhost:5173\nnpm test           # vitest unit tests\nnpm run build      # tsc emit to dist/\nnpm run test:e2e   # legacy probes + deterministic browser suites\nnpm run test:package  # pack and build a clean consumer app\n```\n\nThe browser harness combines the broad legacy probe suite with focused,\nisolated Playwright Test specs. Chromium runs the full matrix; Firefox and\nWebKit run the compatibility smoke tests. See\n[docs/testing.md](./docs/testing.md) for the layers, commands, and the rule for\nturning a bug fix into a lasting regression test.\n\nBecause the editor ships inside [Atomic](https://github.com/kenforthewin/atomic),\nreal user documents are its de-facto fuzz corpus — odd inputs (multi-line\nlink titles, over-escaped RSS imports, wide tables) tend to surface there\nfirst, and fixes land here. Issues and PRs welcome.\n\n## License\n\nMIT. See [LICENSE](./LICENSE).\n","readmeFilename":"README.md"}