=== Help4 Builder Suite ===
Contributors: help4network
Tags: page builder, templates, seo, local seo, commerce
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 3.0.27
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Visual builder with templates, icons, SEO, forms, commerce, performance, and security tools for WordPress.

== Description ==

Help4 Builder Suite is the plugin layer for the Help4 blank-theme workflow. It adds visual building, theme parts, starter templates, original multi-page Site Kits, SVG icons, layered sliders, professional content widgets, Website Snapshot blocks, forms, Help4 Commerce, payment routing, SEO, performance, and security tools.

Site Kits create reviewable draft pages, draft header/footer/404 templates, and an isolated navigation menu for local services, professional firms, creative studios, nonprofits, learning academies, memberships, native commerce, product businesses, real estate teams, clinics, WordPress providers, and editorial publishers. A kit never publishes content, replaces existing pages, changes the front page, or assigns global templates automatically. Applying the kit's global style tokens is a separate opt-in action protected against stale Studio sessions.

Commerce Indicator elements give headers and utility bars editable cart, wishlist, compare, notification, or add-on counts. Site owners can independently choose whether the indicator remains visible at zero and whether its quantity number is displayed when a count exists. Counts can come from server-side filters, browser storage, the native comparison tool, or documented live-update events without reloading the page.

Help4 Commerce products can use customer-selectable quantities or fixed one-unit cart lines. Fixed-line mode removes quantity controls from checkout, rejects altered quantities at the server, and preserves repeated configured bundles or packages as separate order lines. This is independent of the stricter one-per-order setting.

Help4 Email Marketing provides a self-hosted audience, campaign, reusable-template, dynamic-segment, and drip-automation workspace. Public signup forms require explicit consent and email confirmation before activation. Campaign preparation snapshots the intended audience, then a bounded queue applies the administrator's daily cap, retries transient failures, pauses when sender-readiness checks fail, and reports transport acceptance without claiming inbox delivery. Optional first-party open and click measurement uses signed links, filters known scanner activity, and is disabled by default. Global suppression, one-click unsubscribe, WordPress privacy export/erasure, and suggested privacy-policy text are built in. Prospect discovery, website research, and contact scraping are not part of this public module.

Help4 Dynamic Data connects posts, pages, public post properties, custom fields, taxonomy terms, authors, site information, Help4 Commerce products, product fields, and variants to Builder widgets through one validated source contract. Field groups include rich content, media, relationships, repeaters, taxonomy/users, computed formulas, validation rules, access controls, REST editing, stale-save protection, and isolated product-field storage. Private options, user details, request data, metadata, and commerce secrets remain denied by default.

Help4 SEO includes search and readability scoring, related-keyphrase coverage, a bounded sitewide internal-link graph, content-orphan and weak-link review candidates, preview-first migration from supported SEO plugins, resumable outbound-link health checks, international hreflang targeting, accessible Open Graph and X previews, global webmaster verification, connected schema, real-estate listing graphs, author expertise, breadcrumbs, image audits, redirects, 404 logging, RSS attribution, durable IndexNow queues, indexing health, and XML/video/news discovery. Its coverage report maps portable standards to international search engines, social networks, messaging clients, and collaboration previews without inventing vendor tags. Help4 Local SEO adds single or multiple business locations, categories, inherited business defaults, per-location overrides, split and special hours, service areas, maps, a responsive store finder, LocalBusiness-family schema, a location sitemap, and KML. These tools do not require a paid feature tier.

The companion Help4 Blank theme is a separate download because WordPress.org treats plugins and themes as separate packages. Download the current theme ZIP from https://help4wordpress.com/help4-blank/latest.zip or open https://help4wordpress.com/help4-blank-theme/ for screenshots, compatibility guidance, and installation steps.

