[{"data":1,"prerenderedAt":385},["ShallowReactive",2],{"quirekit-doc:\u002Fen\u002Fplugins\u002Freference\u002Fblock-interaction":3},{"id":4,"title":5,"body":6,"description":12,"extension":372,"keywords":373,"locale":376,"meta":377,"navigation":378,"order":379,"path":380,"section":381,"seo":382,"stem":383,"__hash__":384},"docs\u002Fplugins\u002Freference\u002Fblock-interaction.en.md","BlockInteraction",{"type":7,"value":8,"toc":356},"minimark",[9,13,24,29,35,88,96,100,116,124,148,155,159,162,165,169,175,179,182,188,194,197,200,204,209,213,216,221,226,229,232,237,242,246,249,254,259,263,266,316,324,328,339,352],[10,11,12],"p",{},"Assigns stable block identities and provides select, move and insert commands. Product UI supplies drag handles.",[10,14,15,19,20],{},[16,17,18],"code",{},"@quirekit\u002Fextensions"," · ",[21,22,23],"strong",{},"MIT",[25,26,28],"h2",{"id":27},"editor-compatibility","Editor compatibility",[10,30,31,32],{},"Layer：",[21,33,34],{},"Shared document capability",[36,37,38,54],"table",{},[39,40,41],"thead",{},[42,43,44,48,51],"tr",{},[45,46,47],"th",{},"Editor",[45,49,50],{},"Status",[45,52,53],{},"Assembly and boundaries",[55,56,57,74],"tbody",{},[42,58,59,63,66],{},[60,61,62],"td",{},"Classic",[60,64,65],{},"Supported",[60,67,68,73],{},[69,70,72],"a",{"href":71},"\u002Fen\u002Fplugins\u002Freference\u002Fclassic-editor-preset","classicEditorPreset"," — Use the product-neutral classicEditorPreset without duplicating installed capabilities. The Word preset replaces paragraphs, headings and container lists; do not stack generic structures onto that model.",[42,75,76,79,81],{},[60,77,78],{},"Block",[60,80,65],{},[60,82,83,87],{},[69,84,86],{"href":85},"\u002Fen\u002Fplugins\u002Freference\u002Fcreate-block-editor-preset","createBlockEditorPreset"," — The default createBlockEditor preset installs this capability. Configure the corresponding preset child; graphic editing uses the preset's workspace ports, while persistence and assets remain host-owned. Avoid duplicate extensions.",[10,89,90,91,95],{},"“Supported” means the product assembly above exists; interaction, host services and file formats retain their own conditions. See ",[69,92,94],{"href":93},"\u002Fen\u002Fplugins\u002Fcompatibility","status and integration rules",". Licensing is shown separately.",[25,97,99],{"id":98},"installation","Installation",[101,102,107],"pre",{"className":103,"code":104,"language":105,"meta":106,"style":106},"language-sh shiki shiki-themes github-light github-light github-dark","pnpm add @quirekit\u002Fextensions@alpha\n","sh","",[16,108,109],{"__ignoreMap":106},[110,111,114],"span",{"class":112,"line":113},"line",1,[110,115,104],{},[10,117,118,119,123],{},"Install in Editor extensions. The host supplies a view, container and persistence; see ",[69,120,122],{"href":121},"\u002Fen\u002Fguide\u002Fquick-start","Quick start",".",[101,125,129],{"className":126,"code":127,"language":128,"meta":106,"style":106},"language-ts shiki shiki-themes github-light github-light github-dark","import { BlockInteraction } from '@quirekit\u002Fextensions'\n","ts",[16,130,131],{"__ignoreMap":106},[110,132,133,137,141,144],{"class":112,"line":113},[110,134,136],{"class":135},"sDD9d","import",[110,138,140],{"class":139},"sVPnS"," { BlockInteraction } ",[110,142,143],{"class":135},"from",[110,145,147],{"class":146},"s-HEn"," '@quirekit\u002Fextensions'\n",[10,149,150,151,123],{},"Use compatible versions available from your distribution source. This site uses the Alpha workspace. License labels come from package metadata; see ",[69,152,154],{"href":153},"\u002Fen\u002Fsupport","support and licensing",[25,156,158],{"id":157},"integration-by-editor","Integration by editor",[10,160,161],{},"These snippets use an existing host element named element. The host owns container sizing and persistence; call instance.destroy() on teardown. Avoid duplicating preset capabilities and supply required host ports before installation.",[163,164],"plugin-integration",{"name":5},[25,166,168],{"id":167},"configuration","Configuration",[10,170,171,172,123],{},"These are extension-level defaults. Presets can override them; they are distinct from current document attributes. See ",[69,173,167],{"href":174},"\u002Fen\u002Fplugins\u002Fconfiguration",[176,177,178],"h3",{"id":178},"types",[10,180,181],{},"Block types whose complete subtrees can be moved.",[10,183,184,185],{},"Type：",[16,186,187],{},"readonly string[]",[10,189,190,191],{},"Default：",[16,192,193],{},"[\"paragraph\", \"heading\", \"codeBlock\", \"blockquote\", \"bulletList\", \"orderedList\", \"horizontalRule\", \"table\"]",[176,195,196],{"id":196},"scopes",[10,198,199],{},"Allowed direct parents; nested unlisted parents remain unavailable.",[10,201,184,202],{},[16,203,187],{},[10,205,190,206],{},[16,207,208],{},"[\"doc\"]",[176,210,212],{"id":211},"createid","createId",[10,214,215],{},"Allocates an opaque identity for a newly created block.",[10,217,184,218],{},[16,219,220],{},"(): string",[10,222,190,223],{},[16,224,225],{},"createBlockId",[176,227,228],{"id":228},"admit",[10,230,231],{},"Live feature policy; null permits the candidate.",[10,233,184,234],{},[16,235,236],{},"(context: BlockAdmissionContext): BlockRejection | null",[10,238,190,239],{},[16,240,241],{},"() => null",[176,243,245],{"id":244},"requireportableidentity","requirePortableIdentity",[10,247,248],{},"Declares durable external references requiring a portable export projection.",[10,250,184,251],{},[16,252,253],{},"boolean",[10,255,190,256],{},[16,257,258],{},"false",[25,260,262],{"id":261},"commands-and-runtime","Commands and runtime",[10,264,265],{},"These commands are supplied directly by this extension. Availability depends on the installed schema, selection and protection policy; query editor.can() first.",[36,267,268,278],{},[39,269,270],{},[42,271,272,275],{},[45,273,274],{},"Command",[45,276,277],{},"Parameter signature",[55,279,280,292,304],{},[42,281,282,287],{},[60,283,284],{},[16,285,286],{},"selectBlockRange",[60,288,289],{},[16,290,291],{},"selectBlockRange(range: BlockRangeRef | null)",[42,293,294,299],{},[60,295,296],{},[16,297,298],{},"moveBlockRange",[60,300,301],{},[16,302,303],{},"moveBlockRange(request: BlockMoveRequest)",[42,305,306,311],{},[60,307,308],{},[16,309,310],{},"insertBlockAt",[60,312,313],{},[16,314,315],{},"insertBlockAt(request: BlockInsertRequest)",[10,317,318,319,323],{},"These are parameter signatures. See ",[69,320,322],{"href":321},"\u002Fen\u002Fbuild\u002Fcommands","commands and controls"," to connect UI while retaining one transaction\u002Fhistory authority.",[25,325,327],{"id":326},"next-steps","Next steps",[10,329,330,331,335,336,338],{},"Return to ",[69,332,334],{"href":333},"\u002Fen\u002Fplugins","all plugins",", or read ",[69,337,167],{"href":174}," to distinguish options, attributes and commands.",[10,340,341,342,346,347,351],{},"See ",[69,343,345],{"href":344},"\u002Fen\u002Fbuild\u002Fextension","extension development"," for custom capabilities and ",[69,348,350],{"href":349},"\u002Fen\u002Fbuild","Build a product"," for complete hosting.",[353,354,355],"style",{},"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 .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 .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 .sDD9d, html code.shiki .sDD9d{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVPnS, html code.shiki .sVPnS{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s-HEn, html code.shiki .s-HEn{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#9ECBFF}",{"title":106,"searchDepth":357,"depth":357,"links":358},2,[359,360,361,362,370,371],{"id":27,"depth":357,"text":28},{"id":98,"depth":357,"text":99},{"id":157,"depth":357,"text":158},{"id":167,"depth":357,"text":168,"children":363},[364,366,367,368,369],{"id":178,"depth":365,"text":178},3,{"id":196,"depth":365,"text":196},{"id":211,"depth":365,"text":212},{"id":228,"depth":365,"text":228},{"id":244,"depth":365,"text":245},{"id":261,"depth":357,"text":262},{"id":326,"depth":357,"text":327},"md",[5,18,374,375,178,196,212,228,245,286,298,310,5],"块选择与移动","behavior","en",{"navigationTitle":5,"license":23},true,13,"\u002Fen\u002Fplugins\u002Freference\u002Fblock-interaction","Editing behavior",{"title":5,"description":12},"plugins\u002Freference\u002Fblock-interaction.en","vWr-7vF6sYlKfCE3jzo2ObtsC7T8nYwAiCbqFzliDtQ",1793045227998]