The builder’s output is a native Elementor element tree — containers, widgets and settings stored exactly the way Elementor itself stores them. Open any generated page in the Elementor editor and it is simply a page: move things, restyle them, delete them. No lock-in, no generated-image pages, no mystery markup.
liyans_build_layout turns a structured spec — sections, containers, widgets, settings — into a complete draft page in one call.
liyans_import_html converts existing HTML into native Elementor elements, preserving rich text instead of flattening it into a single text block.
liyans_import_visual_spec builds from a visual description of the design — the route to use when the starting point is a mock-up or a screenshot description rather than code.
Real sites are not one page. A build session holds a whole project — homepage, services, about, contact — as server-side state owned by your WordPress user. Start the session and the plan is validated first (slug conflicts are reported inline, before anything is written). Build pages one at a time, come back later, resume exactly where you left off, and finalise when the set is complete. Rebuilding a page inside a session snapshots the old layout first, so a change of mind is never a loss.
liyans_append_elements adds elements into a chosen container or at the page root; liyans_remove_element removes one element by id. Both snapshot the page first, so every edit is reversible.
liyans_get_elementor_widgets lists what is actually registered on your site — add-on packs included — and liyans_inspect_widget returns a widget’s live control schema: names, types and defaults, so the assistant builds with real settings instead of guesses.
liyans_theme_builder creates and updates Theme Builder templates, and liyans_list_templates inventories them. One honest bound: the plugin does not write Elementor Pro display conditions — assigning where a template appears stays a manual step in Elementor.
liyans_design_audit runs structural heuristics over the element tree and reads the active Elementor kit’s global colours and fonts. It is labelled structural — it judges the tree, not the pixels.
liyans_verify_layout validates the stored element tree: ids, nesting, widget types. liyans_render_check goes further — since 1.3.0 it renders the page for real, server-side (Elementor’s own renderer for drafts, plus an HTTP fetch of the published permalink), and checks that every element id and widget text is present in the rendered HTML.
An honest label: render check reports its mode (rendered or structural) in every result. It is rendered-output verification — it is not a screenshot or a pixel comparison, and it never claims to be. True screenshot verification would need an external rendering service, and the free core makes no external calls. That trade-off is deliberate, and it is documented in the roadmap.