The plugin does not send hidden Help4 telemetry, analytics beacons, or referral tracking. Product Insights installation reporting is disabled by default and begins only after a managing administrator reviews the exact payload and explicitly consents. Help4-owned marketing download routes count aggregate download starts without storing visitor IP addresses; those starts do not prove completion, activation, or continued use. Optional email-campaign engagement reporting is first-party, disabled by default, and runs only for campaigns sent after an administrator enables it. Other optional external services are used only after an administrator configures a feature, adds an embed, enters a feed/webhook/payment endpoint, or uses the live Help4 update channel.

== Installation ==

1. Upload the `help4-builder-suite` folder to `/wp-content/plugins/`.
2. Activate Help4 Builder Suite in WordPress.
3. If you want the clean blank-theme workflow, upload `help4-blank.zip` from https://help4wordpress.com/help4-blank/latest.zip under Appearance > Themes > Add New > Upload Theme.
4. Configure Builder Suite settings, then start with Site Kits, the template library, or the visual builder.

== Multisite ==

When the plugin is network activated, Network Admin > Help4 Network provides a dedicated control plane for Builder provisioning and search readiness across the current network.

* Existing and newly created sites receive their own Help4 database tables and version marker through bounded background provisioning.
* Network SEO defaults fill new or empty values without replacing settings owned by a site administrator. Super administrators can separately opt in to enforcement for a small allowlist of organization and discovery settings.
* Search verification tokens, customer data, payment data, and IndexNow keys are never shared across sites. Every public site that enables IndexNow receives its own key and queue.
* The sites table shows indexing status, sitemap destination, Builder usage, saved SEO-health results, IndexNow status, and per-site database readiness.
* Bulk actions can provision selected sites, apply defaults, queue a resumable SEO/sitemap audit, or queue a full IndexNow sweep. Health work runs one site per background step to avoid a network-wide request spike.
* Help4 preserves WordPress virtual per-site robots output on multisite. If a physical `robots.txt` exists at the shared WordPress root, Network Admin displays a warning because that one file can hide rules for mapped-domain or subdirectory sites.

== Add-on template ownership ==

Add-ons can filter `h4bs_builder_shared_template_ownership` for a content item and return `active`, `content_label`, `template_id`, `template_label`, optional `edit_url`, and `source`. One Edit action opens Studio with the current item in context. Registered item fields and design controls share that workspace; the primary save follows the active item inspector, and publishing shared design changes requires an impact confirmation. Keep client names, selectors, and business rules in the add-on; the Builder contract is intentionally generic.

== External Services ==

No remote calls happen on activation. Optional services run only after administrator configuration or user action:

