[{"data":1,"prerenderedAt":1892},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fmigration-v1-to-v2":629,"\u002Fgetting-started\u002Fmigration-v1-to-v2-surround":1888},[4,27,60,265,595,625],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Editors","\u002Fgetting-started\u002Feditors","1.getting-started\u002F2.editors",{"title":19,"path":20,"stem":21},"Editor API","\u002Fgetting-started\u002Feditor-api","1.getting-started\u002F3.editor-api",{"title":23,"path":24,"stem":25},"Migration v1 → v2","\u002Fgetting-started\u002Fmigration-v1-to-v2","1.getting-started\u002F4.migration-v1-to-v2",false,{"title":15,"icon":28,"path":29,"stem":30,"children":31,"page":26},"i-lucide-layout-panel-left","\u002Feditors","2.editors",[32,36,40,44,48,52,56],{"title":33,"path":34,"stem":35},"JSON Editor","\u002Feditors\u002Fjson","2.editors\u002F1.json",{"title":37,"path":38,"stem":39},"Markdown Editor","\u002Feditors\u002Fmarkdown","2.editors\u002F2.markdown",{"title":41,"path":42,"stem":43},"Code Editor","\u002Feditors\u002Fcode","2.editors\u002F3.code",{"title":45,"path":46,"stem":47},"Forms Editor","\u002Feditors\u002Fforms","2.editors\u002F4.forms",{"title":49,"path":50,"stem":51},"Charts Editor","\u002Feditors\u002Fcharts","2.editors\u002F5.charts",{"title":53,"path":54,"stem":55},"Calendar Editor","\u002Feditors\u002Fcalendar","2.editors\u002F6.calendar",{"title":57,"path":58,"stem":59},"Tables Editor","\u002Feditors\u002Ftables","2.editors\u002F7.tables",{"title":61,"icon":62,"path":63,"stem":64,"children":65,"page":26},"Plugins","i-lucide-puzzle","\u002Fplugins","3.plugins",[66,70,108,154,180,210,235],{"title":67,"path":68,"stem":69},"Plugins overview","\u002Fplugins\u002Foverview","3.plugins\u002F1.overview",{"title":71,"icon":72,"path":73,"stem":74,"children":75,"page":26},"Formatting","i-lucide-type","\u002Fplugins\u002Fformatting","3.plugins\u002F2.formatting",[76,80,84,88,92,96,100,104],{"title":77,"path":78,"stem":79},"Default marks","\u002Fplugins\u002Fformatting\u002Ftoolbar","3.plugins\u002F2.formatting\u002F1.toolbar",{"title":81,"path":82,"stem":83},"Font","\u002Fplugins\u002Fformatting\u002Ffont","3.plugins\u002F2.formatting\u002F2.font",{"title":85,"path":86,"stem":87},"Typography","\u002Fplugins\u002Fformatting\u002Ftypography","3.plugins\u002F2.formatting\u002F3.typography",{"title":89,"path":90,"stem":91},"Color","\u002Fplugins\u002Fformatting\u002Fcolor","3.plugins\u002F2.formatting\u002F4.color",{"title":93,"path":94,"stem":95},"Clear Styles","\u002Fplugins\u002Fformatting\u002Fclear-styles","3.plugins\u002F2.formatting\u002F5.clear-styles",{"title":97,"path":98,"stem":99},"Alignment","\u002Fplugins\u002Fformatting\u002Falignment","3.plugins\u002F2.formatting\u002F6.alignment",{"title":101,"path":102,"stem":103},"Block Style","\u002Fplugins\u002Fformatting\u002Fblock-style","3.plugins\u002F2.formatting\u002F7.block-style",{"title":105,"path":106,"stem":107},"Link","\u002Fplugins\u002Fformatting\u002Flink","3.plugins\u002F2.formatting\u002F8.link",{"title":109,"icon":110,"path":111,"stem":112,"children":113,"page":26},"Blocks","i-lucide-blocks","\u002Fplugins\u002Fblocks","3.plugins\u002F3.blocks",[114,118,122,126,130,134,138,142,146,150],{"title":115,"path":116,"stem":117},"Block","\u002Fplugins\u002Fblocks\u002Fblock","3.plugins\u002F3.blocks\u002F01.block",{"title":119,"path":120,"stem":121},"Lists","\u002Fplugins\u002Fblocks\u002Flists","3.plugins\u002F3.blocks\u002F02.lists",{"title":123,"path":124,"stem":125},"Table","\u002Fplugins\u002Fblocks\u002Ftable","3.plugins\u002F3.blocks\u002F03.table",{"title":127,"path":128,"stem":129},"Templates","\u002Fplugins\u002Fblocks\u002Ftemplates","3.plugins\u002F3.blocks\u002F04.templates",{"title":131,"path":132,"stem":133},"Code Block","\u002Fplugins\u002Fblocks\u002Fcode-block","3.plugins\u002F3.blocks\u002F05.code-block",{"title":135,"path":136,"stem":137},"Math","\u002Fplugins\u002Fblocks\u002Fmath","3.plugins\u002F3.blocks\u002F06.math",{"title":139,"path":140,"stem":141},"HTML Viewer","\u002Fplugins\u002Fblocks\u002Fhtml-viewer","3.plugins\u002F3.blocks\u002F07.html-viewer",{"title":143,"path":144,"stem":145},"Footnotes","\u002Fplugins\u002Fblocks\u002Ffootnotes","3.plugins\u002F3.blocks\u002F08.footnotes",{"title":147,"path":148,"stem":149},"Anchor Link","\u002Fplugins\u002Fblocks\u002Fanchor-link","3.plugins\u002F3.blocks\u002F09.anchor-link",{"title":151,"path":152,"stem":153},"Footer","\u002Fplugins\u002Fblocks\u002Ffooter","3.plugins\u002F3.blocks\u002F10.footer",{"title":155,"icon":156,"path":157,"stem":158,"children":159,"page":26},"Media","i-lucide-image","\u002Fplugins\u002Fmedia","3.plugins\u002F4.media",[160,164,168,172,176],{"title":161,"path":162,"stem":163},"Image","\u002Fplugins\u002Fmedia\u002Fimage","3.plugins\u002F4.media\u002F1.image",{"title":165,"path":166,"stem":167},"Video","\u002Fplugins\u002Fmedia\u002Fvideo","3.plugins\u002F4.media\u002F2.video",{"title":169,"path":170,"stem":171},"YouTube Video","\u002Fplugins\u002Fmedia\u002Fyoutube-video","3.plugins\u002F4.media\u002F3.youtube-video",{"title":173,"path":174,"stem":175},"File Upload","\u002Fplugins\u002Fmedia\u002Ffile-upload","3.plugins\u002F4.media\u002F4.file-upload",{"title":177,"path":178,"stem":179},"PDF Embed","\u002Fplugins\u002Fmedia\u002Fpdf-embed","3.plugins\u002F4.media\u002F5.pdf-embed",{"title":181,"icon":182,"path":183,"stem":184,"children":185,"page":26},"Data & embeds","i-lucide-database","\u002Fplugins\u002Fdata","3.plugins\u002F5.data",[186,190,194,198,202,206],{"title":187,"path":188,"stem":189},"JSON","\u002Fplugins\u002Fdata\u002Fjson","3.plugins\u002F5.data\u002F1.json",{"title":191,"path":192,"stem":193},"Markdown","\u002Fplugins\u002Fdata\u002Fmarkdown","3.plugins\u002F5.data\u002F2.markdown",{"title":195,"path":196,"stem":197},"Charts","\u002Fplugins\u002Fdata\u002Fcharts","3.plugins\u002F5.data\u002F3.charts",{"title":199,"path":200,"stem":201},"Form Builder","\u002Fplugins\u002Fdata\u002Fform-builder","3.plugins\u002F5.data\u002F4.form-builder",{"title":203,"path":204,"stem":205},"Calendar","\u002Fplugins\u002Fdata\u002Fcalendar","3.plugins\u002F5.data\u002F5.calendar",{"title":207,"path":208,"stem":209},"Timer","\u002Fplugins\u002Fdata\u002Ftimer","3.plugins\u002F5.data\u002F6.timer",{"title":211,"icon":212,"path":213,"stem":214,"children":215,"page":26},"Collaboration","i-lucide-users","\u002Fplugins\u002Fcollaboration","3.plugins\u002F6.collaboration",[216,219,223,227,231],{"title":211,"path":217,"stem":218},"\u002Fplugins\u002Fcollaboration\u002Fcollaboration","3.plugins\u002F6.collaboration\u002F1.collaboration",{"title":220,"path":221,"stem":222},"Comments","\u002Fplugins\u002Fcollaboration\u002Fcomments","3.plugins\u002F6.collaboration\u002F2.comments",{"title":224,"path":225,"stem":226},"Mentions","\u002Fplugins\u002Fcollaboration\u002Fmentions","3.plugins\u002F6.collaboration\u002F3.mentions",{"title":228,"path":229,"stem":230},"Track Changes","\u002Fplugins\u002Fcollaboration\u002Ftrack-changes","3.plugins\u002F6.collaboration\u002F4.track-changes",{"title":232,"path":233,"stem":234},"History","\u002Fplugins\u002Fcollaboration\u002Fhistory","3.plugins\u002F6.collaboration\u002F5.history",{"title":236,"icon":237,"path":238,"stem":239,"children":240,"page":26},"Tools","i-lucide-wrench","\u002Fplugins\u002Ftools","3.plugins\u002F7.tools",[241,245,249,253,257,261],{"title":242,"path":243,"stem":244},"Export","\u002Fplugins\u002Ftools\u002Fexport","3.plugins\u002F7.tools\u002F1.export",{"title":246,"path":247,"stem":248},"Shortcuts","\u002Fplugins\u002Ftools\u002Fshortcuts","3.plugins\u002F7.tools\u002F2.shortcuts",{"title":250,"path":251,"stem":252},"Responsive","\u002Fplugins\u002Ftools\u002Fresponsive","3.plugins\u002F7.tools\u002F3.responsive",{"title":254,"path":255,"stem":256},"Language","\u002Fplugins\u002Ftools\u002Flanguage","3.plugins\u002F7.tools\u002F4.language",{"title":258,"path":259,"stem":260},"Spell Checker","\u002Fplugins\u002Ftools\u002Fspell-checker","3.plugins\u002F7.tools\u002F5.spell-checker",{"title":262,"path":263,"stem":264},"AI Assistant","\u002Fplugins\u002Ftools\u002Fai-assistant","3.plugins\u002F7.tools\u002F6.ai-assistant",{"title":266,"icon":267,"path":268,"stem":269,"children":270,"page":26},"Integrate","i-lucide-plug","\u002Fintegrate","4.integrate",[271,275,305,359,385,423,445,471,493,523,569],{"title":272,"path":273,"stem":274},"Integrate overview","\u002Fintegrate\u002Foverview","4.integrate\u002F01.overview",{"title":276,"icon":277,"path":278,"stem":279,"children":280,"page":26},"Basics","i-lucide-book-open","\u002Fintegrate\u002Fbasics","4.integrate\u002F02.basics",[281,285,289,293,297,301],{"title":282,"path":283,"stem":284},"Persistence","\u002Fintegrate\u002Fbasics\u002Fpersistence","4.integrate\u002F02.basics\u002F1.persistence",{"title":286,"path":287,"stem":288},"Host config","\u002Fintegrate\u002Fbasics\u002Fhost-config","4.integrate\u002F02.basics\u002F2.host-config",{"title":290,"path":291,"stem":292},"Server + Vite","\u002Fintegrate\u002Fbasics\u002Fserver-vite","4.integrate\u002F02.basics\u002F3.server-vite",{"title":294,"path":295,"stem":296},"Meta-frameworks (SSR \u002F CSR)","\u002Fintegrate\u002Fbasics\u002Fmeta-ssr","4.integrate\u002F02.basics\u002F4.meta-ssr",{"title":298,"path":299,"stem":300},"Native \u002F iframe bridge","\u002Fintegrate\u002Fbasics\u002Fnative-bridge","4.integrate\u002F02.basics\u002F5.native-bridge",{"title":302,"path":303,"stem":304},"Chrome & host","\u002Fintegrate\u002Fbasics\u002Fchrome-and-host","4.integrate\u002F02.basics\u002F6.chrome-and-host",{"title":306,"icon":307,"path":308,"stem":309,"children":310,"page":26},"Frontend","i-lucide-monitor","\u002Fintegrate\u002Ffrontend","4.integrate\u002F03.frontend",[311,315,319,323,327,331,335,339,343,347,351,355],{"title":312,"path":313,"stem":314},"React","\u002Fintegrate\u002Ffrontend\u002Freact","4.integrate\u002F03.frontend\u002F01.react",{"title":316,"path":317,"stem":318},"Vue 2","\u002Fintegrate\u002Ffrontend\u002Fvue2","4.integrate\u002F03.frontend\u002F02.vue2",{"title":320,"path":321,"stem":322},"Vue 3","\u002Fintegrate\u002Ffrontend\u002Fvue3","4.integrate\u002F03.frontend\u002F03.vue3",{"title":324,"path":325,"stem":326},"Angular","\u002Fintegrate\u002Ffrontend\u002Fangular","4.integrate\u002F03.frontend\u002F04.angular",{"title":328,"path":329,"stem":330},"Svelte","\u002Fintegrate\u002Ffrontend\u002Fsvelte","4.integrate\u002F03.frontend\u002F05.svelte",{"title":332,"path":333,"stem":334},"Solid.js","\u002Fintegrate\u002Ffrontend\u002Fsolid","4.integrate\u002F03.frontend\u002F06.solid",{"title":336,"path":337,"stem":338},"Preact","\u002Fintegrate\u002Ffrontend\u002Fpreact","4.integrate\u002F03.frontend\u002F07.preact",{"title":340,"path":341,"stem":342},"Lit","\u002Fintegrate\u002Ffrontend\u002Flit","4.integrate\u002F03.frontend\u002F08.lit",{"title":344,"path":345,"stem":346},"Qwik","\u002Fintegrate\u002Ffrontend\u002Fqwik","4.integrate\u002F03.frontend\u002F09.qwik",{"title":348,"path":349,"stem":350},"jQuery","\u002Fintegrate\u002Ffrontend\u002Fjquery","4.integrate\u002F03.frontend\u002F10.jquery",{"title":352,"path":353,"stem":354},"Alpine.js","\u002Fintegrate\u002Ffrontend\u002Falpine","4.integrate\u002F03.frontend\u002F11.alpine",{"title":356,"path":357,"stem":358},"Backbone.js","\u002Fintegrate\u002Ffrontend\u002Fbackbone","4.integrate\u002F03.frontend\u002F12.backbone",{"title":360,"icon":361,"path":362,"stem":363,"children":364,"page":26},"Meta-frameworks","i-lucide-layers","\u002Fintegrate\u002Fmeta-frameworks","4.integrate\u002F04.meta-frameworks",[365,369,373,377,381],{"title":366,"path":367,"stem":368},"Next.js","\u002Fintegrate\u002Fmeta-frameworks\u002Fnext","4.integrate\u002F04.meta-frameworks\u002F1.next",{"title":370,"path":371,"stem":372},"Nuxt 3 \u002F 4","\u002Fintegrate\u002Fmeta-frameworks\u002Fnuxt","4.integrate\u002F04.meta-frameworks\u002F2.nuxt",{"title":374,"path":375,"stem":376},"SvelteKit","\u002Fintegrate\u002Fmeta-frameworks\u002Fsveltekit","4.integrate\u002F04.meta-frameworks\u002F3.sveltekit",{"title":378,"path":379,"stem":380},"Remix","\u002Fintegrate\u002Fmeta-frameworks\u002Fremix","4.integrate\u002F04.meta-frameworks\u002F4.remix",{"title":382,"path":383,"stem":384},"Astro","\u002Fintegrate\u002Fmeta-frameworks\u002Fastro","4.integrate\u002F04.meta-frameworks\u002F5.astro",{"title":386,"icon":387,"path":388,"stem":389,"children":390,"page":26},"Node \u002F edge","i-simple-icons-nodedotjs","\u002Fintegrate\u002Fnode","4.integrate\u002F05.node",[391,395,399,403,407,411,415,419],{"title":392,"path":393,"stem":394},"Express.js","\u002Fintegrate\u002Fnode\u002Fexpress","4.integrate\u002F05.node\u002F1.express",{"title":396,"path":397,"stem":398},"NestJS","\u002Fintegrate\u002Fnode\u002Fnestjs","4.integrate\u002F05.node\u002F2.nestjs",{"title":400,"path":401,"stem":402},"Fastify","\u002Fintegrate\u002Fnode\u002Ffastify","4.integrate\u002F05.node\u002F3.fastify",{"title":404,"path":405,"stem":406},"Hono","\u002Fintegrate\u002Fnode\u002Fhono","4.integrate\u002F05.node\u002F4.hono",{"title":408,"path":409,"stem":410},"Koa","\u002Fintegrate\u002Fnode\u002Fkoa","4.integrate\u002F05.node\u002F5.koa",{"title":412,"path":413,"stem":414},"Bun","\u002Fintegrate\u002Fnode\u002Fbun","4.integrate\u002F05.node\u002F6.bun",{"title":416,"path":417,"stem":418},"Deno","\u002Fintegrate\u002Fnode\u002Fdeno","4.integrate\u002F05.node\u002F7.deno",{"title":420,"path":421,"stem":422},"AdonisJS","\u002Fintegrate\u002Fnode\u002Fadonis","4.integrate\u002F05.node\u002F8.adonis",{"title":424,"icon":425,"path":426,"stem":427,"children":428,"page":26},"Python","i-simple-icons-python","\u002Fintegrate\u002Fpython","4.integrate\u002F06.python",[429,433,437,441],{"title":430,"path":431,"stem":432},"FastAPI","\u002Fintegrate\u002Fpython\u002Ffastapi","4.integrate\u002F06.python\u002F1.fastapi",{"title":434,"path":435,"stem":436},"Django","\u002Fintegrate\u002Fpython\u002Fdjango","4.integrate\u002F06.python\u002F2.django",{"title":438,"path":439,"stem":440},"Python Flask","\u002Fintegrate\u002Fpython\u002Fpython-flask","4.integrate\u002F06.python\u002F3.python-flask",{"title":442,"path":443,"stem":444},"Litestar","\u002Fintegrate\u002Fpython\u002Flitestar","4.integrate\u002F06.python\u002F4.litestar",{"title":446,"icon":447,"path":448,"stem":449,"children":450,"page":26},"PHP","i-simple-icons-php","\u002Fintegrate\u002Fphp","4.integrate\u002F07.php",[451,455,459,463,467],{"title":452,"path":453,"stem":454},"Laravel","\u002Fintegrate\u002Fphp\u002Flaravel","4.integrate\u002F07.php\u002F1.laravel",{"title":456,"path":457,"stem":458},"Symfony","\u002Fintegrate\u002Fphp\u002Fsymfony","4.integrate\u002F07.php\u002F2.symfony",{"title":460,"path":461,"stem":462},"Slim","\u002Fintegrate\u002Fphp\u002Fslim","4.integrate\u002F07.php\u002F3.slim",{"title":464,"path":465,"stem":466},"CakePHP","\u002Fintegrate\u002Fphp\u002Fcakephp","4.integrate\u002F07.php\u002F4.cakephp",{"title":468,"path":469,"stem":470},"CodeIgniter","\u002Fintegrate\u002Fphp\u002Fcodeigniter","4.integrate\u002F07.php\u002F5.codeigniter",{"title":472,"icon":473,"path":474,"stem":475,"children":476,"page":26},"Go","i-simple-icons-go","\u002Fintegrate\u002Fgo","4.integrate\u002F08.go",[477,481,485,489],{"title":478,"path":479,"stem":480},"Go Gin","\u002Fintegrate\u002Fgo\u002Fgo-gin","4.integrate\u002F08.go\u002F1.go-gin",{"title":482,"path":483,"stem":484},"Go Echo","\u002Fintegrate\u002Fgo\u002Fgo-echo","4.integrate\u002F08.go\u002F2.go-echo",{"title":486,"path":487,"stem":488},"Go Fiber","\u002Fintegrate\u002Fgo\u002Fgo-fiber","4.integrate\u002F08.go\u002F3.go-fiber",{"title":490,"path":491,"stem":492},"Go Chi","\u002Fintegrate\u002Fgo\u002Fgo-chi","4.integrate\u002F08.go\u002F4.go-chi",{"title":494,"icon":495,"path":496,"stem":497,"children":498,"page":26},"Rust","i-simple-icons-rust","\u002Fintegrate\u002Frust","4.integrate\u002F09.rust",[499,503,507,511,515,519],{"title":500,"path":501,"stem":502},"Rust Axum","\u002Fintegrate\u002Frust\u002Frust-axum","4.integrate\u002F09.rust\u002F1.rust-axum",{"title":504,"path":505,"stem":506},"Rust Actix-web","\u002Fintegrate\u002Frust\u002Frust-actix","4.integrate\u002F09.rust\u002F2.rust-actix",{"title":508,"path":509,"stem":510},"Rust Rocket","\u002Fintegrate\u002Frust\u002Frust-rocket","4.integrate\u002F09.rust\u002F3.rust-rocket",{"title":512,"path":513,"stem":514},"Rust Warp","\u002Fintegrate\u002Frust\u002Frust-warp","4.integrate\u002F09.rust\u002F4.rust-warp",{"title":516,"path":517,"stem":518},"Rust Poem","\u002Fintegrate\u002Frust\u002Frust-poem","4.integrate\u002F09.rust\u002F5.rust-poem",{"title":520,"path":521,"stem":522},"Rust Loco","\u002Fintegrate\u002Frust\u002Frust-loco","4.integrate\u002F09.rust\u002F6.rust-loco",{"title":524,"icon":525,"path":526,"stem":527,"children":528,"page":26},"JVM \u002F .NET \u002F other","i-lucide-coffee","\u002Fintegrate\u002Fjvm-dotnet","4.integrate\u002F10.jvm-dotnet",[529,533,537,541,545,549,553,557,561,565],{"title":530,"path":531,"stem":532},"Spring Boot","\u002Fintegrate\u002Fjvm-dotnet\u002Fspring","4.integrate\u002F10.jvm-dotnet\u002F01.spring",{"title":534,"path":535,"stem":536},"Quarkus","\u002Fintegrate\u002Fjvm-dotnet\u002Fquarkus","4.integrate\u002F10.jvm-dotnet\u002F02.quarkus",{"title":538,"path":539,"stem":540},"Micronaut","\u002Fintegrate\u002Fjvm-dotnet\u002Fmicronaut","4.integrate\u002F10.jvm-dotnet\u002F03.micronaut",{"title":542,"path":543,"stem":544},"Kotlin Spring Boot","\u002Fintegrate\u002Fjvm-dotnet\u002Fkotlin-spring","4.integrate\u002F10.jvm-dotnet\u002F04.kotlin-spring",{"title":546,"path":547,"stem":548},"Ktor","\u002Fintegrate\u002Fjvm-dotnet\u002Fktor","4.integrate\u002F10.jvm-dotnet\u002F05.ktor",{"title":550,"path":551,"stem":552},"ASP.NET Core","\u002Fintegrate\u002Fjvm-dotnet\u002Faspnet-core","4.integrate\u002F10.jvm-dotnet\u002F06.aspnet-core",{"title":554,"path":555,"stem":556},"Blazor","\u002Fintegrate\u002Fjvm-dotnet\u002Fblazor","4.integrate\u002F10.jvm-dotnet\u002F07.blazor",{"title":558,"path":559,"stem":560},"Phoenix","\u002Fintegrate\u002Fjvm-dotnet\u002Fphoenix","4.integrate\u002F10.jvm-dotnet\u002F08.phoenix",{"title":562,"path":563,"stem":564},"Ruby on Rails","\u002Fintegrate\u002Fjvm-dotnet\u002Frails","4.integrate\u002F10.jvm-dotnet\u002F09.rails",{"title":566,"path":567,"stem":568},"HTMX host","\u002Fintegrate\u002Fjvm-dotnet\u002Fhtmx","4.integrate\u002F10.jvm-dotnet\u002F10.htmx",{"title":570,"icon":571,"path":572,"stem":573,"children":574,"page":26},"Desktop & mobile hosts","i-lucide-smartphone","\u002Fintegrate\u002Fhosts","4.integrate\u002F11.hosts",[575,579,583,587,591],{"title":576,"path":577,"stem":578},"Flutter","\u002Fintegrate\u002Fhosts\u002Fflutter","4.integrate\u002F11.hosts\u002F1.flutter",{"title":580,"path":581,"stem":582},"Electron","\u002Fintegrate\u002Fhosts\u002Felectron","4.integrate\u002F11.hosts\u002F2.electron",{"title":584,"path":585,"stem":586},"Tauri","\u002Fintegrate\u002Fhosts\u002Ftauri","4.integrate\u002F11.hosts\u002F3.tauri",{"title":588,"path":589,"stem":590},"Wails","\u002Fintegrate\u002Fhosts\u002Fwails","4.integrate\u002F11.hosts\u002F4.wails",{"title":592,"path":593,"stem":594},"Capacitor","\u002Fintegrate\u002Fhosts\u002Fcapacitor","4.integrate\u002F11.hosts\u002F5.capacitor",{"title":596,"icon":597,"path":598,"stem":599,"children":600,"page":26},"Architecture","i-lucide-cpu","\u002Farchitecture","5.architecture",[601,605,609,613,617,621],{"title":602,"path":603,"stem":604},"Document model","\u002Farchitecture\u002Fdocument-model","5.architecture\u002F1.document-model",{"title":606,"path":607,"stem":608},"SDK reference","\u002Farchitecture\u002Fsdk","5.architecture\u002F2.sdk",{"title":610,"path":611,"stem":612},"View runtime","\u002Farchitecture\u002Fview","5.architecture\u002F3.view",{"title":614,"path":615,"stem":616},"Authoring plugins","\u002Farchitecture\u002Fauthoring-plugins","5.architecture\u002F4.authoring-plugins",{"title":618,"path":619,"stem":620},"Mermaid","\u002Farchitecture\u002Fmermaid","5.architecture\u002F5.mermaid",{"title":622,"path":623,"stem":624},"Publishing packages","\u002Farchitecture\u002Fpublishing-packages","5.architecture\u002F6.publishing-packages",{"title":626,"path":627,"stem":628},"Changelog","\u002Fchangelog","9.changelog",{"id":630,"title":23,"body":631,"description":1882,"extension":1883,"links":1884,"meta":1885,"navigation":1029,"path":24,"seo":1886,"stem":25,"__hash__":1887},"docs\u002F1.getting-started\u002F4.migration-v1-to-v2.md",{"type":632,"value":633,"toc":1871},"minimark",[634,638,643,770,774,781,875,907,911,943,1107,1114,1117,1560,1563,1610,1614,1684,1687,1773,1777,1822,1826,1836,1840,1867],[635,636,637],"p",{},"See this migration guide for the v1 → v2 delta.",[639,640,642],"h2",{"id":641},"quick-map","Quick map",[644,645,646,659],"table",{},[647,648,649],"thead",{},[650,651,652,656],"tr",{},[653,654,655],"th",{},"v1",[653,657,658],{},"v2",[660,661,662,676,690,709,729,744,762],"tbody",{},[650,663,664,671],{},[665,666,667],"td",{},[668,669,670],"code",{},"HTMLEditor",[665,672,673],{},[668,674,675],{},"Editor",[650,677,678,684],{},[665,679,680,683],{},[668,681,682],{},"new ToolbarPlugin()"," class",[665,685,686,689],{},[668,687,688],{},"ToolbarPlugin()"," factory (mark buttons only)",[650,691,692,695],{},[665,693,694],{},"Plugin owns toolbar DOM",[665,696,697,698,701,702,705,706],{},"Core ",[668,699,700],{},"ToolbarPanel"," via ",[668,703,704],{},"ctx.toolbar.add"," \u002F ",[668,707,708],{},"defineMenu",[650,710,711,720],{},[665,712,713,705,716,719],{},[668,714,715],{},"PopupManager",[668,717,718],{},"createElement"," in plugins",[665,721,722,705,725,728],{},[668,723,724],{},"ctx.popup",[668,726,727],{},"ctx.menu"," \u002F ViewSpec + portals",[650,730,731,734],{},[665,732,733],{},"HTML as source of truth",[665,735,736,737,705,740,743],{},"JSON: ",[668,738,739],{},"getJSON",[668,741,742],{},"setJSON"," (HTML is a boundary)",[650,745,746,752],{},[665,747,748,751],{},[668,749,750],{},"plugins\u002FFooPlugin\u002Fstyle.css"," CDN",[665,753,754,757,758,761],{},[668,755,756],{},"on-codemerge\u002Findex.css"," + ",[668,759,760],{},"public.css"," (no per-plugin CSS export)",[650,763,764,767],{},[665,765,766],{},"Jest",[665,768,769],{},"Vitest (+ Playwright \u002F untestutils for e2e)",[639,771,773],{"id":772},"product-surfaces-v2","Product surfaces (v2)",[635,775,776,777,780],{},"Eight Editor entries share kernel + SDK — pick by document shape in ",[778,779,15],"a",{"href":16},":",[644,782,783,793],{},[647,784,785],{},[650,786,787,790],{},[653,788,789],{},"Package",[653,791,792],{},"Role",[660,794,795,805,815,825,835,845,855,865],{},[650,796,797,802],{},[665,798,799],{},[668,800,801],{},"on-codemerge",[665,803,804],{},"WYSIWYG prose",[650,806,807,812],{},[665,808,809],{},[668,810,811],{},"on-codemerge\u002Fjson",[665,813,814],{},"JSON Tree + Raw",[650,816,817,822],{},[665,818,819],{},[668,820,821],{},"on-codemerge\u002Fmarkdown",[665,823,824],{},"Dual-pane Markdown",[650,826,827,832],{},[665,828,829],{},[668,830,831],{},"on-codemerge\u002Fcode",[665,833,834],{},"Source buffer",[650,836,837,842],{},[665,838,839],{},[668,840,841],{},"on-codemerge\u002Fforms",[665,843,844],{},"Form studio",[650,846,847,852],{},[665,848,849],{},[668,850,851],{},"on-codemerge\u002Fcharts",[665,853,854],{},"Chart studio",[650,856,857,862],{},[665,858,859],{},[668,860,861],{},"on-codemerge\u002Fcalendar",[665,863,864],{},"Calendar studio",[650,866,867,872],{},[665,868,869],{},[668,870,871],{},"on-codemerge\u002Ftables",[665,873,874],{},"Grid JSON studio",[635,876,877,878,881,882,881,885,888,889,893,894,896,897,881,900,881,903,906],{},"Scoped packages also published: ",[668,879,880],{},"@codemerge\u002Fkernel",", ",[668,883,884],{},"@codemerge\u002Fview",[668,886,887],{},"@codemerge\u002Fmermaid"," (Mermaid ",[890,891,892],"strong",{},"subset"," — ",[778,895,618],{"href":619},"), ",[668,898,899],{},"@codemerge\u002Fsdk",[668,901,902],{},"@codemerge\u002Fhunspell",[668,904,905],{},"@codemerge\u002Fcollaboration-server",".",[639,908,910],{"id":909},"install","Install",[912,913,918],"pre",{"className":914,"code":915,"language":916,"meta":917,"style":917},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add on-codemerge\n# workspace packages are re-exported from the main package\n","bash","",[668,919,920,936],{"__ignoreMap":917},[921,922,925,929,933],"span",{"class":923,"line":924},"line",1,[921,926,928],{"class":927},"sBMFI","pnpm",[921,930,932],{"class":931},"sfazB"," add",[921,934,935],{"class":931}," on-codemerge\n",[921,937,939],{"class":923,"line":938},2,[921,940,942],{"class":941},"sHwdD","# workspace packages are re-exported from the main package\n",[912,944,948],{"className":945,"code":946,"language":947,"meta":917,"style":917},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import 'on-codemerge\u002Findex.css';\nimport 'on-codemerge\u002Fpublic.css';\nimport { Editor, createDefaultPlugins, insertText } from 'on-codemerge';\n\u002F\u002F Individual plugins: import { TablePlugin } from 'on-codemerge\u002Fplugins'\n\nconst editor = new Editor(host, { plugins: createDefaultPlugins() });\neditor.run(insertText('Hello'));\n","ts",[668,949,950,968,981,1018,1024,1031,1076],{"__ignoreMap":917},[921,951,952,956,960,962,965],{"class":923,"line":924},[921,953,955],{"class":954},"s7zQu","import",[921,957,959],{"class":958},"sMK4o"," '",[921,961,756],{"class":931},[921,963,964],{"class":958},"'",[921,966,967],{"class":958},";\n",[921,969,970,972,974,977,979],{"class":923,"line":938},[921,971,955],{"class":954},[921,973,959],{"class":958},[921,975,976],{"class":931},"on-codemerge\u002Fpublic.css",[921,978,964],{"class":958},[921,980,967],{"class":958},[921,982,984,986,989,993,996,999,1001,1004,1007,1010,1012,1014,1016],{"class":923,"line":983},3,[921,985,955],{"class":954},[921,987,988],{"class":958}," {",[921,990,992],{"class":991},"sTEyZ"," Editor",[921,994,995],{"class":958},",",[921,997,998],{"class":991}," createDefaultPlugins",[921,1000,995],{"class":958},[921,1002,1003],{"class":991}," insertText",[921,1005,1006],{"class":958}," }",[921,1008,1009],{"class":954}," from",[921,1011,959],{"class":958},[921,1013,801],{"class":931},[921,1015,964],{"class":958},[921,1017,967],{"class":958},[921,1019,1021],{"class":923,"line":1020},4,[921,1022,1023],{"class":941},"\u002F\u002F Individual plugins: import { TablePlugin } from 'on-codemerge\u002Fplugins'\n",[921,1025,1027],{"class":923,"line":1026},5,[921,1028,1030],{"emptyLinePlaceholder":1029},true,"\n",[921,1032,1034,1038,1041,1044,1047,1050,1053,1055,1057,1061,1063,1065,1068,1071,1074],{"class":923,"line":1033},6,[921,1035,1037],{"class":1036},"spNyl","const",[921,1039,1040],{"class":991}," editor ",[921,1042,1043],{"class":958},"=",[921,1045,1046],{"class":958}," new",[921,1048,992],{"class":1049},"s2Zo4",[921,1051,1052],{"class":991},"(host",[921,1054,995],{"class":958},[921,1056,988],{"class":958},[921,1058,1060],{"class":1059},"swJcz"," plugins",[921,1062,780],{"class":958},[921,1064,998],{"class":1049},[921,1066,1067],{"class":991},"() ",[921,1069,1070],{"class":958},"}",[921,1072,1073],{"class":991},")",[921,1075,967],{"class":958},[921,1077,1079,1082,1084,1087,1090,1093,1095,1097,1100,1102,1105],{"class":923,"line":1078},7,[921,1080,1081],{"class":991},"editor",[921,1083,906],{"class":958},[921,1085,1086],{"class":1049},"run",[921,1088,1089],{"class":991},"(",[921,1091,1092],{"class":1049},"insertText",[921,1094,1089],{"class":991},[921,1096,964],{"class":958},[921,1098,1099],{"class":931},"Hello",[921,1101,964],{"class":958},[921,1103,1104],{"class":991},"))",[921,1106,967],{"class":958},[635,1108,1109,1110,1113],{},"Use ",[668,1111,1112],{},"createCorePlugins()"," for a lean bar, or pass an explicit factory list.",[639,1115,61],{"id":1116},"plugins",[912,1118,1120],{"className":945,"code":1119,"language":947,"meta":917,"style":917},"import { definePlugin, core, insertAtomAfter } from 'on-codemerge\u002Fsdk';\n\u002F\u002F or from 'on-codemerge'\n\nexport function MyPlugin() {\n  return definePlugin({\n    name: 'my-plugin',\n    commands: {\n      insertThing: insertAtomAfter('myAtom', {}),\n    },\n    setup(ctx) {\n      \u002F\u002F Top-level bar\n      ctx.toolbar.add({\n        id: 'my-bar',\n        label: 'My',\n        group: 'format',\n        order: 20,\n        onClick: () => ctx.editor.command('insertThing'),\n      });\n\n      \u002F\u002F Or into a named overflow menu (Insert \u002F Review \u002F Tools)\n      ctx.toolbar.add({\n        id: 'my-insert',\n        label: 'Thing',\n        menu: 'insert',\n        order: 80,\n        onClick: () => ctx.editor.command('insertThing'),\n      });\n    },\n  });\n}\n",[668,1121,1122,1154,1159,1163,1180,1192,1209,1218,1246,1252,1268,1274,1294,1311,1328,1345,1359,1398,1408,1413,1419,1436,1452,1468,1485,1497,1530,1539,1544,1554],{"__ignoreMap":917},[921,1123,1124,1126,1128,1131,1133,1136,1138,1141,1143,1145,1147,1150,1152],{"class":923,"line":924},[921,1125,955],{"class":954},[921,1127,988],{"class":958},[921,1129,1130],{"class":991}," definePlugin",[921,1132,995],{"class":958},[921,1134,1135],{"class":991}," core",[921,1137,995],{"class":958},[921,1139,1140],{"class":991}," insertAtomAfter",[921,1142,1006],{"class":958},[921,1144,1009],{"class":954},[921,1146,959],{"class":958},[921,1148,1149],{"class":931},"on-codemerge\u002Fsdk",[921,1151,964],{"class":958},[921,1153,967],{"class":958},[921,1155,1156],{"class":923,"line":938},[921,1157,1158],{"class":941},"\u002F\u002F or from 'on-codemerge'\n",[921,1160,1161],{"class":923,"line":983},[921,1162,1030],{"emptyLinePlaceholder":1029},[921,1164,1165,1168,1171,1174,1177],{"class":923,"line":1020},[921,1166,1167],{"class":954},"export",[921,1169,1170],{"class":1036}," function",[921,1172,1173],{"class":1049}," MyPlugin",[921,1175,1176],{"class":958},"()",[921,1178,1179],{"class":958}," {\n",[921,1181,1182,1185,1187,1189],{"class":923,"line":1026},[921,1183,1184],{"class":954},"  return",[921,1186,1130],{"class":1049},[921,1188,1089],{"class":1059},[921,1190,1191],{"class":958},"{\n",[921,1193,1194,1197,1199,1201,1204,1206],{"class":923,"line":1033},[921,1195,1196],{"class":1059},"    name",[921,1198,780],{"class":958},[921,1200,959],{"class":958},[921,1202,1203],{"class":931},"my-plugin",[921,1205,964],{"class":958},[921,1207,1208],{"class":958},",\n",[921,1210,1211,1214,1216],{"class":923,"line":1078},[921,1212,1213],{"class":1059},"    commands",[921,1215,780],{"class":958},[921,1217,1179],{"class":958},[921,1219,1221,1224,1226,1228,1230,1232,1235,1237,1239,1242,1244],{"class":923,"line":1220},8,[921,1222,1223],{"class":1059},"      insertThing",[921,1225,780],{"class":958},[921,1227,1140],{"class":1049},[921,1229,1089],{"class":1059},[921,1231,964],{"class":958},[921,1233,1234],{"class":931},"myAtom",[921,1236,964],{"class":958},[921,1238,995],{"class":958},[921,1240,1241],{"class":958}," {}",[921,1243,1073],{"class":1059},[921,1245,1208],{"class":958},[921,1247,1249],{"class":923,"line":1248},9,[921,1250,1251],{"class":958},"    },\n",[921,1253,1255,1258,1260,1264,1266],{"class":923,"line":1254},10,[921,1256,1257],{"class":1059},"    setup",[921,1259,1089],{"class":958},[921,1261,1263],{"class":1262},"sHdIc","ctx",[921,1265,1073],{"class":958},[921,1267,1179],{"class":958},[921,1269,1271],{"class":923,"line":1270},11,[921,1272,1273],{"class":941},"      \u002F\u002F Top-level bar\n",[921,1275,1277,1280,1282,1285,1287,1290,1292],{"class":923,"line":1276},12,[921,1278,1279],{"class":991},"      ctx",[921,1281,906],{"class":958},[921,1283,1284],{"class":991},"toolbar",[921,1286,906],{"class":958},[921,1288,1289],{"class":1049},"add",[921,1291,1089],{"class":1059},[921,1293,1191],{"class":958},[921,1295,1297,1300,1302,1304,1307,1309],{"class":923,"line":1296},13,[921,1298,1299],{"class":1059},"        id",[921,1301,780],{"class":958},[921,1303,959],{"class":958},[921,1305,1306],{"class":931},"my-bar",[921,1308,964],{"class":958},[921,1310,1208],{"class":958},[921,1312,1314,1317,1319,1321,1324,1326],{"class":923,"line":1313},14,[921,1315,1316],{"class":1059},"        label",[921,1318,780],{"class":958},[921,1320,959],{"class":958},[921,1322,1323],{"class":931},"My",[921,1325,964],{"class":958},[921,1327,1208],{"class":958},[921,1329,1331,1334,1336,1338,1341,1343],{"class":923,"line":1330},15,[921,1332,1333],{"class":1059},"        group",[921,1335,780],{"class":958},[921,1337,959],{"class":958},[921,1339,1340],{"class":931},"format",[921,1342,964],{"class":958},[921,1344,1208],{"class":958},[921,1346,1348,1351,1353,1357],{"class":923,"line":1347},16,[921,1349,1350],{"class":1059},"        order",[921,1352,780],{"class":958},[921,1354,1356],{"class":1355},"sbssI"," 20",[921,1358,1208],{"class":958},[921,1360,1362,1365,1367,1370,1373,1376,1378,1380,1382,1385,1387,1389,1392,1394,1396],{"class":923,"line":1361},17,[921,1363,1364],{"class":1049},"        onClick",[921,1366,780],{"class":958},[921,1368,1369],{"class":958}," ()",[921,1371,1372],{"class":1036}," =>",[921,1374,1375],{"class":991}," ctx",[921,1377,906],{"class":958},[921,1379,1081],{"class":991},[921,1381,906],{"class":958},[921,1383,1384],{"class":1049},"command",[921,1386,1089],{"class":1059},[921,1388,964],{"class":958},[921,1390,1391],{"class":931},"insertThing",[921,1393,964],{"class":958},[921,1395,1073],{"class":1059},[921,1397,1208],{"class":958},[921,1399,1401,1404,1406],{"class":923,"line":1400},18,[921,1402,1403],{"class":958},"      }",[921,1405,1073],{"class":1059},[921,1407,967],{"class":958},[921,1409,1411],{"class":923,"line":1410},19,[921,1412,1030],{"emptyLinePlaceholder":1029},[921,1414,1416],{"class":923,"line":1415},20,[921,1417,1418],{"class":941},"      \u002F\u002F Or into a named overflow menu (Insert \u002F Review \u002F Tools)\n",[921,1420,1422,1424,1426,1428,1430,1432,1434],{"class":923,"line":1421},21,[921,1423,1279],{"class":991},[921,1425,906],{"class":958},[921,1427,1284],{"class":991},[921,1429,906],{"class":958},[921,1431,1289],{"class":1049},[921,1433,1089],{"class":1059},[921,1435,1191],{"class":958},[921,1437,1439,1441,1443,1445,1448,1450],{"class":923,"line":1438},22,[921,1440,1299],{"class":1059},[921,1442,780],{"class":958},[921,1444,959],{"class":958},[921,1446,1447],{"class":931},"my-insert",[921,1449,964],{"class":958},[921,1451,1208],{"class":958},[921,1453,1455,1457,1459,1461,1464,1466],{"class":923,"line":1454},23,[921,1456,1316],{"class":1059},[921,1458,780],{"class":958},[921,1460,959],{"class":958},[921,1462,1463],{"class":931},"Thing",[921,1465,964],{"class":958},[921,1467,1208],{"class":958},[921,1469,1471,1474,1476,1478,1481,1483],{"class":923,"line":1470},24,[921,1472,1473],{"class":1059},"        menu",[921,1475,780],{"class":958},[921,1477,959],{"class":958},[921,1479,1480],{"class":931},"insert",[921,1482,964],{"class":958},[921,1484,1208],{"class":958},[921,1486,1488,1490,1492,1495],{"class":923,"line":1487},25,[921,1489,1350],{"class":1059},[921,1491,780],{"class":958},[921,1493,1494],{"class":1355}," 80",[921,1496,1208],{"class":958},[921,1498,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520,1522,1524,1526,1528],{"class":923,"line":1499},26,[921,1501,1364],{"class":1049},[921,1503,780],{"class":958},[921,1505,1369],{"class":958},[921,1507,1372],{"class":1036},[921,1509,1375],{"class":991},[921,1511,906],{"class":958},[921,1513,1081],{"class":991},[921,1515,906],{"class":958},[921,1517,1384],{"class":1049},[921,1519,1089],{"class":1059},[921,1521,964],{"class":958},[921,1523,1391],{"class":931},[921,1525,964],{"class":958},[921,1527,1073],{"class":1059},[921,1529,1208],{"class":958},[921,1531,1533,1535,1537],{"class":923,"line":1532},27,[921,1534,1403],{"class":958},[921,1536,1073],{"class":1059},[921,1538,967],{"class":958},[921,1540,1542],{"class":923,"line":1541},28,[921,1543,1251],{"class":958},[921,1545,1547,1550,1552],{"class":923,"line":1546},29,[921,1548,1549],{"class":958},"  }",[921,1551,1073],{"class":1059},[921,1553,967],{"class":958},[921,1555,1557],{"class":923,"line":1556},30,[921,1558,1559],{"class":958},"}\n",[635,1561,1562],{},"Rules:",[1564,1565,1566,1580,1594],"ol",{},[1567,1568,1569,1570,1572,1573,1575,1576,1579],"li",{},"Import UI\u002Fhelpers from ",[668,1571,1149],{}," (or ",[668,1574,801],{},") — not ",[668,1577,1578],{},"on-codemerge\u002Fkernel"," from a plugin.",[1567,1581,1582,1583,705,1586,1589,1590,1593],{},"No ",[668,1584,1585],{},"document.createElement",[668,1587,1588],{},".innerHTML ="," outside SDK ",[668,1591,1592],{},"foreign(...)"," \u002F widgets.",[1567,1595,1596,1597,705,1600,705,1603,1606,1607,906],{},"Overlays go through portals (",[668,1598,1599],{},"popup",[668,1601,1602],{},"menu",[668,1604,1605],{},"notify",") — see ",[778,1608,1609],{"href":615},"Plugin guide",[639,1611,1613],{"id":1612},"toolbar-chrome-vs-toolbarplugin","Toolbar chrome vs ToolbarPlugin",[1615,1616,1617,1628,1635,1658,1669],"ul",{},[1567,1618,1619,1622,1623,1625,1626,906],{},[890,1620,1621],{},"Chrome"," (the sticky bar) is always created by ",[668,1624,675],{}," → SDK ",[668,1627,700],{},[1567,1629,1630,1634],{},[890,1631,1632],{},[668,1633,688],{}," only registers Bold \u002F Italic \u002F Underline \u002F Strike.",[1567,1636,1637,1638,1646,1647,1650,1651,705,1654,1657],{},"Overflow menus come from ",[890,1639,1640,1642,1643],{},[668,1641,675],{}," ",[668,1644,1645],{},"toolbar.menus"," (omit → Insert \u002F Review \u002F Tools; ",[668,1648,1649],{},"{ menus: [] }"," → flat bar). Plugins place items with ",[668,1652,1653],{},"menu: '…'",[668,1655,1656],{},"PluginToolbarOpts","; missing menu id → bar button.",[1567,1659,1660,1661,1664,1665,1668],{},"Separators come from toolbar ",[668,1662,1663],{},"group"," boundaries (no ",[668,1666,1667],{},"ToolbarDividerPlugin",").",[1567,1670,1671,1672,1642,1675,705,1678,1681,1682,906],{},"There is ",[890,1673,1674],{},"no",[668,1676,1677],{},"ToolbarMenusPlugin",[668,1679,1680],{},"flattenOverflowMenus"," — removed in favor of declarative ",[668,1683,1645],{},[639,1685,282],{"id":1686},"persistence",[912,1688,1690],{"className":945,"code":1689,"language":947,"meta":917,"style":917},"\u002F\u002F Prefer JSON\nconst json = editor.getJSON();\neditor.setJSON(json);\n\n\u002F\u002F HTML when integrating with legacy CMS\nconst html = editor.getHTML();\neditor.setHTML(html);\n",[668,1691,1692,1697,1717,1730,1734,1739,1759],{"__ignoreMap":917},[921,1693,1694],{"class":923,"line":924},[921,1695,1696],{"class":941},"\u002F\u002F Prefer JSON\n",[921,1698,1699,1701,1704,1706,1709,1711,1713,1715],{"class":923,"line":938},[921,1700,1037],{"class":1036},[921,1702,1703],{"class":991}," json ",[921,1705,1043],{"class":958},[921,1707,1708],{"class":991}," editor",[921,1710,906],{"class":958},[921,1712,739],{"class":1049},[921,1714,1176],{"class":991},[921,1716,967],{"class":958},[921,1718,1719,1721,1723,1725,1728],{"class":923,"line":983},[921,1720,1081],{"class":991},[921,1722,906],{"class":958},[921,1724,742],{"class":1049},[921,1726,1727],{"class":991},"(json)",[921,1729,967],{"class":958},[921,1731,1732],{"class":923,"line":1020},[921,1733,1030],{"emptyLinePlaceholder":1029},[921,1735,1736],{"class":923,"line":1026},[921,1737,1738],{"class":941},"\u002F\u002F HTML when integrating with legacy CMS\n",[921,1740,1741,1743,1746,1748,1750,1752,1755,1757],{"class":923,"line":1033},[921,1742,1037],{"class":1036},[921,1744,1745],{"class":991}," html ",[921,1747,1043],{"class":958},[921,1749,1708],{"class":991},[921,1751,906],{"class":958},[921,1753,1754],{"class":1049},"getHTML",[921,1756,1176],{"class":991},[921,1758,967],{"class":958},[921,1760,1761,1763,1765,1768,1771],{"class":923,"line":1078},[921,1762,1081],{"class":991},[921,1764,906],{"class":958},[921,1766,1767],{"class":1049},"setHTML",[921,1769,1770],{"class":991},"(html)",[921,1772,967],{"class":958},[639,1774,1776],{"id":1775},"removed-renamed-apis","Removed \u002F renamed APIs",[1615,1778,1779,1794,1806,1814],{},[1567,1780,1781,705,1784,705,1787,1790,1791,906],{},[668,1782,1783],{},"editor.showToolbar",[668,1785,1786],{},"hideToolbar",[668,1788,1789],{},"addToolbarTool"," — gone; use ",[668,1792,1793],{},"editor.toolbar.add",[1567,1795,1796,705,1799,1802,1803,1805],{},[668,1797,1798],{},"editor.remove(plugin)",[668,1800,1801],{},"getPlugins()"," — not on ",[668,1804,675],{},"; dispose via plugin scope \u002F recreate editor.",[1567,1807,1808,1811,1812,906],{},[668,1809,1810],{},"createToolbarButton"," — deleted; use ",[668,1813,704],{},[1567,1815,1816,1817,705,1820,906],{},"Per-plugin CSS package exports — use bundled ",[668,1818,1819],{},"index.css",[668,1821,760],{},[639,1823,1825],{"id":1824},"testing","Testing",[635,1827,1828,1829,1832,1833,1668],{},"Unit: Vitest (",[668,1830,1831],{},"pnpm test:unit","). Browser: untestutils + Playwright (",[668,1834,1835],{},"pnpm test:e2e",[639,1837,1839],{"id":1838},"further-reading","Further reading",[1615,1841,1842,1846,1850,1854,1859,1863],{},[1567,1843,1844],{},[778,1845,15],{"href":16},[1567,1847,1848],{},[778,1849,19],{"href":20},[1567,1851,1852],{},[778,1853,1609],{"href":615},[1567,1855,1856],{},[778,1857,1858],{"href":603},"Core model",[1567,1860,1861],{},[778,1862,618],{"href":619},[1567,1864,1865],{},[778,1866,67],{"href":68},[1868,1869,1870],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":917,"searchDepth":938,"depth":983,"links":1872},[1873,1874,1875,1876,1877,1878,1879,1880,1881],{"id":641,"depth":938,"text":642},{"id":772,"depth":938,"text":773},{"id":909,"depth":938,"text":910},{"id":1116,"depth":938,"text":61},{"id":1612,"depth":938,"text":1613},{"id":1686,"depth":938,"text":282},{"id":1775,"depth":938,"text":1776},{"id":1824,"depth":938,"text":1825},{"id":1838,"depth":938,"text":1839},"on-codemerge 2.x rewrites the editor around a virtual JSON document (on-codemerge\u002Fkernel), an SDK surface (on-codemerge\u002Fsdk), and plugins that never own DOM.","md",null,{},{"title":23,"description":1882},"Q2tV6XKFAzZHEefFy5GwtlUs7UJDcIyrbNC2tmq2yA4",[1889,1890],{"title":19,"path":20,"stem":21,"description":917,"children":-1},{"title":33,"path":34,"stem":35,"description":1891,"children":-1},"Tree + Raw editor for plain JSON, published as on-codemerge\u002Fjson. Thin app entry uses a shell ViewPort and JsonPlugin({ surface: 'workspace' }), which mounts the Tree\u002FRaw UI into contentTarget. Plain JSON interchange via getText \u002F setText.",1794129103207]