[{"data":1,"prerenderedAt":1861},["ShallowReactive",2],{"navigation":3,"\u002Feditors\u002Fcode":629,"\u002Feditors\u002Fcode-surround":1856},[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":41,"body":631,"description":1850,"extension":1851,"links":1852,"meta":1853,"navigation":721,"path":42,"seo":1854,"stem":43,"__hash__":1855},"docs\u002F2.editors\u002F3.code.md",{"type":632,"value":633,"toc":1838},"minimark",[634,637,642,671,948,966,971,1072,1102,1106,1132,1136,1231,1253,1257,1268,1318,1321,1325,1338,1345,1360,1612,1616,1769,1773,1799,1803,1834],[635,636],"code-editor-component",{},[638,639,641],"h2",{"id":640},"install","Install",[643,644,649],"pre",{"className":645,"code":646,"language":647,"meta":648,"style":648},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install --save on-codemerge\n","bash","",[650,651,652],"code",{"__ignoreMap":648},[653,654,657,661,665,668],"span",{"class":655,"line":656},"line",1,[653,658,660],{"class":659},"sBMFI","npm",[653,662,664],{"class":663},"sfazB"," install",[653,666,667],{"class":663}," --save",[653,669,670],{"class":663}," on-codemerge\n",[643,672,676],{"className":673,"code":674,"language":675,"meta":648,"style":648},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { Editor, createDefaultPlugins } from 'on-codemerge\u002Fcode';\n\nconst host = document.getElementById('code-editor')!;\nconst editor = new Editor(host, {\n  chrome: 'bar',\n  plugins: createDefaultPlugins(), \u002F\u002F CodeBlockPlugin({ surface: 'workspace' })\n});\n\neditor.on('docChanged', () => {\n  console.log(editor.getText());\n});\n\neditor.setText('const x = 1;\\n');\neditor.destroy();\n","ts",[650,677,678,716,723,762,785,805,824,834,839,869,894,903,908,934],{"__ignoreMap":648},[653,679,680,684,688,692,695,698,701,704,707,710,713],{"class":655,"line":656},[653,681,683],{"class":682},"s7zQu","import",[653,685,687],{"class":686},"sMK4o"," {",[653,689,691],{"class":690},"sTEyZ"," Editor",[653,693,694],{"class":686},",",[653,696,697],{"class":690}," createDefaultPlugins",[653,699,700],{"class":686}," }",[653,702,703],{"class":682}," from",[653,705,706],{"class":686}," '",[653,708,709],{"class":663},"on-codemerge\u002Fcode",[653,711,712],{"class":686},"'",[653,714,715],{"class":686},";\n",[653,717,719],{"class":655,"line":718},2,[653,720,722],{"emptyLinePlaceholder":721},true,"\n",[653,724,726,730,733,736,739,742,746,749,751,754,756,759],{"class":655,"line":725},3,[653,727,729],{"class":728},"spNyl","const",[653,731,732],{"class":690}," host ",[653,734,735],{"class":686},"=",[653,737,738],{"class":690}," document",[653,740,741],{"class":686},".",[653,743,745],{"class":744},"s2Zo4","getElementById",[653,747,748],{"class":690},"(",[653,750,712],{"class":686},[653,752,753],{"class":663},"code-editor",[653,755,712],{"class":686},[653,757,758],{"class":690},")",[653,760,761],{"class":686},"!;\n",[653,763,765,767,770,772,775,777,780,782],{"class":655,"line":764},4,[653,766,729],{"class":728},[653,768,769],{"class":690}," editor ",[653,771,735],{"class":686},[653,773,774],{"class":686}," new",[653,776,691],{"class":744},[653,778,779],{"class":690},"(host",[653,781,694],{"class":686},[653,783,784],{"class":686}," {\n",[653,786,788,792,795,797,800,802],{"class":655,"line":787},5,[653,789,791],{"class":790},"swJcz","  chrome",[653,793,794],{"class":686},":",[653,796,706],{"class":686},[653,798,799],{"class":663},"bar",[653,801,712],{"class":686},[653,803,804],{"class":686},",\n",[653,806,808,811,813,815,818,820],{"class":655,"line":807},6,[653,809,810],{"class":790},"  plugins",[653,812,794],{"class":686},[653,814,697],{"class":744},[653,816,817],{"class":690},"()",[653,819,694],{"class":686},[653,821,823],{"class":822},"sHwdD"," \u002F\u002F CodeBlockPlugin({ surface: 'workspace' })\n",[653,825,827,830,832],{"class":655,"line":826},7,[653,828,829],{"class":686},"}",[653,831,758],{"class":690},[653,833,715],{"class":686},[653,835,837],{"class":655,"line":836},8,[653,838,722],{"emptyLinePlaceholder":721},[653,840,842,845,847,850,852,854,857,859,861,864,867],{"class":655,"line":841},9,[653,843,844],{"class":690},"editor",[653,846,741],{"class":686},[653,848,849],{"class":744},"on",[653,851,748],{"class":690},[653,853,712],{"class":686},[653,855,856],{"class":663},"docChanged",[653,858,712],{"class":686},[653,860,694],{"class":686},[653,862,863],{"class":686}," ()",[653,865,866],{"class":728}," =>",[653,868,784],{"class":686},[653,870,872,875,877,880,882,884,886,889,892],{"class":655,"line":871},10,[653,873,874],{"class":690},"  console",[653,876,741],{"class":686},[653,878,879],{"class":744},"log",[653,881,748],{"class":790},[653,883,844],{"class":690},[653,885,741],{"class":686},[653,887,888],{"class":744},"getText",[653,890,891],{"class":790},"())",[653,893,715],{"class":686},[653,895,897,899,901],{"class":655,"line":896},11,[653,898,829],{"class":686},[653,900,758],{"class":690},[653,902,715],{"class":686},[653,904,906],{"class":655,"line":905},12,[653,907,722],{"emptyLinePlaceholder":721},[653,909,911,913,915,918,920,922,925,928,930,932],{"class":655,"line":910},13,[653,912,844],{"class":690},[653,914,741],{"class":686},[653,916,917],{"class":744},"setText",[653,919,748],{"class":690},[653,921,712],{"class":686},[653,923,924],{"class":663},"const x = 1;",[653,926,927],{"class":690},"\\n",[653,929,712],{"class":686},[653,931,758],{"class":690},[653,933,715],{"class":686},[653,935,937,939,941,944,946],{"class":655,"line":936},14,[653,938,844],{"class":690},[653,940,741],{"class":686},[653,942,943],{"class":744},"destroy",[653,945,817],{"class":690},[653,947,715],{"class":686},[949,950,951,954,955,958,959,962,963,741],"p",{},[650,952,953],{},"createView"," defaults to ",[650,956,957],{},"createShellView"," (stable content host). Host Vue\u002FReact: mount → ",[650,960,961],{},"destroy()"," on unmount. Local SPA: ",[650,964,965],{},"pnpm dev:code",[967,968,970],"h3",{"id":969},"same-plugin-in-wysiwyg","Same plugin in WYSIWYG",[643,972,974],{"className":673,"code":973,"language":675,"meta":648,"style":648},"import { Editor, createDefaultPlugins, CodeBlockPlugin } from 'on-codemerge';\n\nnew Editor(host, {\n  plugins: [\n    ...createDefaultPlugins(), \u002F\u002F includes CodeBlockPlugin({ surface: 'atom' })\n    \u002F\u002F or explicit:\n    \u002F\u002F CodeBlockPlugin({ surface: 'atom', features: { toolbar: true } }),\n  ],\n});\n",[650,975,976,1006,1010,1023,1032,1047,1052,1057,1064],{"__ignoreMap":648},[653,977,978,980,982,984,986,988,990,993,995,997,999,1002,1004],{"class":655,"line":656},[653,979,683],{"class":682},[653,981,687],{"class":686},[653,983,691],{"class":690},[653,985,694],{"class":686},[653,987,697],{"class":690},[653,989,694],{"class":686},[653,991,992],{"class":690}," CodeBlockPlugin",[653,994,700],{"class":686},[653,996,703],{"class":682},[653,998,706],{"class":686},[653,1000,1001],{"class":663},"on-codemerge",[653,1003,712],{"class":686},[653,1005,715],{"class":686},[653,1007,1008],{"class":655,"line":718},[653,1009,722],{"emptyLinePlaceholder":721},[653,1011,1012,1015,1017,1019,1021],{"class":655,"line":725},[653,1013,1014],{"class":686},"new",[653,1016,691],{"class":744},[653,1018,779],{"class":690},[653,1020,694],{"class":686},[653,1022,784],{"class":686},[653,1024,1025,1027,1029],{"class":655,"line":764},[653,1026,810],{"class":790},[653,1028,794],{"class":686},[653,1030,1031],{"class":690}," [\n",[653,1033,1034,1037,1040,1042,1044],{"class":655,"line":787},[653,1035,1036],{"class":686},"    ...",[653,1038,1039],{"class":744},"createDefaultPlugins",[653,1041,817],{"class":690},[653,1043,694],{"class":686},[653,1045,1046],{"class":822}," \u002F\u002F includes CodeBlockPlugin({ surface: 'atom' })\n",[653,1048,1049],{"class":655,"line":807},[653,1050,1051],{"class":822},"    \u002F\u002F or explicit:\n",[653,1053,1054],{"class":655,"line":826},[653,1055,1056],{"class":822},"    \u002F\u002F CodeBlockPlugin({ surface: 'atom', features: { toolbar: true } }),\n",[653,1058,1059,1062],{"class":655,"line":836},[653,1060,1061],{"class":690},"  ]",[653,1063,804],{"class":686},[653,1065,1066,1068,1070],{"class":655,"line":841},[653,1067,829],{"class":686},[653,1069,758],{"class":690},[653,1071,715],{"class":686},[949,1073,1074,1077,1078,1081,1082,1086,1087,1090,1091,1094,1095,1099,1100,741],{},[650,1075,1076],{},"surface: 'atom'"," registers the ",[650,1079,1080],{},"code_block"," atom and ",[1083,1084,1085],"strong",{},"Insert → Code block"," (",[650,1088,1089],{},"Mod-Alt-Q","). Full-height source takes over the work area only with ",[650,1092,1093],{},"surface: 'workspace'",". See ",[1096,1097,1098],"a",{"href":132},"Code Block Plugin"," and ",[1096,1101,15],{"href":16},[967,1103,1105],{"id":1104},"types","Types",[949,1107,1108,1109,1111,1112,1115,1116,1119,1120,1123,1124,1127,1128,1131],{},"Published types for ",[650,1110,709],{}," expect TypeScript ",[650,1113,1114],{},"moduleResolution: \"bundler\""," (or ",[650,1117,1118],{},"skipLibCheck: true","). ",[650,1121,1122],{},"Node16"," \u002F ",[650,1125,1126],{},"NodeNext"," type resolution against shipped ",[650,1129,1130],{},".d.ts"," is unsupported. Runtime ESM\u002FCJS is fine.",[638,1133,1135],{"id":1134},"document-api","Document API",[1137,1138,1139,1152],"table",{},[1140,1141,1142],"thead",{},[1143,1144,1145,1149],"tr",{},[1146,1147,1148],"th",{},"Method",[1146,1150,1151],{},"Role",[1153,1154,1155,1166,1180,1196,1212,1222],"tbody",{},[1143,1156,1157,1163],{},[1158,1159,1160],"td",{},[650,1161,1162],{},"getText()",[1158,1164,1165],{},"Plain source (flushes pending workspace debounce first)",[1143,1167,1168,1173],{},[1158,1169,1170],{},[650,1171,1172],{},"setText(text)",[1158,1174,1175,1176,1179],{},"Replace SoT; returns ",[650,1177,1178],{},"ParseError | null"," (SoT unchanged on error)",[1143,1181,1182,1190],{},[1158,1183,1184,1123,1187],{},[650,1185,1186],{},"getJSON()",[650,1188,1189],{},"setJSON(doc)",[1158,1191,1192,1193,758],{},"Kernel document snapshot (",[650,1194,1195],{},"doc → code_source",[1143,1197,1198,1209],{},[1158,1199,1200,1123,1203,1123,1206],{},[650,1201,1202],{},"run",[650,1204,1205],{},"command",[650,1207,1208],{},"use",[1158,1210,1211],{},"Same as WYSIWYG",[1143,1213,1214,1219],{},[1158,1215,1216],{},[650,1217,1218],{},"on('docChanged', …)",[1158,1220,1221],{},"Subscriptions",[1143,1223,1224,1228],{},[1158,1225,1226],{},[650,1227,961],{},[1158,1229,1230],{},"Tear down (flushes pending source → SoT)",[949,1232,1233,1234,1237,1238,1241,1242,1123,1245,1248,1249,1252],{},"Prose-only methods (",[650,1235,1236],{},"getHTML",", ",[650,1239,1240],{},"setMarkdown",", publish helpers, …) are stubs (",[650,1243,1244],{},"''",[650,1246,1247],{},"null"," \u002F no-op) — they do ",[1083,1250,1251],{},"not"," throw.",[638,1254,1256],{"id":1255},"document-shape","Document shape",[949,1258,1259,1260,1263,1264,1267],{},"SoT is ",[650,1261,1262],{},"doc"," → single ",[650,1265,1266],{},"code_source"," child:",[643,1269,1271],{"className":673,"code":1270,"language":675,"meta":648,"style":648},"type CodeSourceAttrs = {\n  text: string;\n  language: string; \u002F\u002F metadata only — does not switch highlighter grammar\n};\n",[650,1272,1273,1286,1298,1313],{"__ignoreMap":648},[653,1274,1275,1278,1281,1284],{"class":655,"line":656},[653,1276,1277],{"class":728},"type",[653,1279,1280],{"class":659}," CodeSourceAttrs",[653,1282,1283],{"class":686}," =",[653,1285,784],{"class":686},[653,1287,1288,1291,1293,1296],{"class":655,"line":718},[653,1289,1290],{"class":790},"  text",[653,1292,794],{"class":686},[653,1294,1295],{"class":659}," string",[653,1297,715],{"class":686},[653,1299,1300,1303,1305,1307,1310],{"class":655,"line":725},[653,1301,1302],{"class":790},"  language",[653,1304,794],{"class":686},[653,1306,1295],{"class":659},[653,1308,1309],{"class":686},";",[653,1311,1312],{"class":822}," \u002F\u002F metadata only — does not switch highlighter grammar\n",[653,1314,1315],{"class":655,"line":764},[653,1316,1317],{"class":686},"};\n",[949,1319,1320],{},"Paint uses one shared universal structural ruleset (comments, strings, numbers, …) — the same contour as JSON Raw and Markdown source. Language is free-text metadata for fences \u002F status \u002F download extension (sanitized).",[638,1322,1324],{"id":1323},"toolbar","Toolbar",[949,1326,1327,1330,1331,1099,1334,1337],{},[650,1328,1329],{},"createDefaultPlugins()"," ships ",[1083,1332,1333],{},"Edit",[1083,1335,1336],{},"File"," overflow menus (copy \u002F select all \u002F clear \u002F indent \u002F outdent \u002F download \u002F upload). Language is editable in the status strip.",[949,1339,1340,1341,1344],{},"Local source-buffer undo (typing \u002F Tab \u002F paste) is keyboard-only: ",[1083,1342,1343],{},"Mod-z \u002F Mod-y"," on the focused editor. Toolbar History walks document history after SoT commits (debounced ~200ms while typing).",[949,1346,1347,1348,1123,1350,1123,1353,1356,1357,741],{},"Customize via ",[650,1349,1323],{},[650,1351,1352],{},"createDefaultPlugins({ toolbar })",[650,1354,1355],{},"new Editor(host, { toolbar })"," — extend ",[650,1358,1359],{},"defaultCodeToolbar()",[643,1361,1363],{"className":673,"code":1362,"language":675,"meta":648,"style":648},"import { Editor, defaultCodeToolbar } from 'on-codemerge\u002Fcode';\n\nconst base = defaultCodeToolbar();\nnew Editor(host, {\n  chrome: 'bar',\n  toolbar: {\n    menus: base.menus,\n    items: [\n      ...(base.items ?? []),\n      {\n        id: 'code-ping',\n        label: 'Ping',\n        menu: 'edit',\n        run: ({ editor }) => editor.notify('ok'),\n      },\n    ],\n  },\n});\n",[650,1364,1365,1390,1394,1409,1421,1435,1444,1461,1470,1491,1496,1512,1528,1544,1583,1589,1597,1603],{"__ignoreMap":648},[653,1366,1367,1369,1371,1373,1375,1378,1380,1382,1384,1386,1388],{"class":655,"line":656},[653,1368,683],{"class":682},[653,1370,687],{"class":686},[653,1372,691],{"class":690},[653,1374,694],{"class":686},[653,1376,1377],{"class":690}," defaultCodeToolbar",[653,1379,700],{"class":686},[653,1381,703],{"class":682},[653,1383,706],{"class":686},[653,1385,709],{"class":663},[653,1387,712],{"class":686},[653,1389,715],{"class":686},[653,1391,1392],{"class":655,"line":718},[653,1393,722],{"emptyLinePlaceholder":721},[653,1395,1396,1398,1401,1403,1405,1407],{"class":655,"line":725},[653,1397,729],{"class":728},[653,1399,1400],{"class":690}," base ",[653,1402,735],{"class":686},[653,1404,1377],{"class":744},[653,1406,817],{"class":690},[653,1408,715],{"class":686},[653,1410,1411,1413,1415,1417,1419],{"class":655,"line":764},[653,1412,1014],{"class":686},[653,1414,691],{"class":744},[653,1416,779],{"class":690},[653,1418,694],{"class":686},[653,1420,784],{"class":686},[653,1422,1423,1425,1427,1429,1431,1433],{"class":655,"line":787},[653,1424,791],{"class":790},[653,1426,794],{"class":686},[653,1428,706],{"class":686},[653,1430,799],{"class":663},[653,1432,712],{"class":686},[653,1434,804],{"class":686},[653,1436,1437,1440,1442],{"class":655,"line":807},[653,1438,1439],{"class":790},"  toolbar",[653,1441,794],{"class":686},[653,1443,784],{"class":686},[653,1445,1446,1449,1451,1454,1456,1459],{"class":655,"line":826},[653,1447,1448],{"class":790},"    menus",[653,1450,794],{"class":686},[653,1452,1453],{"class":690}," base",[653,1455,741],{"class":686},[653,1457,1458],{"class":690},"menus",[653,1460,804],{"class":686},[653,1462,1463,1466,1468],{"class":655,"line":836},[653,1464,1465],{"class":790},"    items",[653,1467,794],{"class":686},[653,1469,1031],{"class":690},[653,1471,1472,1475,1478,1480,1483,1486,1489],{"class":655,"line":841},[653,1473,1474],{"class":686},"      ...",[653,1476,1477],{"class":690},"(base",[653,1479,741],{"class":686},[653,1481,1482],{"class":690},"items ",[653,1484,1485],{"class":686},"??",[653,1487,1488],{"class":690}," [])",[653,1490,804],{"class":686},[653,1492,1493],{"class":655,"line":871},[653,1494,1495],{"class":686},"      {\n",[653,1497,1498,1501,1503,1505,1508,1510],{"class":655,"line":896},[653,1499,1500],{"class":790},"        id",[653,1502,794],{"class":686},[653,1504,706],{"class":686},[653,1506,1507],{"class":663},"code-ping",[653,1509,712],{"class":686},[653,1511,804],{"class":686},[653,1513,1514,1517,1519,1521,1524,1526],{"class":655,"line":905},[653,1515,1516],{"class":790},"        label",[653,1518,794],{"class":686},[653,1520,706],{"class":686},[653,1522,1523],{"class":663},"Ping",[653,1525,712],{"class":686},[653,1527,804],{"class":686},[653,1529,1530,1533,1535,1537,1540,1542],{"class":655,"line":910},[653,1531,1532],{"class":790},"        menu",[653,1534,794],{"class":686},[653,1536,706],{"class":686},[653,1538,1539],{"class":663},"edit",[653,1541,712],{"class":686},[653,1543,804],{"class":686},[653,1545,1546,1549,1551,1554,1558,1561,1563,1565,1567,1570,1572,1574,1577,1579,1581],{"class":655,"line":936},[653,1547,1548],{"class":744},"        run",[653,1550,794],{"class":686},[653,1552,1553],{"class":686}," ({",[653,1555,1557],{"class":1556},"sHdIc"," editor",[653,1559,1560],{"class":686}," })",[653,1562,866],{"class":728},[653,1564,1557],{"class":690},[653,1566,741],{"class":686},[653,1568,1569],{"class":744},"notify",[653,1571,748],{"class":690},[653,1573,712],{"class":686},[653,1575,1576],{"class":663},"ok",[653,1578,712],{"class":686},[653,1580,758],{"class":690},[653,1582,804],{"class":686},[653,1584,1586],{"class":655,"line":1585},15,[653,1587,1588],{"class":686},"      },\n",[653,1590,1592,1595],{"class":655,"line":1591},16,[653,1593,1594],{"class":690},"    ]",[653,1596,804],{"class":686},[653,1598,1600],{"class":655,"line":1599},17,[653,1601,1602],{"class":686},"  },\n",[653,1604,1606,1608,1610],{"class":655,"line":1605},18,[653,1607,829],{"class":686},[653,1609,758],{"class":690},[653,1611,715],{"class":686},[638,1613,1615],{"id":1614},"codeblockplugin-options","CodeBlockPlugin options",[643,1617,1619],{"className":673,"code":1618,"language":675,"meta":648,"style":648},"CodeBlockPlugin({\n  surface: 'workspace' | 'atom', \u002F\u002F default 'atom'\n  \u002F** Sole source of workspace bar buttons. Omit → defaultCodeToolbar(). *\u002F\n  toolbar?: { menus?: …; items?: … },\n  \u002F** Atom Insert placement (`PluginToolbarOpts`). `menu: null` → bar. *\u002F\n  menu?: string | null,\n  group?: string,\n  order?: number,\n  features?: {\n    toolbar?: boolean; \u002F\u002F Insert button (atom only); default true\n  },\n});\n",[650,1620,1621,1631,1660,1665,1691,1696,1712,1723,1735,1744,1757,1761],{"__ignoreMap":648},[653,1622,1623,1626,1628],{"class":655,"line":656},[653,1624,1625],{"class":744},"CodeBlockPlugin",[653,1627,748],{"class":690},[653,1629,1630],{"class":686},"{\n",[653,1632,1633,1636,1638,1640,1643,1645,1648,1650,1653,1655,1657],{"class":655,"line":718},[653,1634,1635],{"class":790},"  surface",[653,1637,794],{"class":686},[653,1639,706],{"class":686},[653,1641,1642],{"class":663},"workspace",[653,1644,712],{"class":686},[653,1646,1647],{"class":686}," |",[653,1649,706],{"class":686},[653,1651,1652],{"class":663},"atom",[653,1654,712],{"class":686},[653,1656,694],{"class":686},[653,1658,1659],{"class":822}," \u002F\u002F default 'atom'\n",[653,1661,1662],{"class":655,"line":725},[653,1663,1664],{"class":822},"  \u002F** Sole source of workspace bar buttons. Omit → defaultCodeToolbar(). *\u002F\n",[653,1666,1667,1670,1672,1674,1677,1679,1682,1685,1688],{"class":655,"line":764},[653,1668,1669],{"class":690},"  toolbar?",[653,1671,794],{"class":686},[653,1673,687],{"class":686},[653,1675,1676],{"class":690}," menus?",[653,1678,794],{"class":686},[653,1680,1681],{"class":690}," …; items",[653,1683,1684],{"class":686},"?:",[653,1686,1687],{"class":690}," … ",[653,1689,1690],{"class":686},"},\n",[653,1692,1693],{"class":655,"line":787},[653,1694,1695],{"class":822},"  \u002F** Atom Insert placement (`PluginToolbarOpts`). `menu: null` → bar. *\u002F\n",[653,1697,1698,1701,1703,1706,1709],{"class":655,"line":807},[653,1699,1700],{"class":690},"  menu?",[653,1702,794],{"class":686},[653,1704,1705],{"class":690}," string ",[653,1707,1708],{"class":686},"|",[653,1710,1711],{"class":686}," null,\n",[653,1713,1714,1717,1719,1721],{"class":655,"line":826},[653,1715,1716],{"class":690},"  group?",[653,1718,794],{"class":686},[653,1720,1295],{"class":690},[653,1722,804],{"class":686},[653,1724,1725,1728,1730,1733],{"class":655,"line":836},[653,1726,1727],{"class":690},"  order?",[653,1729,794],{"class":686},[653,1731,1732],{"class":690}," number",[653,1734,804],{"class":686},[653,1736,1737,1740,1742],{"class":655,"line":841},[653,1738,1739],{"class":690},"  features?",[653,1741,794],{"class":686},[653,1743,784],{"class":686},[653,1745,1746,1749,1751,1754],{"class":655,"line":871},[653,1747,1748],{"class":690},"    toolbar?",[653,1750,794],{"class":686},[653,1752,1753],{"class":690}," boolean; ",[653,1755,1756],{"class":822},"\u002F\u002F Insert button (atom only); default true\n",[653,1758,1759],{"class":655,"line":896},[653,1760,1602],{"class":686},[653,1762,1763,1765,1767],{"class":655,"line":905},[653,1764,829],{"class":686},[653,1766,758],{"class":690},[653,1768,715],{"class":686},[638,1770,1772],{"id":1771},"local-demo","Local demo",[643,1774,1776],{"className":645,"code":1775,"language":647,"meta":648,"style":648},"pnpm dev:code    # apps\u002Fcode SPA\npnpm build:code  # → dist-code\u002F\n",[650,1777,1778,1789],{"__ignoreMap":648},[653,1779,1780,1783,1786],{"class":655,"line":656},[653,1781,1782],{"class":659},"pnpm",[653,1784,1785],{"class":663}," dev:code",[653,1787,1788],{"class":822},"    # apps\u002Fcode SPA\n",[653,1790,1791,1793,1796],{"class":655,"line":718},[653,1792,1782],{"class":659},[653,1794,1795],{"class":663}," build:code",[653,1797,1798],{"class":822},"  # → dist-code\u002F\n",[638,1800,1802],{"id":1801},"see-also","See also",[1804,1805,1806,1812,1817,1824,1829],"ul",{},[1807,1808,1809,1811],"li",{},[1096,1810,15],{"href":16}," — four-product matrix",[1807,1813,1814,1816],{},[1096,1815,1098],{"href":132}," — atom + workspace options",[1807,1818,1819,1821,1822,758],{},[1096,1820,19],{"href":20}," — WYSIWYG entry (",[650,1823,1001],{},[1807,1825,1826,1828],{},[1096,1827,602],{"href":603}," — kernel DocNode \u002F ops",[1807,1830,1831,1833],{},[1096,1832,266],{"href":273}," — host frameworks",[1835,1836,1837],"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 .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 .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 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}",{"title":648,"searchDepth":718,"depth":725,"links":1839},[1840,1844,1845,1846,1847,1848,1849],{"id":640,"depth":718,"text":641,"children":1841},[1842,1843],{"id":969,"depth":725,"text":970},{"id":1104,"depth":725,"text":1105},{"id":1134,"depth":718,"text":1135},{"id":1255,"depth":718,"text":1256},{"id":1323,"depth":718,"text":1324},{"id":1614,"depth":718,"text":1615},{"id":1771,"depth":718,"text":1772},{"id":1801,"depth":718,"text":1802},"Plain-text source product published as on-codemerge\u002Fcode. Thin app entry uses a shell ViewPort and CodeBlockPlugin({ surface: 'workspace' }), which mounts the shared source-editor contour (gutter + universal structural highlight) into contentTarget. Interchange via getText \u002F setText.","md",null,{},{"title":41,"description":1850},"ASZSEoheBgGl_7lld-Hd-Ay71ioAAAqKekuM4sJ21MY",[1857,1859],{"title":37,"path":38,"stem":39,"description":1858,"children":-1},"Dual-pane Markdown product (on-codemerge\u002Fmarkdown): source on the left, sanitized HTML preview on the right. Source of truth is a prose JSON tree (getJSON \u002F setJSON). Markdown and HTML are interchange boundaries (getText \u002F setText, getHTML \u002F setHTML).",{"title":45,"path":46,"stem":47,"description":1860,"children":-1},"Form builder product published as on-codemerge\u002Fforms. Thin app entry uses a shell ViewPort and FormBuilderPlugin({ surface: 'workspace' }), which mounts the shared form studio (palette \u002F canvas \u002F inspector) into contentTarget. Interchange via getText \u002F setText (pretty FormConfig JSON).",1794129103701]