* Portable design images: importing a design does not automatically fetch its images. An editor with upload permission may separately approve one reviewed public raster image URL. The source receives the requested URL, server IP, and WordPress HTTP user agent, without cookies, authorization headers, or page content. Imports reject private-network destinations, redirects, non-raster content, and oversized responses. Imported images remain in Media Library when a design insertion is cancelled or undone; delete an unused image separately after checking its usage. The source site's terms and privacy policy apply.
* Help4 update channel: live packages can check manifests/download ZIPs from help4wordpress.com, plugins.help4wordpress.com, plugin.help4wordpress.com, or md.help4wordpress.com. Sends server IP and user agent. Terms/privacy: https://help4wordpress.com/terms/ https://help4wordpress.com/privacy-policy/
* I.G.O.R. Feedback: administrators can choose to send a feedback report from the plugin to help4wordpress.com. This is never sent in the background; it requires a manual submit action and consent checkbox. The report sends the typed issue details, optional reply contact, site URL, WordPress/PHP versions, active theme, active plugin names/versions, enabled Builder Suite modules, and non-secret Help4 settings. It does not send cookies, saved payment keys, API secrets, application passwords, raw logs, database content, or customer records. Terms/privacy: https://help4wordpress.com/terms/ https://help4wordpress.com/privacy-policy/
* Product Insights: disabled by default. After a managing administrator reviews the exact payload and opts in, the plugin sends the public site URL/domain, Builder Suite version/build, WordPress and PHP versions, active theme slug/version, enabled Help4 module names, release channel, environment type, multisite status, a random installation ID/token, and send time to help4wordpress.com once per week. It does not send page content, users, customer records, form entries, email addresses, cookies, secrets, or raw logs. The same screen can stop sharing and request deletion of that installation record; failed deletion requests remain queued for retry. Help4-owned marketing download routes separately store daily aggregates for product, release version, referrer host, source, campaign, count, and last-seen time without storing visitor IP addresses. Terms/privacy: https://help4wordpress.com/terms/ https://help4wordpress.com/privacy-policy/
* Google Maps/Places/Search/embeds: only for configured map, business, embed, or search helpers. Sends Place ID, API key, requested fields, query/embed data, server IP, user agent, and browser metadata. Terms/privacy: https://cloud.google.com/maps-platform/terms https://policies.google.com/terms https://policies.google.com/privacy
* Cloudflare Turnstile: only after a site administrator explicitly selects Turnstile and saves a site key and secret under Help4 Forms. The browser requests Cloudflare's widget script; verification sends the private secret, short-lived widget response, submitter IP when available, and an idempotency identifier to Cloudflare. Disabled or incompletely configured mode does not contact Cloudflare. Terms/privacy: https://www.cloudflare.com/website-terms/ https://www.cloudflare.com/privacypolicy/
* IndexNow: only after an administrator enables IndexNow on an indexable public site. Sends the public site host, verification key and key location, and changed, deleted, or manually queued public URLs to the configured IndexNow endpoint in batches of up to 500. Stores response status and retry diagnostics in WordPress. Terms/privacy: https://www.indexnow.org/documentation https://www.indexnow.org/terms
* Outbound link health: only after an administrator starts a scan in SEO Control. Sends a safe HEAD request, or a bounded GET fallback when HEAD is rejected, to external URLs already linked from published content or Builder layouts. The remote site receives the server IP, public site URL in the Help4 link-health user agent, and normal HTTP metadata. Help4 does not send page content, cookies, visitor information, credentials, or customer records. Each scan is capped at 500 content items and 2,000 unique URLs and retries only bounded transient failures. The linked site's own terms and privacy policy apply.
* Email delivery: campaign, automation, and confirmation messages use the site's configured WordPress mail transport. If the administrator configures an external SMTP or email-delivery provider, that provider receives the recipient address, sender and reply-to details, subject, message body, and normal delivery metadata when a message is sent. Help4 does not select or contact a provider on activation. The administrator must document the chosen provider's terms and privacy policy.
* YouTube, Vimeo, administrator-configured HLS/MP4 media hosts, WordPress.com mShots, feeds, payment-router endpoints, and webhooks: only when configured in a layout, video player, snapshot, import, checkout route, or form. Sends configured URL/data plus normal request metadata. HLS.js is bundled locally; media requests go only to the configured media host. Terms/privacy: https://www.youtube.com/t/terms https://vimeo.com/terms https://wordpress.com/tos/ https://automattic.com/privacy/

== Changelog ==

= 3.0.27 =
* Fix native WordPress update discovery: Check again and native cache resets also refresh Help4 release metadata, including cached checks left by an older installation.
* Recalculate update availability against the currently installed plugin/theme version and keep equal or older releases out of the update offer.
* This patch branches the public 3.0.23 release. Private editor candidates remain separate; no site content or layout migration is required.

= 3.0.23 =
* Denied editing entries show Editing unavailable instead of inferring native WordPress content from an inaccessible shared-design route.
* Preserve existing editing permissions, shared design ownership, authorized routes, and native editing fallback.

= 3.0.22 =
* Registered addons can opt record lists into the visible, touch-sized Help4 editing entry through a documented presentation-only filter.
* Preserve native editing, existing visual-target/source-only routing, shared design ownership, capabilities, and addon publication rules.

= 3.0.21 =
* Posts and Pages share an always-visible editing column with touch-sized actions, publication state, recovery status, and current-user saved-working-change feedback.
* Ordinary WordPress content retains its native editor; list navigation does not enable Builder or publish content. Existing shared-record and recovery routes remain authoritative.

