[{"data":1,"prerenderedAt":1210},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-glossary":412,"-getting-started-glossary-surround":1205},[4,38,84,326,386],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":37},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15,20,24,28,32],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":6},"Quick start: Nuxt","\u002Fgetting-started\u002Fquick-start-nuxt","1.getting-started\u002F3.quick-start-nuxt",{"title":25,"path":26,"stem":27,"icon":6},"Quick start: plain Vue","\u002Fgetting-started\u002Fquick-start-vue","1.getting-started\u002F4.quick-start-vue",{"title":29,"path":30,"stem":31,"icon":6},"Quick start: React","\u002Fgetting-started\u002Fquick-start-react","1.getting-started\u002F5.quick-start-react",{"title":33,"path":34,"stem":35,"icon":36},"Glossary","\u002Fgetting-started\u002Fglossary","1.getting-started\u002F6.glossary","i-lucide-book-a",false,{"title":39,"icon":40,"path":41,"stem":42,"children":43,"page":37},"Tutorial","i-lucide-graduation-cap","\u002Ftutorial","2.tutorial",[44,49,54,59,64,69,74,79],{"title":45,"path":46,"stem":47,"icon":48},"Tutorial: overview","\u002Ftutorial\u002Foverview","2.tutorial\u002F1.overview","i-lucide-map",{"title":50,"path":51,"stem":52,"icon":53},"Chapter 2: A simple editor","\u002Ftutorial\u002Fsimple-editor","2.tutorial\u002F2.simple-editor","i-lucide-pencil",{"title":55,"path":56,"stem":57,"icon":58},"Chapter 3: Compose features","\u002Ftutorial\u002Fcompose-features","2.tutorial\u002F3.compose-features","i-lucide-blocks",{"title":60,"path":61,"stem":62,"icon":63},"Chapter 4: Your own block, path A","\u002Ftutorial\u002Fown-block-path-a","2.tutorial\u002F4.own-block-path-a","i-lucide-square-plus",{"title":65,"path":66,"stem":67,"icon":68},"Chapter 5: Your own feature, path B","\u002Ftutorial\u002Fown-feature-path-b","2.tutorial\u002F5.own-feature-path-b","i-lucide-puzzle",{"title":70,"path":71,"stem":72,"icon":73},"Chapter 6: Backend and collaboration","\u002Ftutorial\u002Fbackend-and-collaboration","2.tutorial\u002F6.backend-and-collaboration","i-lucide-users",{"title":75,"path":76,"stem":77,"icon":78},"Chapter 7: AI","\u002Ftutorial\u002Fai","2.tutorial\u002F7.ai","i-lucide-sparkles",{"title":80,"path":81,"stem":82,"icon":83},"Chapter 8: The React surface","\u002Ftutorial\u002Freact-surface","2.tutorial\u002F8.react-surface","i-lucide-atom",{"title":85,"icon":14,"path":86,"stem":87,"children":88,"page":37},"Guides","\u002Fguides","3.guides",[89,93,98,103,108,112,116,121,126,130,134,139,144,149,154,159,164,169,174,179,184,189,194,199,204,209,213,218,223,228,233,237,242,247,251,256,261,266,271,276,281,286,291,295,302,307,311,316,321],{"title":90,"path":91,"stem":92,"icon":58},"Feature composition and entries","\u002Fguides\u002Fcomposition","3.guides\u002F1.composition",{"title":94,"path":95,"stem":96,"icon":97},"Media, mentions and transcript features","\u002Fguides\u002Fmedia-mentions-transcript","3.guides\u002F10.media-mentions-transcript","i-lucide-image",{"title":99,"path":100,"stem":101,"icon":102},"Authors and comments","\u002Fguides\u002Fauthors-and-comments","3.guides\u002F11.authors-and-comments","i-lucide-message-square-text",{"title":104,"path":105,"stem":106,"icon":107},"Themes (Obsidian)","\u002Fguides\u002Fthemes","3.guides\u002F12.themes","i-lucide-palette",{"title":109,"path":110,"stem":111,"icon":58},"Composites and the settings UI","\u002Fguides\u002Fcomposites","3.guides\u002F13.composites",{"title":113,"path":114,"stem":115,"icon":78},"AI","\u002Fguides\u002Fai","3.guides\u002F14.ai",{"title":117,"path":118,"stem":119,"icon":120},"Document tree","\u002Fguides\u002Fdocument-tree","3.guides\u002F15.document-tree","i-lucide-folder-tree",{"title":122,"path":123,"stem":124,"icon":125},"Markdown and code","\u002Fguides\u002Fmarkdown-and-code","3.guides\u002F16.markdown-and-code","i-lucide-file-code",{"title":127,"path":128,"stem":129,"icon":83},"Advanced editor in React","\u002Fguides\u002Fadvanced-react","3.guides\u002F17.advanced-react",{"title":131,"path":132,"stem":133,"icon":6},"Kitchen sink: learning path","\u002Fguides\u002Fadvanced-nuxt-example","3.guides\u002F18.advanced-nuxt-example",{"title":135,"path":136,"stem":137,"icon":138},"Production","\u002Fguides\u002Fproduction","3.guides\u002F19.production","i-lucide-server",{"title":140,"path":141,"stem":142,"icon":143},"Register the Nuxt module","\u002Fguides\u002Fnuxt-module","3.guides\u002F2.nuxt-module","i-lucide-package",{"title":145,"path":146,"stem":147,"icon":148},"Storage adapters, comment stores, Nitro host","\u002Fguides\u002Fstorage-adapters","3.guides\u002F20.storage-adapters","i-lucide-database",{"title":150,"path":151,"stem":152,"icon":153},"Migrating from #tiptap-editor","\u002Fguides\u002Fmigration","3.guides\u002F21.migration","i-lucide-arrow-right-left",{"title":155,"path":156,"stem":157,"icon":158},"Content tree mechanics","\u002Fguides\u002Fcontent-tree","3.guides\u002F22.content-tree","i-lucide-git-fork",{"title":160,"path":161,"stem":162,"icon":163},"Block capabilities, abilities and actions","\u002Fguides\u002Fblock-capabilities","3.guides\u002F23.block-capabilities","i-lucide-shield-check",{"title":165,"path":166,"stem":167,"icon":168},"Block types in code and JSON","\u002Fguides\u002Fblock-types","3.guides\u002F24.block-types","i-lucide-shapes",{"title":170,"path":171,"stem":172,"icon":173},"Derive methods and the Derivation index","\u002Fguides\u002Fderive-methods","3.guides\u002F25.derive-methods","i-lucide-git-branch-plus",{"title":175,"path":176,"stem":177,"icon":178},"Block properties and Property definitions","\u002Fguides\u002Fblock-properties","3.guides\u002F26.block-properties","i-lucide-sliders-horizontal",{"title":180,"path":181,"stem":182,"icon":183},"Image studio","\u002Fguides\u002Fimage-studio","3.guides\u002F27.image-studio","i-lucide-image-plus",{"title":185,"path":186,"stem":187,"icon":188},"Prüfung and Freigabestatus","\u002Fguides\u002Fpruefung","3.guides\u002F28.pruefung","i-lucide-stamp",{"title":190,"path":191,"stem":192,"icon":193},"Workspace: find, read, reference and embed Blocks across Documents","\u002Fguides\u002Fworkspace","3.guides\u002F29.workspace","i-lucide-network",{"title":195,"path":196,"stem":197,"icon":198},"EditorPorts: auth and storage","\u002Fguides\u002Feditor-ports","3.guides\u002F3.editor-ports","i-lucide-plug",{"title":200,"path":201,"stem":202,"icon":203},"Collections: an ordered list of Blocks","\u002Fguides\u002Fcollections","3.guides\u002F30.collections","i-lucide-list-checks",{"title":205,"path":206,"stem":207,"icon":208},"Data views: a query shown as table, list or board","\u002Fguides\u002Fdata-views","3.guides\u002F31.data-views","i-lucide-table-properties",{"title":210,"path":211,"stem":212,"icon":193},"Explore: backlinks, related Blocks and the trail","\u002Fguides\u002Fexplore","3.guides\u002F32.explore",{"title":214,"path":215,"stem":216,"icon":217},"Render: export a Block or a Document to a file","\u002Fguides\u002Frender","3.guides\u002F33.render","i-lucide-file-output",{"title":219,"path":220,"stem":221,"icon":222},"Importers: what a dropped file becomes","\u002Fguides\u002Fimporters","3.guides\u002F34.importers","i-lucide-file-input",{"title":224,"path":225,"stem":226,"icon":227},"Templates: start a Document from a Dokumentvorlage","\u002Fguides\u002Ftemplates","3.guides\u002F35.templates","i-lucide-file-stack",{"title":229,"path":230,"stem":231,"icon":232},"Citations","\u002Fguides\u002Fcitations","3.guides\u002F36.citations","i-lucide-quote",{"title":234,"path":235,"stem":236,"icon":163},"AI proposals and the export check","\u002Fguides\u002Fexport-check","3.guides\u002F37.export-check",{"title":238,"path":239,"stem":240,"icon":241},"Query: filter, sort, group and total Blocks","\u002Fguides\u002Fquery","3.guides\u002F38.query","i-lucide-list-filter",{"title":243,"path":244,"stem":245,"icon":246},"Edges: backlinks and authored connections","\u002Fguides\u002Fedges","3.guides\u002F39.edges","i-lucide-link-2",{"title":248,"path":249,"stem":250,"icon":163},"Server routes and authentication","\u002Fguides\u002Froutes-and-auth","3.guides\u002F4.routes-and-auth",{"title":252,"path":253,"stem":254,"icon":255},"Speech: text to audio, and subtitle files","\u002Fguides\u002Fspeech","3.guides\u002F41.speech","i-lucide-audio-lines",{"title":257,"path":258,"stem":259,"icon":260},"Graph: the Edges around a Block","\u002Fguides\u002Fgraph","3.guides\u002F42.graph","i-lucide-waypoints",{"title":262,"path":263,"stem":264,"icon":265},"PDF viewer: passages, anchors and quotes","\u002Fguides\u002Fpdf-viewer","3.guides\u002F43.pdf-viewer","i-lucide-file-search",{"title":267,"path":268,"stem":269,"icon":270},"Obsidian: import and export a vault","\u002Fguides\u002Fobsidian","3.guides\u002F44.obsidian","i-lucide-folder-input",{"title":272,"path":273,"stem":274,"icon":275},"Typst: render a Document as a PDF with citations","\u002Fguides\u002Ftypst","3.guides\u002F45.typst","i-lucide-file-text",{"title":277,"path":278,"stem":279,"icon":280},"Audio: read aloud, mixdown and ElevenLabs","\u002Fguides\u002Faudio","3.guides\u002F46.audio","i-lucide-audio-waveform",{"title":282,"path":283,"stem":284,"icon":285},"Slides: decks, slide layouts and exports","\u002Fguides\u002Fslides","3.guides\u002F47.slides","i-lucide-presentation",{"title":287,"path":288,"stem":289,"icon":290},"Knowledge graph: sources and concepts beside the Documents","\u002Fguides\u002Fknowledge-graph","3.guides\u002F49.knowledge-graph","i-lucide-share-2",{"title":292,"path":293,"stem":294,"icon":78},"AI configuration and secrets","\u002Fguides\u002Fai-configuration","3.guides\u002F5.ai-configuration",{"title":296,"path":297,"stem":298,"children":299,"icon":301},"Index on Postgres: typos, meaning and SQL pushdown","\u002Fguides\u002Findex-pg","3.guides\u002F50.index-pg",[300],{"title":296,"path":297,"stem":298,"icon":301},"i-lucide-database-zap",{"title":303,"path":304,"stem":305,"icon":306},"Charts: bar, line, pie and scatter over a query","\u002Fguides\u002Fcharts","3.guides\u002F51.charts","i-lucide-chart-column",{"title":308,"path":309,"stem":310,"icon":73},"Collaboration on the client","\u002Fguides\u002Fcollaboration","3.guides\u002F6.collaboration",{"title":312,"path":313,"stem":314,"icon":315},"Block UI (drag handle, hover actions)","\u002Fguides\u002Fblock-ui","3.guides\u002F7.block-ui","i-lucide-grip-vertical",{"title":317,"path":318,"stem":319,"icon":320},"Settings and app lifetime","\u002Fguides\u002Fsettings","3.guides\u002F8.settings","i-lucide-settings",{"title":322,"path":323,"stem":324,"icon":325},"Language","\u002Fguides\u002Flanguage","3.guides\u002F9.language","i-lucide-languages",{"title":327,"icon":14,"path":328,"stem":329,"children":330,"page":37},"Reference","\u002Freference","4.reference",[331,335,339,344,348,352,356,360,364,368,373,378,382],{"title":332,"path":333,"stem":334,"icon":143},"Public exports","\u002Freference\u002Fexports","4.reference\u002F1.exports",{"title":336,"path":337,"stem":338,"icon":173},"Derive method contract","\u002Freference\u002Fderive-methods","4.reference\u002F10.derive-methods",{"title":340,"path":341,"stem":342,"icon":343},"Changelog","\u002Freference\u002Fchangelog","4.reference\u002F11.changelog","i-lucide-history",{"title":345,"path":346,"stem":347,"icon":217},"Renderer port","\u002Freference\u002Frenderer-port","4.reference\u002F12.renderer-port",{"title":349,"path":350,"stem":351,"icon":255},"Speech port","\u002Freference\u002Fspeech-port","4.reference\u002F13.speech-port",{"title":353,"path":354,"stem":355,"icon":58},"Presets and features","\u002Freference\u002Fpresets-and-features","4.reference\u002F2.presets-and-features",{"title":357,"path":358,"stem":359,"icon":68},"Feature contract","\u002Freference\u002Ffeature-contract","4.reference\u002F3.feature-contract",{"title":361,"path":362,"stem":363,"icon":107},"CSS and UI-provider requirements","\u002Freference\u002Fcss-and-ui","4.reference\u002F4.css-and-ui",{"title":365,"path":366,"stem":367,"icon":148},"Vue-free advanced schema","\u002Freference\u002Fadvanced-schema","4.reference\u002F5.advanced-schema",{"title":369,"path":370,"stem":371,"icon":372},"Dependency rules","\u002Freference\u002Fdependency-rules","4.reference\u002F6.dependency-rules","i-lucide-git-branch",{"title":374,"path":375,"stem":376,"icon":377},"Commands","\u002Freference\u002Fcommands","4.reference\u002F7.commands","i-lucide-terminal",{"title":379,"path":380,"stem":381,"icon":163},"Block capability contract","\u002Freference\u002Fblock-capabilities","4.reference\u002F8.block-capabilities",{"title":383,"path":384,"stem":385,"icon":168},"Block type contract","\u002Freference\u002Fblock-types","4.reference\u002F9.block-types",{"title":387,"path":388,"stem":389,"children":390,"icon":393},"AI agents","\u002Fai-agents","5.ai-agents\u002F1.index",[391,394,398,402,407],{"title":392,"path":388,"stem":389,"icon":393},"Overview","i-lucide-bot",{"title":395,"path":396,"stem":397,"icon":198},"Integrate the editor","\u002Fai-agents\u002Fintegrate","5.ai-agents\u002F2.integrate",{"title":399,"path":400,"stem":401,"icon":68},"Add a block or feature","\u002Fai-agents\u002Fextend","5.ai-agents\u002F3.extend",{"title":403,"path":404,"stem":405,"icon":406},"Pitfalls and invariants","\u002Fai-agents\u002Finvariants","5.ai-agents\u002F4.invariants","i-lucide-shield-alert",{"title":408,"path":409,"stem":410,"icon":411},"Verify","\u002Fai-agents\u002Fverify","5.ai-agents\u002F5.verify","i-lucide-check-check",{"id":413,"title":33,"body":414,"description":1198,"extension":1199,"links":1200,"meta":1201,"navigation":1202,"path":34,"seo":1203,"stem":35,"__hash__":1204},"docs\u002F1.getting-started\u002F6.glossary.md",{"type":415,"value":416,"toc":1188},"minimark",[417,426,440,445,462,475,488,501,514,527,544,557,570,574,586,599,612,629,646,659,672,685,698,715,728,741,754,767,780,793,797,810,823,836,849,862,875,888,901,904,917,930,943,956,969,982,995,1008,1021,1025,1038,1051,1064,1076,1089,1102,1115,1119,1132,1145,1158,1175],[418,419,420,421,425],"p",{},"These terms name the concepts used in the documentation. ",[422,423,424],"code",{},"_Avoid_"," lists words that mean something else here.",[427,428,429],"blockquote",{},[418,430,431,435,436,439],{},[432,433,434],"strong",{},"Migration note."," The documentation, the library and its English labels use this vocabulary. Persisted data written under older names loads through a migration and is never written back under them (see the Persisted names section of the migration guide). The ",[422,437,438],{},"::: \u003CBlock type id>"," fences did not change.",[441,442,444],"h2",{"id":443},"editor-composition","Editor composition",[418,446,447,450,451,454,455,457,461],{},[432,448,449],{},"Feature",":",[452,453],"br",{},"\nA named contribution to an editor (blocks, toolbar entries, menus, settings, AI knowledge) that a Preset lists.",[452,456],{},[458,459,460],"em",{},"Avoid",": plugin, extension (an extension is a TipTap building block a Feature may contribute)",[418,463,464,450,467,469,470,472,474],{},[432,465,466],{},"Integration",[452,468],{},"\nA Feature that exists only to connect two or more other Features (e.g. Typed blocks with AI, transcripts with AI).",[452,471],{},[458,473,460],{},": bridge, glue feature",[418,476,477,450,480,482,483,485,487],{},[432,478,479],{},"Preset",[452,481],{},"\nA validated, ordered list of Features that defines one kind of editor. Say Editor preset where a Model preset could be meant.",[452,484],{},[458,486,460],{},": config, editor definition",[418,489,490,450,493,495,496,498,500],{},[432,491,492],{},"Surface",[452,494],{},"\nThe framework-specific place (Vue or React) where a Preset is mounted and edited.",[452,497],{},[458,499,460],{},": editor component, view",[418,502,503,450,506,508,509,511,513],{},[432,504,505],{},"Surface session",[452,507],{},"\nOne mount of a Preset on a Surface, from mount to unmount; Feature setups are active exactly while it lives.",[452,510],{},[458,512,460],{},": editor instance, mount",[418,515,516,450,519,521,522,524,526],{},[432,517,518],{},"UI binding",[452,520],{},"\nThe set of framework components a Feature needs on one Surface (overlays, settings tabs, node views).",[452,523],{},[458,525,460],{},": adapter layer, renderer set",[418,528,529,450,532,534,535,538,539,541,543],{},[432,530,531],{},"Editor library",[452,533],{},"\nThe ",[422,536,537],{},"@skaile\u002Fforge-editor"," package: Features, Presets, Surfaces and the server ports, usable by any host.",[452,540],{},[458,542,460],{},": the editor (ambiguous with a Surface), core",[418,545,546,450,549,551,552,554,556],{},[432,547,548],{},"Reference app",[452,550],{},"\nThe Nuxt app in this repo that hosts the Editor library and shows one complete setup.",[452,553],{},[458,555,460],{},": the app, demo",[418,558,559,450,562,564,565,567,569],{},[432,560,561],{},"Host",[452,563],{},"\nThe application that mounts a Preset and supplies backend, UI kit, Block types and Host blocks.",[452,566],{},[458,568,460],{},": client, consumer",[441,571,573],{"id":572},"document","Document",[418,575,576,450,578,580,581,583,585],{},[432,577,573],{},[452,579],{},"\nThe stored, editable unit a user opens, names and moves; it holds Blocks but is not itself a Block.",[452,582],{},[458,584,460],{},": page, file",[418,587,588,450,591,593,594,596,598],{},[432,589,590],{},"Block",[452,592],{},"\nAn independently addressable unit of a Document's content. A Block is either a Simple block or a Container block.",[452,595],{},[458,597,460],{},": node (code name only), Baustein (legacy UI label for Typed block)",[418,600,601,450,604,606,607,609,611],{},[432,602,603],{},"Simple block",[452,605],{},"\nA Block that holds no other Blocks, such as a paragraph, heading, list, quote, code block or media. The items of a list are part of the list, not Blocks of their own; block actions and drag act on the list. Simple is a classification of structure, not a Block type.",[452,608],{},[458,610,460],{},": leaf, text block, hierarchical block (retired)",[418,613,614,450,617,619,620,623,624,626,628],{},[432,615,616],{},"Container block",[452,618],{},"\nA Block that can hold other Blocks, each addressable, movable and convertible on its own. A Container block with no children yet stays a Container block. Container is a classification of structure, not a Block type; it maps to the container capability (",[422,621,622],{},"editorBlockContainer",").",[452,625],{},[458,627,460],{},": group, wrapper, hierarchical block (retired)",[418,630,631,450,634,636,637,639,641,642,645],{},[432,632,633],{},"Typed block",[452,635],{},"\nA Container block with a Block type: a title, description and tags followed by a body, with the properties and capabilities its Block type defines.",[452,638],{},[458,640,460],{},": composite block (code name ",[422,643,644],{},"composite","), Baustein (legacy UI label), section, card",[418,647,648,450,651,653,654,656,658],{},[432,649,650],{},"Host block",[452,652],{},"\nA Block contributed by the Host rather than by the Editor library.",[452,655],{},[458,657,460],{},": custom node",[418,660,661,450,664,666,667,669,671],{},[432,662,663],{},"Block type",[452,665],{},"\nThe domain type of a Typed block (e.g. Folder, Document, Task, Note, Recording, Rendition): its exact kind. It defines the block's Property definitions, its Accepted children, its Source media types and its AI brief; it is not a structural classification such as simple or container.",[452,668],{},[458,670,460],{},": Baustein kind (legacy UI label), composite kind, node type, block feature (Feature is a composition term)",[418,673,674,450,677,679,680,682,684],{},[432,675,676],{},"Block capabilities",[452,678],{},"\nWhat a Block supports: being a container, holding Source media, holding Derived blocks, holding Block references, carrying a Bibliographic record, carrying typed properties. The Block's structural role sets the base; its Block type adds or narrows capabilities. A capability is support, not content: a block that may hold a source need not hold one. Comments are not a capability: they attach to text, not to a Block.",[452,681],{},[458,683,460],{},": block features, abilities",[418,686,687,450,690,692,693,695,697],{},[432,688,689],{},"Block actions",[452,691],{},"\nThe operations a user can run on one Block: standard actions every Block has (duplicate, delete, move, convert), actions a capability brings (transcribe a Source, derive a Rendition, cite a Bibliographic record) and actions a Block type brings (fill with AI). An action is offered only where the Block has the capabilities it needs and its place in the Document has the Ability it needs; one Ability can gate many actions.",[452,694],{},[458,696,460],{},": commands (code name for the keyboard-level API), block menu (the rendering)",[418,699,700,450,703,705,706,709,710,712,714],{},[432,701,702],{},"Ability",[452,704],{},"\nWhat may be done at one place in a Document, decided by the Blocks around it: each Block grants or revokes abilities for what it holds (no headings inside a code block, no text editing inside media), and the Host sets the starting set for a Surface session. Abilities gate what the editor offers there: toolbar and ",[422,707,708],{},"\u002F"," entries, shortcuts and Markdown shortcuts, suggestions, AI help and Block actions. They decide what is offered, not what may be written: pasted, dropped and collaborators' edits are not checked, and they know nothing of users beyond the starting set the Host chooses. A capability says what a Block is, an Ability what may be done at a place, an action what the user runs.",[452,711],{},[458,713,460],{},": permission, right, role, capability",[418,716,717,450,720,722,723,725,727],{},[432,718,719],{},"Block properties",[452,721],{},"\nThe values that describe a Block, e.g. title, status or language. A property is a concrete value, not the definition of what may be set.",[452,724],{},[458,726,460],{},": attributes, metadata, fields",[418,729,730,450,733,735,736,738,740],{},[432,731,732],{},"Property definition",[452,734],{},"\nThe declaration of one property a Block may carry: key, label and value type (text, date, select, reference, bibliography, ...). One mechanism for every Block; Block types declare them, and today only Typed blocks store property values.",[452,737],{},[458,739,460],{},": meta field, schema field",[418,742,743,450,746,748,749,751,753],{},[432,744,745],{},"Block contents",[452,747],{},"\nThe items a Block actually holds: nested Blocks and, where its capabilities allow, Source media, Derived blocks and references. Contents are what is present; capabilities are what is supported.",[452,750],{},[458,752,460],{},": children (alone), payload",[418,755,756,450,759,761,762,764,766],{},[432,757,758],{},"Accepted children",[452,760],{},"\nThe Block types a Block type lets you nest inside it: a list of types, or all. The rule covers only Typed blocks inside Typed blocks, not paragraphs, lists or other Blocks. Without a setting, Folder and Document accept all and every other type accepts none. The Document tree and the editor apply the same rule to new moves; existing nesting is left alone.",[452,763],{},[458,765,460],{},": allowed content, drop targets",[418,768,769,450,772,774,775,777,779],{},[432,770,771],{},"Document block type",[452,773],{},"\nThe built-in Block type, Document, for a document-like unit inside a structure of Typed blocks, such as an imported file; it is not the Document itself. It is an ordinary Block type: what it accepts, whether it can be exported and which imported files become one are settings of its capabilities, never a rule on its name.",[452,776],{},[458,778,460],{},": document (alone, for the type)",[418,781,782,450,785,787,788,790,792],{},[432,783,784],{},"Structure mode",[452,786],{},"\nThe user's choice of how Documents are structured: Structure mode nests Typed blocks, Flat mode uses Markdown headings.",[452,789],{},[458,791,460],{},": composite mode, heading mode",[441,794,796],{"id":795},"sources-derivation-and-references","Sources, derivation and references",[418,798,799,450,802,804,805,807,809],{},[432,800,801],{},"Source media",[452,803],{},"\nThe original image, audio, video or file kept as a media Block inside the Block that holds it.",[452,806],{},[458,808,460],{},": attachment, asset, source (alone, when the holding block is meant)",[418,811,812,450,815,817,818,820,822],{},[432,813,814],{},"Source",[452,816],{},"\nThe capability of holding Source media. A Block type declares which media types its Source may be.",[452,819],{},[458,821,460],{},": source block, source-bearing block, recording block (that is one Block type with the Source capability)",[418,824,825,450,828,830,831,833,835],{},[432,826,827],{},"Derivation",[452,829],{},"\nThe record a Derived block keeps of where it came from: the original Block, the method (transcription, OCR, AI description, ...), the model and the time. The link to the original stays with the Derived block; the original can list its Derived blocks.",[452,832],{},[458,834,460],{},": provenance (the UI label), lineage, history",[418,837,838,450,841,843,844,846,848],{},[432,839,840],{},"Derived block",[452,842],{},"\nA Block that carries a Derivation, whatever its Block type.",[452,845],{},[458,847,460],{},": rendition (that is one Block type), child, copy",[418,850,851,450,854,856,857,859,861],{},[432,852,853],{},"Rendition",[452,855],{},"\nThe Block type for a readable version of a Source: transcript, full text or description. Shown as Readable rendition in the UI.",[452,858],{},[458,860,460],{},": Lesefassung (legacy UI label), transcript (that is one method)",[418,863,864,450,867,869,870,872,874],{},[432,865,866],{},"Block reference",[452,868],{},"\nA property value that points to another Block by its block ID; a Property definition may limit the target Block types.",[452,871],{},[458,873,460],{},": link, pointer, relation",[418,876,877,450,880,882,883,885,887],{},[432,878,879],{},"Bibliographic record",[452,881],{},"\nA CSL-JSON description of a publication that a Block carries; the Block's ID and title are not part of it.",[452,884],{},[458,886,460],{},": citation, bib, metadata",[418,889,890,450,893,895,896,898,900],{},[432,891,892],{},"Basket",[452,894],{},"\nOne named colour group, defined by the Host, that a Typed block can be put into; not a saved filter.",[452,897],{},[458,899,460],{},": Korb (legacy UI label), colour label, tag",[441,902,113],{"id":903},"ai",[418,905,906,450,909,911,912,914,916],{},[432,907,908],{},"Model preset",[452,910],{},"\nA server-defined endpoint and model configuration, identified by preset ID; its key stays on the server.",[452,913],{},[458,915,460],{},": preset (alone, that is an Editor preset), server preset",[418,918,919,450,922,924,925,927,929],{},[432,920,921],{},"Model profile",[452,923],{},"\nThe client-visible model record (ID, label, endpoint, model) that comes from a Model preset or from the user; it never carries a key.",[452,926],{},[458,928,460],{},": model config, connection",[418,931,932,450,935,937,938,940,942],{},[432,933,934],{},"Model reference",[452,936],{},"\nThe selector sent with an AI request: a Model preset ID, or an endpoint with model and its own key.",[452,939],{},[458,941,460],{},": ref, model id",[418,944,945,450,948,950,951,953,955],{},[432,946,947],{},"Model role",[452,949],{},"\nThe category of AI work (complete, rewrite, generate) that settings assign a Model profile to.",[452,952],{},[458,954,460],{},": slot (code name), task type",[418,957,958,450,961,963,964,966,968],{},[432,959,960],{},"AI brief",[452,962],{},"\nWhat a Block type tells the model: its purpose, instructions and the AI content template.",[452,965],{},[458,967,460],{},": prompt, kind ai",[418,970,971,450,974,976,977,979,981],{},[432,972,973],{},"AI content template",[452,975],{},"\nThe Markdown target text with placeholders that a Block type supplies when AI fills a Typed block of that type.",[452,978],{},[458,980,460],{},": skeleton (code name), Vorlage (legacy UI label)",[418,983,984,450,987,989,990,992,994],{},[432,985,986],{},"Proposed change",[452,988],{},"\nOne change the model proposes to a Document (replace, blocks, insert or delete); it can contain several Review hunks.",[452,991],{},[458,993,460],{},": edit, operation, diff",[418,996,997,450,1000,1002,1003,1005,1007],{},[432,998,999],{},"Review hunk",[452,1001],{},"\nOne reviewable difference of a Proposed change that the user accepts or rejects.",[452,1004],{},[458,1006,460],{},": chunk, suggestion",[418,1009,1010,450,1013,1015,1016,1018,1020],{},[432,1011,1012],{},"Review",[452,1014],{},"\nOne round of deciding the Review hunks of a set of Proposed changes; it ends once every hunk is decided.",[452,1017],{},[458,1019,460],{},": AI review (unless contrasted with a human review), approval",[441,1022,1024],{"id":1023},"panels-and-menus","Panels and menus",[418,1026,1027,450,1030,1032,1033,1035,1037],{},[432,1028,1029],{},"Block inspector",[452,1031],{},"\nThe panel that shows either the Document facts or the Typed block under the caret, and edits its summary, properties and tags.",[452,1034],{},[458,1036,460],{},": details panel, settings panel",[418,1039,1040,450,1043,1045,1046,1048,1050],{},[432,1041,1042],{},"Document facts",[452,1044],{},"\nThe Document section of the Block inspector: the Document's own title, properties and tags.",[452,1047],{},[458,1049,460],{},": document settings, document meta",[418,1052,1053,450,1056,1058,1059,1061,1063],{},[432,1054,1055],{},"Selection menu",[452,1057],{},"\nThe AI menu that runs a task on the selected text or at the caret and lets the user apply or discard the result. Labelled AI selection menu in the UI.",[452,1060],{},[458,1062,460],{},": bubble menu (the rendering), AI popup",[418,1065,1066,450,1068,1070,1071,1073,1075],{},[432,1067,117],{},[452,1069],{},"\nThe navigation panel listing folders, Documents and each Document's Typed blocks; it moves, renames and reveals them, filters by type and title, and shows why a drop is refused.",[452,1072],{},[458,1074,460],{},": sidebar, file browser, outline (the Block outline is the part for one Document)",[418,1077,1078,450,1081,1083,1084,1086,1088],{},[432,1079,1080],{},"Block outline",[452,1082],{},"\nThe per-Document part of the Document tree: the hierarchy of a Document's Typed blocks, not every paragraph.",[452,1085],{},[458,1087,460],{},": outline (alone), table of contents",[418,1090,1091,450,1094,1096,1097,1099,1101],{},[432,1092,1093],{},"Comments margin",[452,1095],{},"\nThe column beside the editor that shows each comment thread next to the text it comments on; the active thread sits exactly at its text and the other threads move out of its way. Resolved threads stay hidden until the user shows them.",[452,1098],{},[458,1100,460],{},": comment sidebar, gutter",[418,1103,1104,450,1107,1109,1110,1112,1114],{},[432,1105,1106],{},"Orphaned thread",[452,1108],{},"\nA comment thread whose commented text was deleted; the margin shows it greyed out at the place where the text was. When undo brings the text back, the thread is attached to it again.",[452,1111],{},[458,1113,460],{},": dangling comment, lost comment",[441,1116,1118],{"id":1117},"collaboration-and-appearance","Collaboration and appearance",[418,1120,1121,450,1124,1126,1127,1129,1131],{},[432,1122,1123],{},"Author identity",[452,1125],{},"\nThe writing user's ID, name and colour, used for remote carets, author marks and comments.",[452,1128],{},[458,1130,460],{},": user, account",[418,1133,1134,450,1137,1139,1140,1142,1144],{},[432,1135,1136],{},"Collaboration session",[452,1138],{},"\nThe live connection of one Surface session to a Document's shared state.",[452,1141],{},[458,1143,460],{},": room, socket",[418,1146,1147,450,1150,1152,1153,1155,1157],{},[432,1148,1149],{},"Theme",[452,1151],{},"\nThe appearance a user picks for the editor; Default appearance is the choice that applies no Theme.",[452,1154],{},[458,1156,460],{},": Darstellung (legacy UI label), skin, style",[418,1159,1160,450,1163,1165,1166,1169,1170,1172,1174],{},[432,1161,1162],{},"Design tokens",[452,1164],{},"\nThe named CSS variables (",[422,1167,1168],{},"--sk-*",") the Editor library styles with; the Theme bridge maps them to the Host's UI variables.",[452,1171],{},[458,1173,460],{},": CSS vars, palette",[418,1176,1177,450,1180,1182,1183,1185,1187],{},[432,1178,1179],{},"UI kit",[452,1181],{},"\nThe set of widgets (buttons, inputs, overlays) a Host supplies to the Editor library's chrome.",[452,1184],{},[458,1186,460],{},": component library, design system",{"title":1189,"searchDepth":1190,"depth":1190,"links":1191},"",2,[1192,1193,1194,1195,1196,1197],{"id":443,"depth":1190,"text":444},{"id":572,"depth":1190,"text":573},{"id":795,"depth":1190,"text":796},{"id":903,"depth":1190,"text":113},{"id":1023,"depth":1190,"text":1024},{"id":1117,"depth":1190,"text":1118},"Terms used across the documentation: editor composition, document, block, source, AI and panel vocabulary.","md",null,{},{"icon":36},{"title":33,"description":1198},"E7flCLwWfCwIjaE17Y_RdRI_KXx58vrRkElWEhf8a2k",[1206,1208],{"title":29,"path":30,"stem":31,"description":1207,"icon":6,"children":-1},"Set up the simple editor in a Vite and React app: peers, Tailwind and shadcn tokens, EditorContextProvider, EditorSurface and SimpleEditor.",{"title":45,"path":46,"stem":47,"description":1209,"icon":48,"children":-1},"Build a meeting-notes editor in eight chapters: a simple editor, composed features, an own block, a backend with collaboration, AI, and the same editor on React.",1793213899099]