[{"data":1,"prerenderedAt":981},["ShallowReactive",2],{"navigation_docs":3,"-guides-collections":412,"-guides-collections-surround":976},[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":200,"body":414,"description":970,"extension":884,"links":971,"meta":972,"navigation":973,"path":201,"seo":974,"stem":202,"__hash__":975},"docs\u002F3.guides\u002F30.collections.md",{"type":415,"value":416,"toc":964},"minimark",[417,439,464,469,480,553,560,661,682,693,697,704,725,762,780,858,862,873,877,880,924,960],[418,419,420,421,425,426,430,431,434,435,438],"p",{},"A ",[422,423,424],"strong",{},"collection"," is a ",[427,428,429],"a",{"href":110},"Typed block"," of the Block type ",[432,433,424],"code",{}," that lists other Blocks, in an order the user sets. It points at its Blocks and holds none of them: removing an entry, or the collection, never touches the Block. A reading list, the Blocks of a chapter that live in several Documents, or the hits of a ",[427,436,437],{"href":239},"query"," a person curated are collections.",[418,440,441,444,445,447,448,451,452,455,456,459,460,463],{},[432,442,443],{},"defaultBlockTypes(t)"," lists the type (label „Sammlung“ \u002F \"Collection\", icon ",[432,446,203],{},", capabilities ",[432,449,450],{},"container"," with ",[432,453,454],{},"'all'",", the colour basket, ",[432,457,458],{},"properties"," and ",[432,461,462],{},"export","), so a host that spreads the built-in list has it.",[465,466,468],"h2",{"id":467},"what-a-collection-stores","What a collection stores",[418,470,471,472,475,476,479],{},"Two ",[427,473,474],{"href":176},"Block properties"," in the Typed block's ",[432,477,478],{},"meta",":",[481,482,483,499],"table",{},[484,485,486],"thead",{},[487,488,489,493,496],"tr",{},[490,491,492],"th",{},"Key",[490,494,495],{},"Type",[490,497,498],{},"Meaning",[500,501,502,534],"tbody",{},[487,503,504,510,515],{},[505,506,507],"td",{},[432,508,509],{},"items",[505,511,512],{},[432,513,514],{},"reference-list",[505,516,517,518,521,522,525,526,529,530,533],{},"the entries, in order: ",[432,519,520],{},"BlockAddress[]"," (",[432,523,524],{},"{ documentId, blockId }","; ",[432,527,528],{},"documentId"," ",[432,531,532],{},"''"," is a Block of this Document)",[487,535,536,540,546],{},[505,537,538],{},[432,539,437],{},[505,541,542,545],{},[432,543,544],{},"text",", hidden",[505,547,548,549,552],{},"an optional ",[432,550,551],{},"DataQuery"," as JSON text, for „Aus Abfrage füllen“; the properties form never shows it",[418,554,555,556,559],{},"The framework-free functions in ",[432,557,558],{},"@skaile\u002Fforge-editor\u002Fcomposites"," read and build these values:",[561,562,567],"pre",{"className":563,"code":564,"language":565,"meta":566,"style":566},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { collectionItemsOf, collectionQueryOf, withCollectionItems } from '@skaile\u002Fforge-editor\u002Fcomposites'\n\ncollectionItemsOf(node)          \u002F\u002F BlockAddress[]; entries that are no valid address are dropped\ncollectionQueryOf(node)          \u002F\u002F DataQuery | null; null for no query, bad JSON or a query that names no Block type\nwithCollectionItems(node, items) \u002F\u002F a copy of node's meta with `items` as its list; an empty list removes the key\n","ts","",[432,568,569,612,619,633,644],{"__ignoreMap":566},[570,571,574,578,582,586,589,592,594,597,600,603,606,609],"span",{"class":572,"line":573},"line",1,[570,575,577],{"class":576},"s7zQu","import",[570,579,581],{"class":580},"sMK4o"," {",[570,583,585],{"class":584},"sTEyZ"," collectionItemsOf",[570,587,588],{"class":580},",",[570,590,591],{"class":584}," collectionQueryOf",[570,593,588],{"class":580},[570,595,596],{"class":584}," withCollectionItems",[570,598,599],{"class":580}," }",[570,601,602],{"class":576}," from",[570,604,605],{"class":580}," '",[570,607,558],{"class":608},"sfazB",[570,610,611],{"class":580},"'\n",[570,613,615],{"class":572,"line":614},2,[570,616,618],{"emptyLinePlaceholder":617},true,"\n",[570,620,622,626,629],{"class":572,"line":621},3,[570,623,625],{"class":624},"s2Zo4","collectionItemsOf",[570,627,628],{"class":584},"(node)          ",[570,630,632],{"class":631},"sHwdD","\u002F\u002F BlockAddress[]; entries that are no valid address are dropped\n",[570,634,636,639,641],{"class":572,"line":635},4,[570,637,638],{"class":624},"collectionQueryOf",[570,640,628],{"class":584},[570,642,643],{"class":631},"\u002F\u002F DataQuery | null; null for no query, bad JSON or a query that names no Block type\n",[570,645,647,650,653,655,658],{"class":572,"line":646},5,[570,648,649],{"class":624},"withCollectionItems",[570,651,652],{"class":584},"(node",[570,654,588],{"class":580},[570,656,657],{"class":584}," items) ",[570,659,660],{"class":631},"\u002F\u002F a copy of node's meta with `items` as its list; an empty list removes the key\n",[418,662,663,665,666,669,670,673,674,677,678,681],{},[432,664,638],{}," checks only the shape (",[432,667,668],{},"v: 1",", a ",[432,671,672],{},"blocks"," source that names a Block type). Which fields exist is the job of ",[432,675,676],{},"validateQuery","; the route answers ",[432,679,680],{},"422"," with the issues when the stored query is wrong.",[418,683,684,685,688,689,692],{},"Write the list through ",[432,686,687],{},"setBlockProperty"," (or ",[432,690,691],{},"setCollectionItems(editor, blockId, items)",", which does that): it writes the one key, so two collaborators who edit different keys of the same block keep both changes.",[465,694,696],{"id":695},"the-view","The view",[418,698,699,700,703],{},"Both bindings supply a node view for the collection (",[432,701,702],{},"CompositeNodeViews.collection","): the usual Typed block view with the entries below its content.",[705,706,707,715,718],"ul",{},[708,709,710,711,714],"li",{},"Every entry is a reference pill with the title of its Block (an entry whose Block is gone shows „Block gelöscht“). A click reveals the Block in the open Document, or opens it in its own Document through the host's ",[432,712,713],{},"openBlock",".",[708,716,717],{},"Move up, move down and remove buttons appear beside an entry while the editor is editable.",[708,719,720,721,724],{},"„Aus Abfrage füllen“ shows when the collection has a stored query and ",[432,722,723],{},"backend.index.query"," exists. It runs the query, appends the hits that are not listed yet in the order of the answer, and tells the user how many it added (a collection never lists itself). A failed query leaves the list as it is and says why.",[418,726,727,728,521,731,734,735,734,738,734,741,744,745,459,748,751,752,754,755,758,759,714],{},"The view is ",[432,729,730],{},"features\u002Fcomposites\u002Fcollection-model.ts",[432,732,733],{},"collectionViewOf",", ",[432,736,737],{},"moveCollectionItem",[432,739,740],{},"removeCollectionItem",[432,742,743],{},"fillCollectionFromQuery","), shared by ",[432,746,747],{},"CollectionView.vue",[432,749,750],{},"CollectionView.tsx",". A binding that renders no live content leaves ",[432,753,424],{}," out of ",[432,756,757],{},"nodeViews","; the collection then renders as any Typed block and its entries stay in ",[432,760,761],{},"meta.items",[418,763,764,765,521,768,770,771,459,774,776,777,779],{},"Both bindings pass ",[432,766,767],{},"typedBlockViewOptions",[432,769,558],{},") to the renderer of ",[432,772,773],{},"typedBlock",[432,775,424],{},", so a block whose Block type changes gets the view of its new type. A host that builds its own ",[432,778,757],{}," does the same:",[561,781,783],{"className":563,"code":782,"language":565,"meta":566,"style":566},"compositeNodes({\n  typedBlock: VueNodeViewRenderer(CompositeView, typedBlockViewOptions),\n  collection: VueNodeViewRenderer(CollectionView, typedBlockViewOptions),\n  reference: VueNodeViewRenderer(ReferenceView),\n})\n",[432,784,785,796,818,836,850],{"__ignoreMap":566},[570,786,787,790,793],{"class":572,"line":573},[570,788,789],{"class":624},"compositeNodes",[570,791,792],{"class":584},"(",[570,794,795],{"class":580},"{\n",[570,797,798,802,804,807,810,812,815],{"class":572,"line":614},[570,799,801],{"class":800},"swJcz","  typedBlock",[570,803,479],{"class":580},[570,805,806],{"class":624}," VueNodeViewRenderer",[570,808,809],{"class":584},"(CompositeView",[570,811,588],{"class":580},[570,813,814],{"class":584}," typedBlockViewOptions)",[570,816,817],{"class":580},",\n",[570,819,820,823,825,827,830,832,834],{"class":572,"line":621},[570,821,822],{"class":800},"  collection",[570,824,479],{"class":580},[570,826,806],{"class":624},[570,828,829],{"class":584},"(CollectionView",[570,831,588],{"class":580},[570,833,814],{"class":584},[570,835,817],{"class":580},[570,837,838,841,843,845,848],{"class":572,"line":635},[570,839,840],{"class":800},"  reference",[570,842,479],{"class":580},[570,844,806],{"class":624},[570,846,847],{"class":584},"(ReferenceView)",[570,849,817],{"class":580},[570,851,852,855],{"class":572,"line":646},[570,853,854],{"class":580},"}",[570,856,857],{"class":584},")\n",[465,859,861],{"id":860},"add-a-block-from-anywhere","Add a Block from anywhere",[418,863,864,865,868,869,872],{},"The block action ",[432,866,867],{},"collection-add"," („Zu Sammlung hinzufügen“, Ability ",[432,870,871],{},"composite.meta",") is on every Typed block. Its menu lists the collections of the open Document by title (one that holds the Block already is disabled; the action is hidden when the Document has no other collection), and choosing one appends the Block's address.",[465,874,876],{"id":875},"markdown-export","Markdown export",[418,878,879],{},"The Markdown form of a collection lists its entries as reference lines, one chip per paragraph, in the stored order:",[561,881,885],{"className":882,"code":883,"language":884,"meta":566,"style":566},"language-md shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Lesestoff\n\n[@3f0c…]\n\n[@doc-9#a41b…]\n","md",[432,886,887,896,900,911,915],{"__ignoreMap":566},[570,888,889,892],{"class":572,"line":573},[570,890,891],{"class":580},"# ",[570,893,895],{"class":894},"sBMFI","Lesestoff\n",[570,897,898],{"class":572,"line":614},[570,899,618],{"emptyLinePlaceholder":617},[570,901,902,905,908],{"class":572,"line":621},[570,903,904],{"class":580},"[",[570,906,907],{"class":608},"@3f0c…",[570,909,910],{"class":580},"]\n",[570,912,913],{"class":572,"line":635},[570,914,618],{"emptyLinePlaceholder":617},[570,916,917,919,922],{"class":572,"line":646},[570,918,904],{"class":580},[570,920,921],{"class":608},"@doc-9#a41b…",[570,923,910],{"class":580},[418,925,926,927,930,931,934,935,734,938,941,942,945,946,949,950,953,954,956,957,714],{},"An entry in another Document carries the Document first (",[432,928,929],{},"[@\u003CdocumentId>#\u003CblockId>]","), the same form as a ",[427,932,933],{"href":110},"reference chip",". ",[432,936,937],{},"documentCompositeMarkdown",[432,939,940],{},"headingsMarkdown"," and the ",[432,943,944],{},"markdown"," render target all go through ",[432,947,948],{},"compositeChromeBlocks",", which appends ",[432,951,952],{},"collectionItemBlocks(schema, node)"," for a collection. The meta line leaves out hidden properties (the stored query) and ",[432,955,514],{}," properties, so neither shows as ",[432,958,959],{},"[object Object]",[961,962,963],"style",{},"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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":566,"searchDepth":614,"depth":614,"links":965},[966,967,968,969],{"id":467,"depth":614,"text":468},{"id":695,"depth":614,"text":696},{"id":860,"depth":614,"text":861},{"id":875,"depth":614,"text":876},"The collection Block type: its items and stored query, the node view with reorder and „Aus Abfrage füllen“, the block action that adds a Block, and the Markdown export.",null,{},{"icon":203},{"title":200,"description":970},"Rt68j8xj6eI6YJMG5DGYJmdV7vuGigc3yGbLOimKlpY",[977,979],{"title":195,"path":196,"stem":197,"description":978,"icon":198,"children":-1},"The single seam between the package and the host: ports for identity, documents, Yjs state, assets, settings, themes and AI models.",{"title":205,"path":206,"stem":207,"description":980,"icon":208,"children":-1},"The dataView Block type: its stored query and layout, the three layouts and what a board needs, how the view asks and refreshes, \u002Fansicht, and the Typed blocks table as the table layout.",1793178234223]