= 3.0.20 =
* Local development: keep all preview device choices accessible, add current-draft refresh/retry without abandoning unsaved fields, and renew unchanged previews before expiry.
* Local development: direct rich-text selection focuses the text body instead of its formatting dropdown, including first-open initialization.
* Development-only source-record Studio with a published shared design kept genuinely read-only; no added template or role capability.
* Pair-bound current-record draft preview and source update; forged design payloads and stale/revoked pairings fail closed.

= 3.0.13 =
* Keep Studio Actions clear of record details, save feedback, and return controls on compact screens. The canvas and record inspector remain one workspace; no separate editing mode is introduced.

= 3.0.12 =
* Keep canonical record validation and recovery separate from private presentation overlays during nested previews.

= 3.0.11 =
* Route the actual primary save click to the open record inspector; keep unrelated Quick Actions independent.

= 3.0.10 =
* Make the primary save follow the current record inspector and show the record's readable identity.
* Require explicit shared-template impact confirmation before publishing design changes.
* Pair validated record previews with scoped cleanup, nested-context restoration and request-end teardown.

= 3.0.9 =
* Open registered content fields directly from the canvas before surrounding shortcode settings.
* Keep floating selected-element actions inside the visible canvas while scrolling and scaling.
* Preserve private record drafts, shared-design boundaries, conflict handling and explicit recovery.

= 3.0.8 =
* Use one Edit in Help4 entry instead of asking staff to choose visual or content editing; keep shared-template scope explicit.
* Keep element content and design in one inspector with one Edit action; move record-only WordPress settings into Tools.
* Preserve the selected image when opening its inspector changes the canvas geometry during the same pointer gesture.
* Keep floating canvas commands out of Actions and full-inspector controls; retain them for inline canvas editing.

= 3.0.4 =
* Summarize automatic layer names so long policies do not overwhelm Navigator; keep custom names, technical IDs, full-text tooltips and search intact.
* Reveal the selected Navigator layer on the real-page canvas without changing its content or publishing it.
* Offer explicit saved-working and live-design duplicate choices; reject stale working-copy requests instead of silently copying older content.
* Close Actions when keyboard focus leaves its panel so the next control is not obscured.

= 3.0.3 =
* Keep inspector tabs clickable above device controls and retain the selected settings tab when previews refresh.
* Show and safely complete an explicit Update Live request made during a private save; cancel it visibly if the private save fails.
* Retain actionable save/conflict feedback until a deliberate retry succeeds, and honor explicit zero section minimum heights on desktop.
* Keep the Actions panel above wrapped save feedback in short workspaces, with scrolling for actions that do not fit.

= 3.0.1 =
* Keep direct text editing visibly on the canvas instead of opening the full inspector over the work.
* Add obvious Done and Cancel actions, and commit completed on-page text into the page draft without a second hidden element-save step.
* Preserve the full inspector through Edit content while keeping desktop, tablet, and mobile canvas workflows consistent.

= 3.0.0 =
* Make the visual canvas the primary editing surface with explicit content, design, duplicate, movement, and insertion actions.
* Collapse spacing controls until requested, improve drag-and-drop guidance and auto-scroll, and keep technical IDs out of the normal editing workflow.
* Simplify compact editing workspaces so mobile and short-height screens retain useful canvas room and clear recovery feedback.

= 2.2.5 =
* Keep compact slider arrows below ordinary slide copy, give centered captions a stable responsive width, and prevent centered content from collapsing behind shared control spacing.

= 2.2.4 =
* Keep compact slider arrows below ordinary slide copy and give centered captions a stable responsive width.

= 2.2.3 =
* Keep slider titles and captions readable when a theme supplies stronger heading or paragraph colors.

= 2.2.2 =
* Give sliders a self-contained frontend style and script contract on Builder pages, ordinary shortcode pages, and late custom renders without depending on the active theme.
* Let slide media inherit the slider-level fit setting, preserve explicit per-slide overrides, and keep Studio and public focal-position rendering on the same CSS-variable contract.
* Raise fixed slider height when a legacy caption needs more room so mobile text and calls to action are not silently clipped.

