[{"data":1,"prerenderedAt":384},["ShallowReactive",2],{"quirekit-doc:\u002Fen\u002Fapi\u002Fview":3},{"id":4,"title":5,"body":6,"description":372,"extension":373,"keywords":374,"locale":375,"meta":376,"navigation":377,"order":378,"path":379,"section":380,"seo":381,"stem":382,"__hash__":383},"docs\u002Fapi\u002Fview.en.md","View: adapters and workspace options",{"type":7,"value":8,"toc":365},"minimark",[9,14,29,121,125,128,131,135,295,306,310,346,353],[10,11,13],"h2",{"id":12},"register-and-select","Register and select",[15,16,17,18,22,23,28],"p",{},"Canvas\u002FSVG hosts also import ",[19,20,21],"code",{},"@quirekit\u002Fview\u002Fstyles.css"," for base positioning of content, overlay and input layers. The host supplies its theme and workspace dimensions; standalone Core integration does not depend on Classic product CSS. The complete source and ",[24,25,27],"a",{"href":26},"\u002Fen\u002Fbuild\u002Fview","mounting guide"," include this import.",[30,31,32,48],"table",{},[33,34,35],"thead",{},[36,37,38,42,45],"tr",{},[39,40,41],"th",{},"Backend",[39,43,44],{},"Registration",[39,46,47],{},"Meaning",[49,50,51,67,82,102],"tbody",{},[36,52,53,59,64],{},[54,55,56],"td",{},[19,57,58],{},"canvas",[54,60,61],{},[19,62,63],{},"canvasViewExtension({ runtime })",[54,65,66],{},"Canvas content and View-owned input\u002Fgeometry",[36,68,69,74,79],{},[54,70,71],{},[19,72,73],{},"svg",[54,75,76],{},[19,77,78],{},"svgViewExtension({ runtime })",[54,80,81],{},"SVG surface with shared pagination semantics",[36,83,84,89,99],{},[54,85,86],{},[19,87,88],{},"html",[54,90,91,94,95,98],{},[19,92,93],{},"htmlViewExtension({ runtime })"," (",[19,96,97],{},"@quirekit\u002Fview-html",")",[54,100,101],{},"Retained continuous DOM flow, not native DOM view",[36,103,104,109,118],{},[54,105,106],{},[19,107,108],{},"dom",[54,110,111,114,115],{},[19,112,113],{},"DomViewExtension"," from ",[19,116,117],{},"@quirekit\u002Fdom-view",[54,119,120],{},"Separate native contenteditable adapter",[122,123],"docs-api",{"name":124},"canvasViewExtension",[122,126],{"name":127},"svgViewExtension",[122,129],{"name":130},"htmlViewExtension",[10,132,134],{"id":133},"common-canvas-runtime-options","Common Canvas runtime options",[30,136,137,150],{},[33,138,139],{},[36,140,141,144,147],{},[39,142,143],{},"Option",[39,145,146],{},"Purpose\u002Funit",[39,148,149],{},"Integration",[49,151,152,169,182,198,211,227,240,253,266,279],{},[36,153,154,163,166],{},[54,155,156,159,160],{},[19,157,158],{},"width"," \u002F ",[19,161,162],{},"height",[54,164,165],{},"Preferred surface size in CSS px",[54,167,168],{},"Not Word units or model page settings",[36,170,171,176,179],{},[54,172,173],{},[19,174,175],{},"pageStack",[54,177,178],{},"Per-page presentation",[54,180,181],{},"Profile\u002FEngine own pagination facts",[36,183,184,192,195],{},[54,185,186,159,189],{},[19,187,188],{},"scrollSource",[19,190,191],{},"scrollViewport",[54,193,194],{},"Scroll ownership",[54,196,197],{},"Use the same product viewport element",[36,199,200,205,208],{},[54,201,202],{},[19,203,204],{},"viewportPadding",[54,206,207],{},"Viewport padding in CSS px",[54,209,210],{},"Separate from document margins",[36,212,213,221,224],{},[54,214,215,159,218],{},[19,216,217],{},"devicePixelRatio",[19,219,220],{},"getDevicePixelRatio",[54,222,223],{},"Raster backing density",[54,225,226],{},"Not content zoom",[36,228,229,234,237],{},[54,230,231],{},[19,232,233],{},"surfaceConfig",[54,235,236],{},"Selection\u002Fobject presentation",[54,238,239],{},"Outside persisted content",[36,241,242,247,250],{},[54,243,244],{},[19,245,246],{},"mediaResolver",[54,248,249],{},"Stable asset references to resources",[54,251,252],{},"Match persistence\u002Fconversion resources",[36,254,255,260,263],{},[54,256,257],{},[19,258,259],{},"onRender",[54,261,262],{},"Completed mounted-render facts",[54,264,265],{},"Read layout snapshot without starting another layout",[36,267,268,273,276],{},[54,269,270],{},[19,271,272],{},"onVisiblePagesChange",[54,274,275],{},"Realized page set",[54,277,278],{},"Not total page count",[36,280,281,289,292],{},[54,282,283,159,286],{},[19,284,285],{},"textMeasurer",[19,287,288],{},"lineBreaker",[54,290,291],{},"Font measurement and line breaking",[54,293,294],{},"Need consistent verified policies",[15,296,297,298,301,302,305],{},"SVG has its own contract, including ",[19,299,300],{},"textMeasurementBackend: 'browser'",". Similar field names do not establish interchangeability; type-check each backend. Shared callbacks in the tutorial use ",[19,303,304],{},"QuireMountedViewRenderEvent",".",[10,307,309],{"id":308},"mounted-capabilities","Mounted capabilities",[15,311,312,315,316,319,320,323,324,327,328,331,332,327,335,338,339,327,342,345],{},[19,313,314],{},"editor.mountedView"," can be absent; ",[19,317,318],{},"editor.view"," needs an active primary view. Use ",[19,321,322],{},"focus()",", ",[19,325,326],{},"hasFocus()"," and ",[19,329,330],{},"scrollToSelection()"," for input\u002Fvisibility. ",[19,333,334],{},"coordsAtPos()",[19,336,337],{},"posAtCoords()"," use browser client CSS pixels. ",[19,340,341],{},"getCaretRect()",[19,343,344],{},"getTextRangeRects(range, sourceDocument)"," return geometry only when supported and current.",[15,347,348,349,352],{},"Where required, pass the captured immutable source document. A stale frame returning null\u002Funavailable is a valid refusal, not permission to hit-test new content with old coordinates. Subscribe to ",[19,350,351],{},"onGeometryUpdate()"," when needed and release its returned subscription.",[15,354,355,356,359,360,364],{},"See ",[24,357,358],{"href":26},"the mounting tutorial"," for the workspace, zoom and mode switching, and ",[24,361,363],{"href":362},"\u002Fen\u002Fapi\u002Feditor","Editor API"," for mount\u002FchangeMode options.",{"title":366,"searchDepth":367,"depth":367,"links":368},"",2,[369,370,371],{"id":12,"depth":367,"text":13},{"id":133,"depth":367,"text":134},{"id":308,"depth":367,"text":309},"Backend choice, runtime options, geometry queries and freshness.","md",null,"en",{},true,3,"\u002Fen\u002Fapi\u002Fview","API and reference",{"title":5,"description":372},"api\u002Fview.en","9_wOPYxRwsZpj3zQVuOI4WIOv_1ZTlefUD69s-CmuJU",1793045210071]