=== RJ App Studio Form Builder ===
Contributors: rjappstudio
Tags: forms, contact form, form builder, drag and drop, gdpr
Requires at least: 6.1
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A security-first, drag-and-drop form builder built on a modern, namespaced WordPress architecture.

== Description ==

RJ App Studio Form Builder is a contact form plugin built from the ground up around a
namespaced, PSR-4, dependency-injected architecture — not a fork or a
quick clone of an existing plugin. It ships with:

* A React-based drag-and-drop form builder (Gutenberg-component powered)
* 29 field types, including Signature, Address, Name, GDPR Checkbox,
  and reCAPTCHA/hCaptcha/Cloudflare Turnstile
* A layered submission pipeline: honeypot, time-trap, rate limiting,
  captcha verification, and spam scoring — all extensible via filters
* Hardened file upload handling: MIME sniffing, random filenames, and
  execution-blocked storage
* A full entry manager: search, filter, spam folder, trash, star, notes,
  and CSV/JSON export
* Configurable email notifications with an autoresponder, HTML
  templates, delivery logs, and automatic retry of failed sends
* Conditional logic, multi-step forms with a progress bar, and
  Save & Continue Later
* An extensible integration framework (no third-party connectors bundled
  by default — add your own via `pilotform_register_integrations`)
* Native WordPress Privacy (GDPR) export/erase integration
* Shortcode, Gutenberg block, and a `pilotform_render_form()` theme
  function for embedding

Everything above is included and free under the GPL. There are no locked
features, no license keys, and no upsell prompts in the plugin.

== Source Code ==

This plugin's JavaScript and CSS are built with webpack from human-readable
source, and that source is included in full inside the plugin package
itself (not just linked to) — no separate repository is required to read,
study, or modify it. Each compiled file maps to source as follows:

* `assets/js/builder.js` (admin form builder, entries, settings, design
  screens) is built from `resources/js/builder/` and `resources/css/builder.css`
* `assets/js/block-editor.js` (Gutenberg block registration) is built
  from `resources/js/block-editor/`
* `assets/js/frontend.js` (public form submission script) is built from
  `resources/js/frontend/` and `resources/css/frontend.css`

`webpack.config.js` and `babel.config.js` (also included) define the
build. `composer.json` and `package.json` are included for the same
reason on the PHP dependency and JS tooling side respectively. To rebuild
every bundle from source yourself:

`composer install && npm install && npm run build`

== Installation ==

1. In your WordPress admin, go to Plugins > Add New > Upload Plugin and
   choose the RJ App Studio Form Builder ZIP, or upload the
   `rjappstudio-form-builder` folder to `/wp-content/plugins/`.
2. Activate the plugin through the "Plugins" screen in WordPress.
3. Go to "RJ App Studio Form Builder" in the admin menu to create your
   first form.
4. Embed a form with the `[pilotform id="123"]` shortcode, the RJ App
   Studio Form Builder block, or `pilotform_render_form( 123 )` in a theme
   template.

== Frequently Asked Questions ==

= Do I need Composer or Node.js to run the plugin? =

No. The release package already includes everything the plugin needs to
run. Composer and Node.js are only required if you are developing the
plugin from source.

= Where is the human-readable source for the compiled JS/CSS? =

See the "Source Code" section above — the full source ships inside the
plugin package itself.

= How do I add a Mailchimp/Slack/Zapier/etc. integration? =

RJ App Studio Form Builder ships the integration architecture (`IntegrationInterface`,
registered via the `pilotform_register_integrations` action) without any
bundled third-party connectors, so you can add exactly the integrations
you need without extra dependencies you don't.

= Does the plugin send any data to third parties? =

Only if you enable an anti-spam CAPTCHA. See the "External services"
section below for the full details. With CAPTCHA disabled (the default),
the plugin makes no external requests.

== External services ==

RJ App Studio Form Builder connects to third-party CAPTCHA providers **only when a site
administrator enables that provider** for a form. No external request is
made otherwise.

When you enable Google reCAPTCHA, hCaptcha, or Cloudflare Turnstile:

* The provider's widget script is loaded in the visitor's browser on
  pages that display the protected form, and the visitor's interaction
  token is generated by that provider.
* On submission, RJ App Studio Form Builder sends the token, the visitor's IP address,
  and your site's secret key to the provider's verification endpoint to
  confirm the submission is not automated:
    * Google reCAPTCHA — https://www.google.com/recaptcha/api/siteverify
    * hCaptcha — https://hcaptcha.com/siteverify
    * Cloudflare Turnstile — https://challenges.cloudflare.com/turnstile/v0/siteverify

Each provider processes this data under its own terms and privacy policy:

* Google: https://policies.google.com/terms and https://policies.google.com/privacy
* hCaptcha: https://www.hcaptcha.com/terms and https://www.hcaptcha.com/privacy
* Cloudflare: https://www.cloudflare.com/website-terms/ and https://www.cloudflare.com/privacypolicy/

All other anti-spam layers (honeypot, time-trap, rate limiting, and spam
scoring) run entirely on your own server and send nothing externally.

== Screenshots ==

1. The drag-and-drop form builder: field palette, live canvas, and the
   per-field settings panel.
2. The forms list, with a ready-to-paste shortcode, duplicate, export,
   and import for every form.
3. The entry manager: filter by form, search, star, mark read or unread,
   and CSV/JSON export.
4. A single entry, showing every submitted field for that submission.
5. Settings: spam protection, rate limiting, CAPTCHA keys, and the
   default upload ceiling.
6. Design: button styling and success-message colours, each with a live
   preview.
7. Email delivery logs, with recipient, subject, status, and the number
   of send attempts.
8. A published form on the front end, with responsive multi-column
   field widths.

== Changelog ==

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.0 =
Initial release of RJ App Studio Form Builder.