= 2.2.1 =
* Keep common edit, insert, image-replacement, movement, duplicate, and removal actions beside the selected element in the signed real-page Studio preview.
* Replace native Image blocks and safely mapped migrated HTML images directly through the WordPress Media Library while preserving explicit element save and page update controls.
* Retain the full selection strip, Navigator, inspector, private-draft recovery, responsive preview, keyboard operation, and unknown extension data as fallbacks and advanced controls.

= 2.2.0 =
* Edit headings, text, buttons, captions, lists, FAQs, quotes, calls to action, labels, and simple migrated HTML text directly in the real-page Studio preview.
* Keep the element inspector synchronized while typing and reconcile the signed draft only after the on-page edit finishes, preserving caret stability and real theme rendering.
* Support keyboard entry, explicit finish/cancel behavior, sanitized formatted text, and fail-closed handling for unknown add-on elements.

= 2.1.16 =
* Native WordPress formatting tools for Text widgets, preserving unchanged plain text.
* Keep compatible inspector Design groups, responsive context and visible settings when selecting another element.
* Remove automatic extra minimum-height spacing from populated layout slots while preserving designer minimums.
* Keep selection actions bound to their visible element, including after a blocked breadcrumb change.
* Inspect rendered background owners and matching stylesheet sources.
* Associate Page Settings labels with their controls.

= 2.1.15 =
* Add a labeled Back action to compact Studio Actions and a searchable Exit Builder action using the correct content-list destination.
* Preserve unsaved inspector changes and edits made during an in-flight save when leaving Studio. Failed saves keep the editor open.
* No layout or content migration is required.

= 2.1.14 =
* Preserve quoted content, multiline settings and nested extension metadata when duplicating content.
* Protect unreadable saved designs from starter-layout replacement; explicitly recover a previous layout into a separate unpublished copy.
* Find registered component controls by field and group name, with immediate typing feedback and accessible validation.

= 2.1.13 =
* Keep Work Home as the permitted Help4 menu landing while preserving extension workspaces and advanced tools.
* Give minimum-height controls accessible labels, explicit breakpoint inheritance, zero minimums, and validation without changing legacy automatic responsive defaults.
* Keep selection outlines without tinting resting page content, and retain authored menu colors on readable wrapping mobile triggers.

= 2.1.12 =
* Assigned 404 and collection templates reuse a main landmark already opened by the theme header, without changing saved layouts.
* Registered component controls support multiline text areas and labelled field groups, retaining explicit save/cancel and unchanged-value preservation.

= 2.1.11 =
* Restore connected-content inspector source lookup and selection with the current window's private preview. Reject malformed or expired scoped requests without substituting another source.
* Keep temporary template-preview content lookup compatible with its strict read-only request contract.

= 2.1.10 =
* Keep preview-session routing out of the separate public-image approval/import request contracts. Explicit image approval, capability checks, public-network validation and import limits remain required.

* Keep save failures and revision conflicts visible in compact Navigator, Settings and Add workspaces; successful retry clears the message.
* Do not restart the same editable draft while its document and assets are still loading.
* Keep Navigator search and result status visible while scrolling long layer trees.
* Do not mislabel the previous iframe document as a rejected draft while its replacement is still loading.
* Preserve exact rendered fingerprint checks for completed documents and real preview errors.

= 2.1.8 =
* Keep newer unsaved previews intact when an earlier private-draft save finishes late; preserve legacy integration responses.
* Retry rejected previews with a fresh current document, remove stale selection handles, and keep compact review visible above Navigator.
* Enter review from Settings with one draft load and a focused Return to editing control.
* Keep preview failure feedback visible in phone Settings panels without discarding unsaved edits.
* Isolate each Studio window's temporary preview so opening the same page elsewhere cannot replace an in-flight draft document.
* Verify the rendered page, session, source, and fingerprint before showing the preview as ready; error documents no longer receive a green ready status.
* Preserve existing nonce, capability, expiry, and exact-current-revision checks. Saved layouts and private drafts require no migration.

