=== FormVue — Lead Capture ===
Contributors: formvue
Tags: lead capture, contact form, video, phone, popup
Requires at least: 5.8
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 2.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Add FormVue lead capture widgets — inline button, modal, contact, or content — via Gutenberg, Elementor, or shortcodes.

== Description ==

FormVue lets you add lead capture widgets to any page on your WordPress site. There are four independent widgets — pick the one you need and configure only its options:

* **Inline button** — a button that transforms into a phone number input.
* **Modal** — a trigger button that opens the form in a popup.
* **Contact** — an embedded contact form rendered directly on the page.
* **Content** — a coupon-gated content flow.

After a visitor submits, they receive an SMS with a personalized link to your FormVue video form.

You need a free FormVue account at [formvue.com](https://formvue.com/) to obtain a Form ID.

**Features:**

* Four independent widgets — inline button, modal, contact form, content (coupon) — each with only its relevant options
* Works with Gutenberg, Elementor, and any builder that accepts shortcodes (Divi, WPBakery, Beaver Builder, etc.)
* Shortcodes: `[fvlc_inline]`, `[fvlc_modal]`, `[fvlc_contact]`, `[fvlc_content]`
* Four native Gutenberg blocks, each with a live visual preview
* Four Elementor widgets with drag & drop
* Global default settings in WP Admin
* Customizable colors, sizes, variants, and borders
* Campaign / UTM attribution and query-param passthrough
* Mobile-friendly (renders as a link on mobile devices)
* The widget runtime is bundled inside the plugin — no external script loader

== External services ==

This plugin connects to the FormVue service (operated by FormVue) to capture and process leads. This connection is required for the plugin's core functionality — without it, submitted forms cannot be delivered.

What is sent, and when:

* When a widget is shown, an impression event and, on interaction, a click event are sent to `https://formvue.com` (proxied to FormVue's API). Each event includes the configured Form ID, optional campaign/UTM attribution, the page URL, page title, referrer, and screen width.
* When a visitor submits the form (e.g. a phone number or contact fields), those values are sent to `https://formvue.com` to create a lead and trigger the SMS/email with the personalized form link.
* The widget logo image is loaded from `https://api.formvue.com`.

No data is sent until a widget actually renders on a page. The plugin itself loads no JavaScript from any third-party server — the widget runtime ships inside the plugin.

* FormVue terms of service: https://formvue.com/legals/terms-of-service
* FormVue privacy policy: https://formvue.com/legals/privacy

== Third-party libraries ==

The widget runtime bundled in `build/sdk/` is compiled from the open-source FormVue Embed SDK and includes the following libraries, all under the MIT license (GPL-compatible):

* Preact and @preact/signals — https://preactjs.com (MIT)
* @formisch/preact — https://github.com/fabian-hiller/formisch (MIT)
* valibot — https://valibot.dev (MIT)
* openapi-fetch — https://github.com/openapi-ts/openapi-typescript (MIT)
* Tailwind CSS — https://tailwindcss.com (MIT)

== Source code ==

This plugin ships some minified JavaScript. The complete, un-minified source for every compiled file is included inside this plugin, and can be rebuilt with standard tools.

Gutenberg blocks — `build/blocks/{inline,modal,contact,content}/index.js`

* Source: the `blocks/` folder (React/JSX, built with @wordpress/scripts).
* Rebuild, from the plugin folder: `npm install` then `npm run build:blocks`.

Widget runtime (SDK) — `build/sdk/formvue-{inline,modal,contact,content}.js`

* Source: the `sdk-src/` folder (TypeScript + Preact + Tailwind CSS, built with Vite).
* Rebuild: `cd sdk-src` then `npm install` then
  `FORMVUE_API_URL=https://api.formvue.com FORMVUE_SHARE_URL=https://formvue.com npm run build:cdn`
  (without those variables the build targets localhost, which is the development default).
* The API type definitions in `sdk-src/src/shared/api/v1.d.ts` are generated from FormVue's public OpenAPI schema with the `openapi-typescript` tool; they are type-only declarations and contain no runtime code.

The bundled libraries listed under "Third-party libraries" (Preact, @preact/signals, @formisch/preact, valibot, openapi-fetch, Tailwind CSS) are all MIT-licensed.

== Installation ==

1. Upload the `formvue-lead-capture` folder to `/wp-content/plugins/`, or install it from the Plugins screen.
2. Activate the plugin through the Plugins menu.
3. Go to Settings → FormVue to configure defaults.
4. Add a widget using a shortcode, the Gutenberg block, or the Elementor widget.

== Frequently Asked Questions ==

= How do I get a Form ID? =

Log in to your FormVue dashboard at formvue.com, select a form, and copy the ID from the URL or share settings.

= Does it work with Elementor? =

Yes. Look for "FormVue" in the Elementor widget panel under the General category.

= Does it work with Divi / WPBakery / other builders? =

Yes. Use a shortcode — `[fvlc_inline id="your-form-id"]`, `[fvlc_modal]`, `[fvlc_contact]`, or `[fvlc_content]` — in any text or HTML module.

= Can I have multiple widgets on one page? =

Yes. Each widget instance works independently.

= Does the plugin load any external scripts? =

No. The widget runtime is bundled inside the plugin and served from your own site. The plugin only contacts the FormVue API to record events and submit leads — see the "External services" section.

== Screenshots ==

1. The FormVue Gutenberg blocks with live preview.
2. The FormVue Elementor widgets and their controls.
3. The global defaults settings page (Settings → FormVue).

== Changelog ==

= 2.0.0 =
* Renamed to "FormVue — Lead Capture" with the formvue-lead-capture text domain
* Bundled the SDK runtime inside the plugin (no external CDN script loading)
* Four independent widgets — inline, modal, contact, content — each as its own Gutenberg block, Elementor widget, and shortcode ([fvlc_inline], [fvlc_modal], [fvlc_contact], [fvlc_content]); every widget exposes only its relevant options
* Added campaign / UTM attribution and query-param passthrough
* Added locale, variant, and mobile new-tab options
* Documented external service usage; added GPLv2 license file

= 1.0.0 =
* Initial release
* Shortcode support
* Gutenberg block
* Elementor widget
* Global settings page

== Upgrade Notice ==

= 2.0.0 =
Adds modal, contact, and content modes, bundles the widget runtime locally, and renames the plugin. Review Settings → FormVue after upgrading.
