window.typograph.set_interactive(false) had no effect in the new viewer when the host
supplies its own mouse manager. View-only embeds built on the new bundle stayed fully
interactive; they now honour the call, and interactive:false in the setup object, as before.edit_options block that forbade everything, and the viewer obeyed it. Nothing can author those
options yet, so a block in a file today was not written by anyone deciding what a user may do: it
came from a converter, or from an older build that stamped a preset onto every element when a
document was opened and then wrote it out on save. Until the editor offers a way to author them,
the library ignores whatever a document carries and applies its own defaults — which in the
viewer allow selecting, editing text, and moving, scaling and rotating an image inside its frame.
Opening and saving an affected template also clears the block out of the file.set_zoom(), which a host can call at any time.<hr> and file inputs restyled, and had
every element on it reset to content-box — overriding a border-box layout. All four are now
confined to the editor's own subtree. Reported by an integrator embedding the viewer.
typograph, and the
stylesheet is scoped to it. It is also the selector to use if you want to restyle the
interface from your page: .typograph .toolbar { … }.overflow: hidden, background — is applied to <body> only
when Typograph is the page, through the class typograph-page, and removed on destroy().
A full-page editor is unchanged; a page that only embeds one keeps its own.window.typograph.find(needle, options) returns every occurrence as
{ element_uuid, page_index, paragraph_index, char_offset, length }.window.typograph.replace_all(needle, replacement, options) returns how many it replaced, as
one undo step.options takes case_sensitive, whole_word, and page_index or element_uuid to narrow
the search.\n splits the paragraph. Table cells are excluded, so a count of 0 does not prove
the document is free of the needle.