= 2.1.7 =
* Explicit Menu background colors replace retained background images or gradients. Empty or invalid color settings do not change the site's existing background.
* Returning to Canvas can reveal a wholly hidden short header or footer in Exact Device mode, while preserving deliberate scrolling until a workspace change and leaving long-page positions untouched.
* Structured module fields preserve quotes, ampersands, empty values and zero while editing, reopening and changing unrelated fields.
* Structured module text, number and selection controls retain a 44-pixel minimum touch target inside the inspector.
* Opening the actual current draft does not restart an identical preview request already initiated by its viewport layout.
* New structured edits mark their attribute encoding explicitly so WordPress parses quoted boundaries before decoding values. Unchanged legacy shortcode data is not migrated automatically.

= 2.1.5 =
* Studio color fields preserve translucent colors, semantic tokens and unset values, with editable opacity and clearer inherited-state controls.
* Menu appearance settings cover responsive link spacing and typography, normal/current/featured colors, borders and surfaces. WordPress menu items expose a Featured link choice; style copy and design exchange preserve destination menu identity.
* Test Menu suspends editing handles and outlines; opening the inspector restores editing without requiring Escape.
* Canvas preview settings remain readable at compact sizes, and wholly hidden short standalone templates are revealed after a device or workspace change without resetting long-page scroll positions.

= 2.1.4 =
* Checkout availability shares server pricing, enabled-route and provider eligibility checks with payment submission. Provider catalogs remain separate from payable choices.
* Native checkout stays disabled during payment-method loading, unavailable/error states, and duplicate submissions, with an accessible retry action.

= 2.1.3 =
* Find individual padding and margin sides across desktop, tablet, mobile, and hover settings. Search results focus the exact labeled input without changing unrelated values.

= 2.1.2 =
* Keep the selected Navigator layer available when opening Settings. After cancelling or discarding, return to a visible editing control so keyboard users can reopen it with Enter.
* Restore inspector focus safely when a layer control has been rebuilt, hidden, or removed, without changing saved page data.
* Wrap long shared-template editing actions inside their WordPress metabox and keep a minimum 44-pixel touch target on compact screens.

= 2.1.1 =
* Shared-template module inspectors show an Edit action for the verified content currently in preview. The preview picker stays usable inside compact inspectors without changing saved content bindings.
* Registered modules have readable Navigator labels. Move to destinations keep their display labels separate from strict movement instructions, so copied sections can be moved beside existing modules.
* Draft, private, scheduled, pending-review, and published saves report their actual publication state. Saving a draft does not claim the live page was updated.
* Discarding an inspector edit restores the canvas, Navigator identities, and selection breadcrumb together without replacing focused layer controls.
* Educational HTML5/HLS video can show its complete frame with automatic height. Framing, aspect ratio, and maximum height are directly editable; ordinary and decorative video defaults remain unchanged.

= 2.1.0 =
* Keep Layers beside the canvas and inspector on wide workspaces, with readable names, optional technical IDs, search, and keyboard navigation. Compact workspaces retain the selected layer while switching views.
* Move complete sections and their children together, cancel a drag with Escape, and restore a move with one Undo. Copy sections or visual styles between pages, with new IDs for copied elements.
* Review portable designs before appending them. Resolve supported images, menus, products, and global color references explicitly; unsupported dynamic modules are rejected instead of silently flattened.
* Search for device-specific settings such as "mobile padding" or "tablet margin". Spacing values have larger readable inputs, and merely focusing a field does not create an override.
* Save only edited inspector values so unrelated defaults do not replace existing sparse settings. Live draft preview uses the same changed-value document as saving.
* Give supported module sources named Edit actions. Shared templates can preview a permitted named content record temporarily, without changing their assignment or stored content binding.
* Keep preview selections scoped to the editor and exact draft revision; recheck source access when rendering. No layout migration is required.
* Keep unsaved element feedback distinct from saved page state. Save errors and conflicts remain visible through inspector changes, and compact workspace tabs identify the panel actually in use.

= 2.0.0 =
* Rebuilt Studio workspace: a compact command bar, dedicated Add library, discoverable Navigator, and a resizable inspector leave more room for the actual page.
* Long layer names and technical IDs remain readable on desktop and touch screens. Compact-height Actions and save feedback stay reachable.
* Section clipboard now shows the copied section and source page, with an explicit Clear action.
* Element removal and draft discard use accessible in-workspace confirmations with a safe cancel default and restored focus.
* Preserves existing layouts, module settings, private drafts, and the 1.3.430 save and preview contracts. No content migration is required.

= 1.3.430 =

* Preserve Commerce and other module-owned settings when their screens save the shared Builder option, while keeping global Builder Settings sanitation, unchecked-checkbox handling, and locked update endpoints intact.

= 1.3.429 =

* Keep complete sanitized Navigator labels readable at every layer depth instead of shortening nested text before it can wrap.

= 1.3.428 =

* Keep long Navigator names and technical IDs fully readable by wrapping them into rows that grow without covering the 44-pixel action controls.

= 1.3.427 =

* Keep compact-height Studio actions and save feedback fully reachable by temporarily clearing secondary editing strips while the Actions drawer is open.

= 1.3.426 =

* Put Canvas, Add, Navigator, and Settings in one persistent Studio workspace switcher, with a clickable selected-element ancestry path for nested layouts.
* Add a visible Slider layer navigator with readable names, selection, stacking, duplication, safe removal, Canvas/Settings modes, and clearer full-screen editing.

= 1.3.424 =

* Binds Studio menu-test readiness to the exact preview revision and revokes interaction immediately whenever that draft begins refreshing.

= 1.3.423 =

* Makes Studio menu-test readiness work across the draft iframe boundary while retaining the exact-draft loading gate and visible recovery state.

= 1.3.422 =

* Makes Studio menu testing wait for the exact current draft frame before enabling interaction, preventing stale or disappearing menu clicks during preview reloads.
* Schedules security salt rotation during ordinary WordPress initialization so a clean install is protected before the first wp-admin visit.

= 1.3.421 =
* Ensure the security salt-rotation task is scheduled after activation on the first ordinary WordPress request, without requiring an administrator to visit wp-admin.

= 1.3.420 =
* Give sections, containers, and inner sections recognizable editor names derived from their content, with an optional editor-only name and a secondary technical ID for support.
* Name the exact element and nested-element count before removal, keep the inspector open when removal is canceled, and confirm that undo remains available before the live page is updated.
* Put a labeled Navigator in the main Studio toolbar with layer search, readable names and IDs, hierarchy controls, and keyboard-accessible move, duplicate, and remove actions.
* Keep the visible canvas selection outline aligned with the selected draft element after inspector and device-width changes.

= 1.3.419 =
* Show an unmistakable empty or ready state for the reusable section clipboard on every selected element, including compact Builder workspaces.
* Put overlay anchoring, offsets, position, overflow, and z-index in a dedicated inspector group, and surface section-edge spacing without making designers hunt through unrelated controls.
* Refresh saved WordPress menu changes automatically after returning to Builder, with a visible manual refresh and status path when another tab or browser blocks the return signal.

= 1.3.418 =
* Stop repeating the setup-wizard notice after setup is saved or a published Help4 Builder document proves the site is already configured.
* Keep an intentional Run Setup Wizard action available from Builder staff home and the normal Help4 Builder menu.

= 1.3.417 =
* Split shared site design into obvious global-header, global-footer, single-item, listing/search, not-found, and WordPress-menu paths with plain-language filtered views.
* Make Studio identify shared and site-wide design ownership without role/scope jargon, and put section background and spacing controls first with visible Top, Right, Bottom, and Left labels.
* Surface Paste Section after a validated same-site Builder copy so cross-page reuse no longer depends on hand-entered data or a hidden menu.

= 1.3.416 =
* Route visual editing to the shared Builder template that actually owns a content item's public design while keeping factual content editing separate and type-aware.
* Require explicit confirmation for one-off designs, start them from the current shared design, and provide a reversible return-to-shared action without deleting dormant recovery data.
* Separate reusable templates from ordinary Work Home content, make specialty task cards site-relevant and extensible, and surface Copy Section when a container is selected.

= 1.3.415 =
* Prevent stale private drafts from overwriting newer page layout, title mode, template-condition, layout, or page-CSS changes by validating one normalized page-document base hash.
* Keep conflicted private work recoverable, report a clear reload-required state, and remove structurally invalid private-draft metadata instead of retaining an unreadable draft.

= 1.3.414 =
* Keeps every Builder canvas mutation in a private, user-scoped draft until an explicit Update Live or Publish action.
* Restores private drafts after reload, isolates them from other editors and visitors, and adds a visible discard-to-live action.
* Clarifies page and global-template context, strengthens compact Studio controls, and completes translation context for dynamic editor labels.

= 1.3.413 =
* Keep every Builder canvas mutation in a user-scoped private draft until an editor deliberately chooses Update Live or Publish Page.
* Restore private drafts after Studio reload and provide a visible, confirmed Discard draft changes command that returns the editor to the current live document.
* Prevent private autosaves from writing page metadata, global design options, template assignments, or cache-purge events, while retaining revision conflict protection.

= 1.3.412 =
* Keep copied sections available across same-site Builder page navigation with a validated, user-scoped internal clipboard plus explicit import and export recovery controls.
* Make menu setup task-based, add a safe Test Menu interaction mode, and clarify exact-width versus fit-to-workspace preview behavior.
* Keep inspector actions reachable at compact admin sizes while progressively revealing exact spacing, video, fallback, and accessibility controls.
* Give add-ons a generic shared-template ownership contract so staff edit item content separately from reusable design and must confirm one-off overrides.
* Collapse advanced SEO groups and display Event, Course, Product, and Real Estate fields only for their matching schema type.

= 1.3.411 =
* Let Builder menus follow a selected WordPress menu location or stable menu ID while preserving legacy menu-slug layouts.
* Show the real selected WordPress menu hierarchy in Studio instead of a slug placeholder.
* Copy and paste a complete Section, Container, or Inner Section across Builder pages with remapped IDs, nested content, extensions, responsive styles, and undo history intact.
* Add exact per-device section separation, background-coverage, and responsive overlay-anchor controls for predictable full-width bands and layered designs.

= 1.3.410 =
* Keep ordinary featured-image, taxonomy, title, excerpt, and status updates on third-party content types from creating or changing Builder documents or metadata.
* Stop the classic post editor from silently re-enabling a disabled Builder layout.
* Quarantine the exact legacy one-block Builder starter document on custom content until a user deliberately adopts it in Builder Studio.

= 1.3.409 =
* Preserve validated responsive `srcset`, `sizes`, and `decoding` attributes in Builder HTML blocks generated by WordPress media helpers.
* Keep Studio preview, saved layouts, and public rendering on the same responsive-image sanitizer contract while rejecting unsafe protocols, descriptors, CSS tokens, event handlers, and decoding values.

= 1.3.408 =
* Add context-specific best-size help for image, logo, hero, background, slider, poster, portrait, product, gallery, event, email, screenshot, favicon, and social-image inputs.
* Show the selected image's real pixel dimensions and warn about undersized sources, unexpected crops, mixed gallery ratios, and unsuitable formats before publishing.
* Keep one accessible, filterable image-guidance contract across Builder Studio, sliders, staff, calendar, commerce, SEO, dynamic fields, and other Help4 admin workspaces.
* Load the existing first-party measurement and local-business frontend scripts with a nonblocking defer strategy.


Complete prior release history: https://help4wordpress.com/help4-builder-suite/changelog.txt
