=== Gatey - Login & SSO with Amazon Cognito ===
Contributors: smartcloud
Tags: aws, cognito, login, sso, mfa
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 8.1
Stable tag: 2.4.2
License: MIT
License URI: https://mit-license.org/
Text Domain: gatey

Drag-and-drop Amazon Cognito integration: 22-language screens, Single Sign-on, Multi-Factor Authentication, secure JWT tokens, and more.

== Description ==

Gatey provides a seamless integration with Amazon Cognito for secure, scalable authentication in WordPress. This plugin supports both dynamic WordPress sites and statically generated WordPress frontends.

Gatey is part of the WP Suite product family by Smart Cloud Solutions, Inc. WP Suite keeps WordPress as the CMS and editing layer, while optional connected features can extend selected workflows into modular AWS-backed services for identity, AI, APIs, workflows, protected routes, and static delivery. The free Gatey features described here do not require a WP Suite account or subscription; AWS services are used only where you configure them directly, such as your own Amazon Cognito user pool, or where you enable optional connected features.

https://www.youtube.com/watch?v=xFjEg-LbgHA

Key features include:
  - Amazon Cognito user pool **login** and **registration**
  - Fully translatable Authenticator screens — **22 built-in languages** plus a custom-JSON option for overriding any string or **adding new languages**
  - Single Sign-On (**SSO**) integration with Social login, SAML, and OIDC providers
  - **Gutenberg block**, Elementor **widget**, and **shortcode** support
  - Multi-factor authentication (**MFA**)
  - **Profile editing** and **password reset** features
  - Secure API access with **JWT** or **AWS IAM** Signature authorization
  - Role-based access control

You can find the plugin’s continuously expanding, detailed documentation at:

[WP Suite – Docs](https://wpsuite.io/docs/)

What’s on the site?
  - Get Started guide — quick start, installation, first‑time setup.
  - CSS/JS references — components, API, usage examples.
  - Creating User Pools — step‑by‑step instructions with AWS CloudFormation / CDK scripts.
  - Protecting static sites — full tutorial with point‑by‑point walkthroughs and AWS scripts.

This plugin is not affiliated with or endorsed by Amazon Web Services or the WordPress Foundation. All trademarks are property of their respective owners.

== Free and Premium Usage Notice ==

Gatey works entirely offline and provides full login and registration functionality via your WordPress installation without requiring any registration or subscription.

Optional premium features (like advanced customization or frontend integrations) are only available after connecting your WordPress instance via a secure frontend-only JavaScript authenticator to our Gatey service. Registration and subscription are not required to use the core plugin functionality. All premium interactions happen client-side using standard AWS Amplify and Stripe components – no external PHP code is loaded or executed.

== Installation ==

Upload the plugin files to the /wp-content/plugins/gatey directory, or install via the WordPress plugin repository.

Activate the plugin through the “Plugins” screen in WordPress.

Navigate to WP Admin > SmartCloud > Settings to configure your AWS Cognito user pool and integration settings.

== Machine-readable resources ==

* AI plugin manifest: https://wpsuite.io/.well-known/ai-plugin.json
* OpenAPI spec: https://wpsuite.io/.well-known/openapi.yaml

== Frequently Asked Questions ==

= What is Gatey? =
Gatey is a server-free WordPress plugin that adds Amazon Cognito login and SSO in minutes. Drop in its Authenticator block, shortcode or CSS class—no coding required.

= Does Gatey store any user data or client secret? =
**No.** Gatey never stores your Cognito client secrets or your users’ personal data on the WordPress server. All authentication happens directly in the browser against your own Cognito User Pool. The plug-in only keeps non-sensitive settings (e.g., User Pool ID) in WordPress and does not proxy, log, or persist any JWT tokens or profile details.

= Is my data shared with any third party? =
Gatey never shares your personal data or WordPress site data with any third party. Authentication flows run directly between your site and your AWS Cognito user pool. If you enable premium features, subscription management is handled securely via Stripe using hosted forms and client‑side JavaScript. No payment data is stored or processed by Gatey.

= Will it still work after a static export? =
**Yes.** Because all authentication runs in the browser, Gatey talks straight to Amazon Cognito and keeps working even when WordPress is served as static files (Netlify, S3, CloudFront, etc.).

= Do I need AWS or Cognito knowledge to use it? =
Only the basics. You’ll create a Cognito User Pool and App Client in the AWS console—that’s it. Gatey then takes over all front-end work — sign-in, sign-up, MFA, profile fields—through a visual block or shortcode, no coding required.

= How long does setup take? =
Usually less than **five minutes**: install, drop the block, paste your User Pool ID, App Client ID, and region.

= How do I embed a saved Authenticator pattern with a shortcode? =
Use `[gatey id="123"]`, where `123` is the reusable block / pattern ID that contains a Gatey Authenticator block.

= Can I show or hide content based on the logged‑in user? =
**Yes.** You can use shortcodes or CSS variables like --gatey-account-group-admin or --gatey-account-attribute-email to control visibility.

= Is Gatey compatible with my theme? =
**Yes.** Gatey uses standard Gutenberg blocks and shortcodes, so it works with any WordPress theme or builder (Elementor, Divi, etc.).

= Do I need to register or subscribe to use Gatey? =
**No.** Gatey works fully offline out of the box and requires no registration or subscription to function. You can configure your AWS Cognito user pool directly inside WordPress and use login, registration, MFA, and profile features without ever connecting to wpsuite.io. Premium features are entirely optional and only become available after connecting your site using secure client‑side JavaScript.

= What’s the difference between plans? =
Free includes all core blocks, social login (Facebook, Google, Amazon, Apple), but frontend customizations are hidden. Basic shows custom blocks on live pages. Professional unlocks custom SAML/OIDC providers, JWT/IAM‑secured APIs, and advanced Gatey control.

= Where are the subscription-based configuration files stored, and how often are they refreshed? =
All Pro settings you create in the Gatey Settings—API Settings, custom Form Fields—are saved server-side and, whenever you hit Save, an encrypted copy is written to your site’s wp-content/uploads/ folder.
The small licence file needed to decrypt that config are also stored in uploads. A licence is valid for one month, so the plugin automatically downloads a fresh file every seven days while your subscription is active. 
If you run a static export, you’ll still need that weekly refresh (a short tutorial covers this topic), but a normal WordPress install handles it for you automatically.

= Can I cancel or upgrade later? =
**Yes**, at any time. The plugin will still work in Free mode, and your site’s blocks won’t break — only premium features will deactivate.

== Screenshots ==

Drag‑and‑drop Sign‑in block in the Gutenberg editor

Drag-and-drop **Sign-in** block in the Gutenberg editor (Arabic, RTL view)

Account attribute shown for a logged‑in user

User profile form with attribute editing

Custom Sign‑up screen overridden with Custom Blocks and Form Fields

Custom Sign‑up form rendered on a live page

Custom Setup TOTP device form rendered on a live page

Admin settings page showing the Gatey configuration wizard

== External Services ==

This plugin integrates with the following third-party services:

1. **Amazon Cognito**  
   - **What it is & what it’s used for:**  
     A managed user-identity and authentication service from Amazon Web Services (AWS). We use Cognito User Pools to handle user registration, login, multi-factor authentication (MFA), password resets, and JWT issuance.  
   - **What data is sent & when:**  
     - **Registration / Sign-up:** username, email, and any required attributes are sent to Cognito for account creation.  
     - **Sign-in / Authentication:** username and password (and MFA code if enabled) are sent to Cognito for verification.  
     - **Token exchange:** on successful login, Cognito returns ID, access, and refresh tokens which are stored client-side for session management.  
     - **Password reset & profile updates:** relevant identifiers and new credentials or attributes are sent when users trigger those flows.  
   - **Endpoints called:**  
     - `https://cognito-idp.{region}.amazonaws.com/{userPoolId}`  
     - Other AWS API endpoints under the `amazonaws.com` domain.  
   - **Links:**  
     - Terms of Service: https://aws.amazon.com/service-terms/  
     - Privacy Policy: https://aws.amazon.com/privacy/

2. **Google reCAPTCHA v3**  
   - **What it is & what it’s used for:**  
     A client-side bot-detection widget from Google that provides a score for interactions. We integrate reCAPTCHA v3 into the Authenticator block’s sign-up form by fetching a token in the browser.  
   - **What data is sent & when:**  
     - **Client-side only:** the plugin’s JS calls `grecaptcha.execute()` to retrieve a reCAPTCHA token and then includes that token in the sign-up request sent to Amazon Cognito.  
     - **Server-side verification:** only happens if *you* configure a Pre-SignUp Lambda in your Cognito user pool that calls Google’s `siteverify` API with your secret key. That Lambda is wholly under your control—Gatey does *not* handle or store your secret.  
   - **Configuration in WordPress:**  
     - Enter your **reCAPTCHA v3 Site Key** in **Settings → General → reCAPTCHA v3 Public Key**.  
     - No Secret Key is required by the plugin.  
   - **Links:**  
     - About reCAPTCHA v3: https://www.google.com/recaptcha/about/  
     - Google Terms of Service: https://policies.google.com/terms  
     - Google Privacy Policy: https://policies.google.com/privacy

3. **WP Suite platform connection (optional; site/workspace linking & shared features)**
   - **When it applies:**
     When you use **WP Admin → SmartCloud → Connect your Site to WP Suite** to link this WordPress site to a WP Suite workspace, or to switch/disconnect later.
   - **What it’s used for:**
     Storing and retrieving Pro feature configuration (e.g., API/chatbot/feature settings) and enabling an admin-side preview experience so you can try Pro features in WP Admin before enabling them on the live site.
   - **What data may be sent:**
     Minimal account/session data required for authentication, and minimal site/workspace linking data required to associate a WordPress site with a workspace (e.g., site/workspace identifiers and the site’s URL/domain).
   - **Where it goes / how it’s called:**
     Secure HTTPS requests from the browser to WPSuite.io services (e.g. **wpsuite.io** and **api.wpsuite.io**).
   - **Links:**
     - WPSuite.io Privacy Policy: https://wpsuite.io/privacy-policy
     - WPSuite.io Terms of Use: https://wpsuite.io/terms-of-use

4. **Stripe (optional; subscription/purchase flow)**
   - **When it applies:** Only when the user opens the optional WP Suite subscription / purchase flow in the shared admin component.
   - **What it’s used for:** Displaying hosted pricing/subscription UI for optional paid features.
   - **What data may be sent:** Browser/session data required by Stripe to render the hosted purchase UI and process the purchase flow.
   - **Links:**
     - Terms: https://stripe.com/legal/consumer
     - Privacy: https://stripe.com/privacy

== Client-Side Libraries ==

1. **AWS Amplify Authenticator**  
   - **What it is & why we use it:**  
     A React UI component library from the Amplify Framework. We embed its `<Authenticator>` component inside our Gutenberg block to render and manage the login/signup flows.  
   - **What it does:**  
     - Renders sign-in, sign-up, MFA, and password-reset forms.  
     - Under the hood it calls the Amazon Cognito APIs (see External Services entry), but **does not** itself authenticate or store secrets.  
   - **Docs & source:**  
     - GitHub repo: https://github.com/aws-amplify/amplify-ui  
     - Docs: https://ui.docs.amplify.aws/react/connected-components/authenticator
     
== Trademark Notice ==

Amazon Web Services, AWS, and Amazon Cognito are trademarks of Amazon.com, Inc. or its affiliates.  

Gatey is an independent open-source project and is **not affiliated with, sponsored by, or endorsed by Amazon Web Services**.

All references to “Amazon Cognito” are made purely to describe this plugin’s interoperability.

== Source & Build ==

**Public (free) source code:**  
All of the code that ships in this public ZIP (the “free” version) is published here: https://github.com/smartcloudsol/gatey

**WP Suite Admin source code:**  
The `wpsuite-admin/` directory contains modules originating from the Hub for WPSuite.io project: https://github.com/smartcloudsol/hub-for-wpsuiteio  
This shared component handles WP Suite workspace linking, licence validation, and subscription management, and will be included in all upcoming WP Suite plugins.

**Premium-only features:**
We maintain a fork of the AWS Amplify Authenticator (with Edit Account, Setup TOTP, etc.) and any additional paid-only screens and services in a private repository. Those files are not part of this public source.

== Changelog ==

= 2.4.2 =
* Compatibility: Refined paid-feature handling in preparation for upcoming WP Suite Agency subscriptions.

= 2.4.1 =
* Docs: Updated WP Suite brand wording and platform positioning across the readme.

= 2.4.0 =
* Breaking change: Authenticator and Account Attribute now render inside the Shadow DOM, so any site-level CSS overrides must move into shared WP Suite Theme CSS or the block-level `themeOverride` attribute.
* Performance: Added schedule-after-initial-paint mounting so frontend UI yields the main thread sooner and improves early paint metrics where supported.
* Feature: Gatey now loads shared WP Suite Theme CSS inside supported shadow-root UI for reusable site-wide component styling.
* Feature: Added pattern override support so synced patterns can override selected original block attributes without duplicating the whole block setup.

= 2.3.3 =
Performance: Moved frontend runtime scripts and shared vendor assets to the footer and enabled deferred loading where safe, reducing render-blocking work during initial page load.
Internal: Improved script loading order so lightweight bootstrap data can be available early without forcing heavier frontend dependencies into the page head.

= 2.3.2 =
* Fix: Restored the Authenticator frontend CSS rules that were missing from the block view script, including the `.sr-only` helper used to visually hide the optional "Powered by" attribution.
* Fix: Improved sign-in redirect handling by normalizing current and target URLs before redirecting, preventing site-specific redirect loops after returning from sign-in.
* Diagnostics: Added optional Gatey login/logout debug logging to help investigate WordPress login redirect issues on affected sites.

= 2.3.1 =
* Fix: Gatey Patterns now lists only reusable blocks that actually contain the Gatey Authenticator block.
* Fix: The copied Gatey shortcode now uses `[gatey id="..."]`, matching the shortcode handler.
* Docs: Added a readme FAQ note clarifying the saved-pattern shortcode format.

= 2.3.0 =
* Maintenance: Moved the customized AWS Amplify UI React packages to the `@smart-cloud` npm scope.
* Maintenance: Gatey now uses the `@smart-cloud/aws-amplify-ui-react` package family for its customized Authenticator foundation.
* Compatibility: Updated the "Tested up to" value for WordPress 7.0.
* Internal cleanup: Improved long-term dependency ownership and reduced reliance on locally patched upstream frontend packages.

= 2.2.2 =
* Compatibility: Replaced the previous Cognito token verification dependency with a lightweight Gatey-owned verifier based on `firebase/php-jwt`.
* Compatibility: JWKS keys are now fetched through the WordPress HTTP API instead of relying on PHP URL file access, improving support for hosts where `allow_url_fopen` is disabled.
* Reliability: Added WordPress transient caching for Cognito JWKS responses and automatic refresh on key mismatch, improving resilience during Cognito signing key rotation.
* Security/maintenance: Kept cryptographic JWT verification in a maintained third-party library while moving the Cognito-specific validation logic into Gatey.
* Internal cleanup: Improved token verification error handling and WordPress.org plugin-check compatibility.

= 2.2.1 =
* Updated project dependencies.
* Improved site settings saving so global reCAPTCHA settings are no longer overwritten accidentally.

= 2.2.0 =
* Compatibility: Updated Gatey admin and block packages for TypeScript 6 and newer WordPress typings.
* Fix: Resolved typing regressions affecting admin and block code during development and build.
* UX/Internal: Standardized the InfoLabel / openInfo pattern across nested settings editors for more consistent help-drawer behavior.
* Build: Improved package compatibility with the updated shared WP Suite dependency stack.

= 2.1.10 =
* Fix: Adjusted Authenticator mounting behavior so Authenticator screens can fully remount when required.
* Fix: Prevented issues caused by the previous mount hardening logic in flows where full screen remounting is necessary.
* Stability: Ensures Authenticator screen transitions and re-rendering work correctly in all supported scenarios.

= 2.1.9 =
* Fix: Improved frontend block mounting so components can no longer mount multiple times in parallel on the same element.
* Refactor: Moved the shared race-condition protection into a unified shared helper for more consistent frontend initialization.
* Stability: Makes frontend mounting more deterministic and reduces duplicate initialization issues.

= 2.1.8 =
* Fix: Improved Elementor widget parameter handling for more reliable widget configuration and rendering.
* UX: Gatey widgets now behave more consistently across Elementor-based integrations.

= 2.1.7 =
* Fix: Stabilized loading of `admin/logger.php` and initialization of the `Logger` class in the admin environment.
* Fix: Prevented cases where admin PHP pages could break because the logger initialized later than required.
* Stability: Ensures the logger is reliably available during admin page load across all affected admin screens.

= 2.1.6 =
* Compatibility: Switched Elementor widget loading to namespace-based registration under `SmartCloud\WPSuite\Gatey`.
* Stability: Improved shared hub loading and race-condition handling for more reliable startup together with other WP Suite / wpsuite.io plugins.
* Internal: Hardened plugin bootstrap sequencing to reduce cross-plugin initialization timing issues.

= 2.1.5 =
* Fixed a race condition during logout in the Authenticator block.
* Prevented premature redirect to the sign-in page before logout and Cognito token revocation completed.

= 2.1.4 =
* Improved the robustness of script loading and dependency ordering for shared functions, blocks, and related assets.
* Added defer loading where possible so scripts no longer block page rendering unnecessarily.

= 2.1.3 =
* Admin: Added a new "Hide Sign Up" setting in the admin UI to control whether the sign-up option is shown in login and sign-up forms.
* Admin: Added passwordless configuration options to the admin UI, including hidden authentication methods, preferred authentication method, and passkey registration prompt settings.
* UX: Makes key sign-in experience settings configurable directly from the plugin admin interface.

= 2.1.2 =
* Stability: Improved plugin bootstrap order so Gatey can no longer initialize before the shared WP Suite hub when multiple WP Suite plugins load together.
* Internal: Adjusted hub-loader sequencing and hardened global `WpSuite` namespace initialization to prevent race conditions during startup.
* Compatibility: Helps ensure more reliable interoperability with other WP Suite plugins that depend on the shared hub lifecycle.

= 2.1.1 =
* Improvement: updated the shortcode column rendering/behavior.

= 2.1.0 =
* Moved reCAPTCHA handling and script loading to the shared hub-for-wpsuiteio package.
* Added admin-configurable debug logging for monitoring plugin PHP execution when needed. Requires both WP_DEBUG and WP_DEBUG_LOG to be enabled.
* Fixed a redirection issue.
* Simplified attribute handling across all block rendering flows.
* Renamed the Redux store from wpsuite/gatey to smartcloud/gatey to better align with the naming convention used across other plugins.

= 2.0.15 =
Fix: Improved WebCrypto polyfill initialization so Gatey loads reliably even in insecure (non-HTTPS) environments.
Update: Refreshed the bundled Authenticator foundation to support upcoming authentication enhancements (including passwordless login).

= 2.0.14 =
* Fix: Gutenberg block registration now references the exact `apiVersion` from `block.json`, preventing asset mismatches.
* Fix: reCAPTCHA UI correctly hides itself, eliminating stray placeholders.

= 2.0.13 =
* Admin menu update: Gatey admin pages are now grouped under the unified **SmartCloud** top-level menu in WP Admin.
* Naming cleanup: standardized internal prefixes across PHP, JavaScript, and rendered HTML (classes, IDs, data attributes) using a `smartcloud-gatey` namespace to avoid collisions.
* Internal refactor only — no functional changes and no impact on existing configurations or frontend behavior.

= 2.0.12 =
* Change: removed the Authenticator block’s Custom CSS field to align with WordPress.org recommendations. You can still style the block using a custom CSS class and your theme/site styles.
* Cleanup: standardized PHP variable naming in render templates using the `wpsuite_gatey_` prefix.

= 2.0.11 =
* Fix: improved Authenticator frontend rendering. Gutenberg layout classes are now applied to the correct wrapper element, so editor layout settings (alignment/width, etc.) reliably carry over to the frontend.

= 2.0.10 =
* Improvement: standardized chunk naming in gatey-blocks so the dynamically imported custom block parser now has a stable filename (`custom-block-parser.js`).
* Compatibility: enables static exports by allowing you to include a fixed URL for the chunk (e.g. `[SITE_URL]/wp-content/plugins/gatey/gatey-blocks/dist/custom-block-parser.js`) so all required chunks are available on the static site.

= 2.0.9 =
* Performance: externalized Mantine CSS to further reduce the plugin payload.
* Fix: corrected editor asset loading so admin/editor assets are no longer loaded unnecessarily in the Gutenberg editor.
* Cleanup: removed Amplify reconfiguration from gatey-admin (not needed).

= 2.0.8 =
* Fix: corrected the admin Mantine asset URL inside the plugin so Mantine loads properly.

= 2.0.7 =
* Fix: corrected `hub-loader.php` to ensure the shared SmartCloud admin menu loads reliably.

= 2.0.6 =
* Performance: corrected package entry points so the correct builds are loaded, significantly reducing shipped JS size.
* Performance: externalized the admin UI Mantine dependency (similar to Amplify), further reducing overall plugin size.
* Stability: improved plugin bootstrapping by switching from jQuery ready to `DOMContentLoaded` and inlining observer logic, making loading more reliable across frontend, Gutenberg and Elementor.

= 2.0.5 =
Fix: sanitize resolved configuration to AuthenticatorConfig keys only (prevents unknown keys leaking from getConfig() or site settings).

= 2.0.4 =
Authenticator: simplified backend config loading by replacing `gatey.cognito.get` with a plain site-key based `fetch` (used by the Gutenberg editor). The Cognito wrapper was unnecessary for this request.

= 2.0.3 =
Updated the Authenticator block: removed Amplify reconfiguration both on the frontend and in the admin, since the correct Amplify configuration is now provided centrally.

= 2.0.2 =
Replaced the reCAPTCHA hook with an in-house implementation so it can be used outside React components too (e.g. in plain JS/TS contexts).

= 2.0.1 =
Improved shared admin menu ownership detection: Fixed a case where the common SmartCloud admin menu could fail to load if the previously “active” plugin no longer existed under wp-content/plugins (e.g., the folder was renamed). The decision logic now also validates the filesystem.
reCAPTCHA provider update: Switched from the custom reCAPTCHA implementation to react-google-recaptcha-v3.

= 2.0.0 =
BREAKING: Introduced a unified WP Suite global registry and event-based initialization.

* New global namespace: use `globalThis.WpSuite` as the single entry point.
* New plugin registry: Gatey is now exposed under `globalThis.WpSuite.plugins.gatey`.
* New lifecycle events:
  * `wpsuite:gatey:ready` — fired when Gatey is fully initialized and the store is ready.
  * `wpsuite:gatey:error` — fired if initialization fails.
* Improved interoperability: dependent WP Suite plugins can reliably detect readiness without relying on script order.
* Internal refactor: Gatey runtime helpers now resolve state through the WP Suite plugin registry.

= 1.10.2 =
* Fixed a rendering issue in the Authenticator block
* Custom blocks are now visible again with an active subscription
* Custom blocks are also available in the Gutenberg editor when using the "PAID" preview mode

= 1.10.1 =
* Minor refinements and fixes in the WPSuite.io / Connect your Site admin menu
* Small internal improvements

= 1.10.0 =
* Refactored the admin codebase behind the WPSuite.io / Connect your Site menu
* Improved site connection and license management internals
* Prepared the foundation for upcoming WP Suite plugin integrations

= 1.9.2 =
* Pro features are now enabled again in the admin interface once a site is registered and connected to wpsuite.io
* Frontend behavior remains unchanged: Pro features are applied only with an active subscription or trial

= 1.9.1 =
* Minor fixes and refinements in the signIn and signOut hooks
* Improved reliability of authentication-related state handling
* Small internal cleanups

= 1.9.0 =
* Refined and reorganized internal dependencies for better performance and maintainability
* Fixed several TypeScript and linting issues across the codebase
* Significantly reduced JavaScript bundle sizes, especially on the frontend
* General internal cleanup and stability improvements

= 1.8.3 =
Fixed broken styling and attributes in multiple Gutenberg blocks.
The previous release escaped `get_block_wrapper_attributes()` incorrectly, which
prevented proper rendering of class names, inline styles, and data attributes.

= 1.8.2 =
Re-enabled the **Hub for WPSuite.io** functionality directly inside Gatey.  
This component reconnects your WordPress instance with wpsuite.io for subscription and licence management — previously released as a separate plugin, but re-integrated here following WordPress.org review guidelines.  
Also improved wp-login synchronization: changing an email address in Cognito no longer prevents successful WordPress login when the WP-login integration is enabled.
text

= 1.8.1 =
Removed an unnecessary debug log entry from the authentication flow to keep browser and server logs clean.

= 1.8.0 =
- New integration with the **Hub for WPSuite.io** plugin: licence validation and site connection have been moved into a shared component.
- Gatey’s admin pages (Settings and Patterns) now appear under the central **WPSuite.io** menu in wp-admin, alongside other WP Suite plugins.
- Minor UI refinements and code clean-up to support the new menu structure.

= 1.7.3 =
Removed the outdated BASIC plan and updated the pricing table to reflect the new WP Suite model (Free + Pro across all plugins). 
Dependencies have been refreshed in the React/Node.js subprojects.

= 1.7.2 =
Fixed an Account Attribute scoping bug: when multiple blocks displayed the same attribute on a page (e.g., first name in the header and on the profile page), updating the data no longer applies the first block’s prefix/postfix to all others. Each instance now retains its own settings.

= 1.7.1 =
- General tab tidy-up — settings are now grouped in a clearer order.
- New switch: Hide **“Powered by Gatey”** text (enabled by default, so the link stays hidden unless you turn it off).

= 1.7.0 =
Social-login overhaul
- **Google**, **Facebook**, **Apple**, and **Amazon** sign-in buttons are now available on the **free** plan.
- On **PRO** you can display any number of custom **OIDC** / **SAML** identity-provider buttons on the Sign-In and Sign-Up screens.

= 1.6.4 =
Fixed the Account Attribute block: after a user updates the underlying data, your configured **prefix** and **postfix** are now retained instead of being replaced by the raw attribute value.

= 1.6.3 =
The **Account Attribute** block now supports **link**, **prefix**, and **postfix** attributes (prefix/postfix also available in the Elementor widget), letting you add links and extra text right in Gutenberg. The plugin also rewrites logout_url in WordPress integration mode, not just login_url.

= 1.6.2 =
Removed the “Powered by Gatey” footer from the free version’s Sign-In and Sign-Up screens; all plans now show a clean, unbranded interface.

= 1.6.1 =
Help docs updated: added a concise note explaining the **Custom provider name** field.

= 1.6.0 =
**Bring your own IdP**: Gatey now works with **any** identity provider configured in Amazon Cognito—SAML or OIDC—alongside the built-in Facebook, Google, Amazon, and Apple options. Just add the provider in Cognito and it appears automatically in the Authenticator settings.

= 1.5.1 =
- **Account Attribute block** – now fully inherits typography from the parent page/template; no more manual font overrides.
- **Admin site selector** – added a filter that lets you search your site list by name or primary domain, ideal for agencies with many projects.

= 1.5.0 =
- **New Elementor widgets**
  - **Gatey Authenticator** – drag-and-drop the full authenticator without touching shortcodes; every pattern attribute (screen, variation, language, etc.) is editable via native Elementor controls.
  - **Gatey Account Attribute** – display any Cognito user attribute with Elementor styling and attribute pickers, no shortcode required.

= 1.4.5 =
The **Authenticator** and **Account Attribute** blocks now default to font-family: inherit, so they automatically follow any typography set by your theme or the Gutenberg editor.

= 1.4.4 =
Form Field blocks now honour Gutenberg alignment controls: set Dimensions › Width when the field sits in a Row, or Dimensions › Height when it’s inside a Stack, giving you finer layout control.

= 1.4.3 =
Fixed the **“Paid” preview** inside the Gutenberg editor when you’re running the free plan: the Authenticator block now stays visible and reflects your current styling instead of disappearing.

= 1.4.2 =
**Document Overview clarity**: each **Form Field** block now shows its target attribute in the Gutenberg Outline, so you can see at a glance which field is which.
**One-click field generator**: in the **Custom Block → Settings → Block** tab (used for Sign Up and Edit Account screens) you’ll find an “**Add Missing Form Fields**” button. It auto-inserts every field required by your current loginMechanisms and signUpAttributes settings—no more dropping “Form Field” blocks one-by-one.

= 1.4.1 =
Added a **Custom CSS** field to the Authenticator block: style any element inside the widget without touching theme files.

= 1.4.0 =
**Live form-builder in Gutenberg** – Sign-Up and Edit-Account screens are now edited directly in the block editor. Drag fields, Rows, Stacks and any other core layout blocks, and see your changes instantly.
Field order, labels, visibility and full page layout are all controlled in one place—no more sidebar lists.

= 1.3.6 =
The reCAPTCHA provider is now enqueued inside the Gutenberg editor whenever a Site Key is set, so the Authenticator block renders correctly during editing.

= 1.3.5 =
Second observer.js patch: fixed a bug that could prevent Gatey Gutenberg blocks from rendering (they stayed invisible but produced no error).

= 1.3.4 =
Patched observer.js: eliminated edge-case errors that could appear in the browser console (rendering was unaffected).

= 1.3.3 =
Improved licence handling: secondary-domain detection and validation logic have been fixed, ensuring licences activate correctly on all mapped domains.

= 1.3.2 =
**Flexible reCAPTCHA options**: In Gatey → Settings → General you can now choose Classic v3 or Enterprise keys, and switch between google.com and the China-friendly recaptcha.net domain.
**Reduced-motion polish**: Additional fixes ensure all editor and front-end animations fully respect the user’s “prefers-reduced-motion” setting (follow-up to 1.2.7).
**Insecure-host compatibility**: All features, including licence validation, now work on plain-HTTP sites lacking the browser Crypto API.

= 1.3.1 =
reCAPTCHA upgrade: Gatey now works exclusively with reCAPTCHA Enterprise (v3) keys.

= 1.3.0 =
Sign-up attributes unlocked: all standard Cognito attributes are now available in the free plan.
Form-field editor moved down to BASIC: customise field order, labels, and validation rules without a PRO licence.
New field type – country: autocomplete selector with the full ISO list, translated in all 22 Gatey languages.
Enhanced phone_number field: country-code picker now uses the same autocomplete component and localisation as the new country field.

= 1.2.7 =
Fixed the **Copy Shortcode** button in **Gatey** › **Patterns** so it now works on sites served over “http://”. Also removed animations from Mantine Select components in the admin UI to prevent tab freezes on Windows when OS-level animations are disabled.

= 1.2.6 =
Added a licence-file download guide to the admin screen, plus three JavaScript helpers—`Gatey.cognito.toSignIn()`, `Gatey.cognito.toSignUp()`, and `Gatey.cognito.toForgotPassword()`—for switching screens inside custom blocks.

= 1.2.5 =
Filled in the last untranslated UI strings and exposed two client-side helpers: `Gatey.cognito.setLanguage()` and `Gatey.cognito.setDirection()` for runtime language or LTR/RTL switching.

= 1.2.4 =
Fixed attribute parsing in the [gatey] shortcode; all parameters now load correctly even in edge-case combinations.

= 1.2.3 =
Small fixes: the shortcode’s direction attribute now accepts auto, and shortcode previews inside the Elementor editor render correctly even when multiple Gatey shortcodes are placed on the same page.

= 1.2.2 =
Added “**Auto (by language)**” to the Direction setting: the Authenticator now switches to RTL for Arabic or Hebrew and stays LTR for all other languages. You can still override this at any time by selecting **LTR** or **RTL** explicitly.

= 1.2.1 =
Added a Custom Translations URL field under Gatey › Settings › General. Point it to a JSON file to override any of the 22 built-in languages—or add completely new languages—without touching the code.

= 1.2.0 =
The front-end Authenticator screens are now fully localised: choose from 22 languages and switch text direction (LTR / RTL) as needed.

= 1.1.2 =
Refined the Settings screen: subscription-management actions now appear only for users who have permission to manage the site’s active plan.

= 1.1.1 =
Added the JavaScript chunks that were accidentally left out of 1.1.0; all blocks and admin screens now load correctly.

= 1.1.0 =
New on-disk configuration system eliminates all front-end config downloads. Config + weekly licence file now live in the WordPress uploads folder (static exports still refresh the licence weekly). Because downloads are gone, **all plans are now flat-priced—there is no longer any “Additional Usage” charge**.
The admin screen makes it clear whether the site is linked to a WP Suite workspace and whose workspace it is. 

= 1.0.5 =
Added new style controls (typography, spacing, colours, etc.) to the Account Attribute block and fixed a configuration-loading bug that could prevent the admin UI from appearing.

= 1.0.4 =
Authenticator block: added optional trigger‑button properties — render a button first, and open the Authenticator only after users click it. Perfect for building lean profile pages (see updated Get Started guide).
Account block: now supports full Gutenberg styling controls — alignment, custom HTML tag, box‑shadow, spacing (margin/padding), min‑height, typography (font‑size, line‑height, text‑align) and color (background & text).

= 1.0.3 =
Bumped the Authenticator block version to invalidate cached frontend assets—ensures the updated view.js is loaded. No functional changes.

= 1.0.2 =
Pro features for an already‑connected site can now be edited even if the WordPress administrator is not logged in to wpsuite.io.
Fixed [gatey] shortcode: the screen, variation, and colormode attributes are now honoured (previously only the pattern defaults were shown).

= 1.0.1 =
Authenticator block: added optional “Signing in”, “Signing out” and “Redirecting” message fields, so you no longer need to listen for gatey‑authenticator events for basic feedback. Defaults are empty.

= 1.0.0 =
Initial release.

== Upgrade Notice ==

= 2.4.2 =
Recommended compatibility update in preparation for upcoming WP Suite Agency subscriptions. No configuration changes are required.

= 2.4.1 =
No urgent update required; this is a documentation-only readme update.

= 2.4.0 =
Breaking styling update. Authenticator and Account Attribute now render in the Shadow DOM; move any site CSS overrides into shared WP Suite Theme CSS or the block-level `themeOverride` setting.

= 2.3.3 =
Recommended performance update. Frontend scripts now load later and defer where safe, reducing render-blocking work while preserving existing plugin behavior.

= 2.3.2 =
Recommended update. Restores missing Authenticator frontend CSS, fixes a site-specific post-login redirect loop, and adds optional login/logout diagnostics for troubleshooting affected setups.

= 2.3.1 =
Recommended update if you use Gatey Patterns or copy shortcodes from wp-admin; this release filters the list to real Gatey patterns and fixes the copied shortcode to use the required `id` attribute.

= 2.3.0 =
Recommended update. Gatey now uses Smart Cloud scoped Amplify UI packages for its customized Authenticator foundation and has been tested with WordPress 7.0. No configuration changes are required.

= 2.2.2 =
Recommended update. Improves Cognito JWT verification compatibility on restrictive hosting environments and replaces a small upstream dependency with Gatey-owned WordPress-compatible verification logic.

= 2.2.1 =
This release updates dependencies and improves site settings persistence so saving Gatey settings no longer overwrites the shared global reCAPTCHA configuration unintentionally.

= 2.2.0 =
Recommended compatibility update. Aligns Gatey admin and blocks with TypeScript 6 and newer WordPress typings, and improves consistency of help-drawer behavior across nested settings editors.

= 2.1.10 =
Recommended update. Fixes Authenticator mounting so screens that require a full remount now work correctly again. Important update for sites using the Authenticator UI.

= 2.1.9 =
Recommended update. Improves frontend mounting reliability by preventing parallel duplicate mounts on the same element and moving race-condition protection to a shared helper.

= 2.1.8 =
Recommended update. Improves Elementor widget parameter handling for more reliable behavior in Elementor-based layouts.

= 2.1.7 =
Recommended stability update. Fixes an admin-side loading issue where the Logger class could initialize too late in certain cases, causing affected PHP-based admin pages to break.

= 2.1.6 =
Recommended stability and compatibility update. This release updates Elementor widget loading to namespace-based registration and improves shared hub loading to better prevent race-condition issues when multiple WP Suite plugins are active.

= 2.1.5 =
This release fixes a logout race condition in the Authenticator block that could redirect users too early and leave them signed in unexpectedly.

= 2.1.4 =
This release improves how Gatey loads scripts and resolves dependencies, with broader use of deferred loading to reduce render-blocking during page load.

= 2.1.3 =
Adds new admin settings for sign-in experience control. You can now configure whether the sign-up option is hidden, and manage passwordless authentication options directly from the Gatey admin UI.

= 2.1.2 =
Recommended stability update for sites running multiple WP Suite plugins together. This release hardens startup order so Gatey cannot initialize before the shared hub, preventing race-condition issues around the global `WpSuite` namespace and shared plugin bootstrapping.

= 2.1.1 =
Includes updated shortcode column handling. Recommended update.

= 2.1.0 =
This release moves reCAPTCHA integration into the shared WP Suite hub, adds optional admin-side debug logging, fixes a redirection issue, simplifies block rendering internals, and renames the Redux store from wpsuite/gatey to smartcloud/gatey.

= 2.0.15 =
Recommended update. Improves WebCrypto polyfill loading for non-HTTPS / non-secure contexts (local dev, staging, embedded previews) and updates the underlying Authenticator foundation in preparation for upcoming passwordless login support.

= 2.0.14 =
Update to keep Gutenberg block assets loading correctly (block.json `apiVersion` now matches WordPress core expectations) and to prevent reCAPTCHA placeholders from lingering.

= 2.0.13 =
This update aligns Gatey with the new unified **SmartCloud** admin menu and standardizes internal naming and prefixes.
No configuration changes are required, and existing sites will continue to work without modification.

= 2.0.12 =
The Authenticator block no longer includes a built-in Custom CSS field. If you need extra styling, add a CSS class in the block’s “Additional CSS class(es)” field and define the styles in your theme or site CSS. Also includes internal PHP naming cleanup (`wpsuite_gatey_` prefix).

= 2.0.11 =
Fixes an Authenticator layout issue where Gutenberg editor layout settings didn’t always apply on the frontend. Recommended update.

= 2.0.10 =
Improves static export compatibility by giving the dynamically imported custom block parser a stable chunk name (`custom-block-parser.js`). You can now reliably add the fixed chunk URL as an extra exported asset.

= 2.0.9 =
Further reduces plugin size (Mantine CSS externalized), fixes unnecessary Gutenberg editor asset loading, and removes unused Amplify reconfiguration in gatey-admin. Recommended update.

= 2.0.8 =
Fixes Mantine loading in the admin UI by correcting the plugin-internal asset URL. Recommended update.

= 2.0.7 =
Fixes `hub-loader.php` to improve reliability of loading the shared SmartCloud admin menu. Recommended update.

= 2.0.6 =
Performance + stability update: smaller JS payload and more reliable loading across frontend, Gutenberg and Elementor. Recommended update.

= 2.0.5 =
Configuration hardening update: the plugin now keeps only AuthenticatorConfig keys when resolving settings, avoiding issues caused by extra/unexpected config fields.

= 2.0.4 =
Authenticator now fetches backend config via a simple site-key based request instead of `gatey.cognito.get`. No action required.

= 2.0.3 =
Authenticator no longer reconfigures Amplify (frontend/admin). Amplify config is now injected centrally, improving stability and reducing side effects.

= 2.0.2 =
Updated the reCAPTCHA hook to an in-house version so reCAPTCHA is available outside React components as well.

= 2.0.1 =
Fixes shared WPSuite.io menu loading when an “active” plugin folder is missing (e.g., renamed). Also switches reCAPTCHA v3 to react-google-recaptcha-v3. Recommended update.

= 2.0.0 =
New WP Suite plugin registry + ready events. Prefer `globalThis.WpSuite.plugins.gatey` and listen for `wpsuite:gatey:ready`. Legacy `Gatey.*` and `Gatey.cognito.store` still work but are deprecated.

= 1.10.2 =
This update fixes a rendering issue in the Authenticator block and restores custom blocks for subscribed sites and in the Gutenberg "PAID" preview mode.
No action is required after updating.

= 1.10.1 =
This is a small maintenance update with minor improvements to the WPSuite.io site connection screen.
No action is required after updating.

= 1.10.0 =
This update refactors the internal admin code for WPSuite.io site connection and license handling.
No action is required after updating. Recommended for compatibility with upcoming WP Suite plugins.

= 1.9.2 =
This update restores access to Pro features in the admin interface for sites that are registered and connected to wpsuite.io.
Pro features will continue to take effect on the frontend only with an active subscription or trial.

= 1.9.1 =
This is a minor maintenance release with small fixes in the signIn and signOut hooks. No configuration changes are required.

= 1.9.0 =
No configuration changes are required. Updating is recommended for improved performance.

= 1.8.3 =
Important fix — update immediately if your Gatey blocks (Authenticator, Account Attribute, or Form Field) lost styling or alignment. The previous version escaped wrapper attributes incorrectly; this update restores proper class, style, and data-* handling while keeping the output secure.

= 1.8.2 =
Update to restore the built-in Hub for WPSuite.io component (site connection, subscription, and licence management) and to fix a wp-login sync issue where Cognito email changes blocked login.

= 1.8.1 =
Update to remove an obsolete log line — no functional change, but results in cleaner logs during sign-in and sign-up operations.

= 1.8.0 =
Update to migrate licence and site-connection handling into the shared **Hub for WPSuite.io** plugin. 
Gatey now appears under the central SmartCloud menu in wp-admin, and will show clear guidance if the Hub plugin is missing or not connected. 
Install the Hub plugin to continue using Pro features.

= 1.7.3 =
Update to stay aligned with the new WP Suite pricing (Free + Pro). 
The BASIC plan no longer exists; your site continues to work in Free mode unless upgraded to Pro.

= 1.7.2 =
Update if you use multiple Account Attribute blocks for the same attribute—each block will keep its own prefix/postfix after profile changes.

= 1.7.1 =
Update to see the reorganised General tab.

= 1.7.0 =
Update to unlock the four built-in social providers on every site and, if you’re on PRO, add multiple custom OIDC or SAML IdPs with a few clicks.

= 1.6.4 =
Update if you use prefix/postfix on Account Attribute blocks; they now remain visible after profile changes.

= 1.6.3 =
Update to style Account Attribute fields with prefix/postfix text or make them clickable, and to get automatic handling of logout_url alongside login_url.

= 1.6.2 =
Update to eliminate the “Powered by Gatey” label on Sign-In / Sign-Up pages—no branding, even on the free tier.

= 1.6.1 =
Update to see a clear description of what “Custom provider name” is and where to find it in the Cognito console.

= 1.6.0 =
Update to enable sign-in with any Cognito-supported SAML or OIDC provider. After upgrading, open your Authenticator block (or shortcode/widget) to select newly added IdPs—no extra code required.

= 1.5.1 =
Update to get automatic theme fonts on Account Attribute blocks and a new name/domain filter in the admin’s site list for quicker site management.

= 1.5.0 =
Update to add two dedicated Gatey widgets to Elementor’s panel. Drop them into any layout and configure all options visually instead of writing shortcodes.

= 1.4.5 =
Update to let Gatey blocks pick up your theme’s font stack without extra CSS. If you previously forced a custom font, re-apply it in the block’s style panel after upgrading.

= 1.4.4 =
Update to adjust Form Field width in rows or height in stacks directly from the block’s Dimensions panel—no custom CSS required.

= 1.4.3 =
Update if the Authenticator block vanished in Gutenberg’s Paid preview; it now renders correctly with your customisation even on the free version.

= 1.4.2 =
Update to get attribute labels in the Outline and a new button that instantly adds all missing Sign-Up/Edit-Account fields, saving you time when building forms.

= 1.4.1 =
Update to apply per-block Custom CSS to the Authenticator—fine-tune colours, spacing, or hide elements right from the editor.

= 1.4.0 =
Update to design Sign-Up and Edit-Account forms visually inside Gutenberg: reorder fields, add layout rows or stacks, and preview the result in real time.

= 1.3.6 =
Update if the Authenticator block was blank in Gutenberg when reCAPTCHA was enabled; the editor preview now loads as expected.

= 1.3.5 =
Update immediately if you’re on 1.3.4; this patch restores the visual rendering of Gatey blocks that were not appearing in Gutenberg.

= 1.3.4 =
Update to remove stray console warnings; no functional changes, just a cleaner log.

= 1.3.3 =
Update if you use a secondary domain; licences will now validate and refresh properly across every configured domain.

= 1.3.2 =
Update to:
1. Select Classic v3 or Enterprise reCAPTCHA and optionally recaptcha.net.
2. Get smoother reduced-motion behaviour.
3. Use Gatey on non-HTTPS hosts with full licence checks intact.

= 1.3.1 =
After updating, generate a new Site Key in Google Cloud → reCAPTCHA Enterprise and paste it into Gatey → Settings → General → Google reCAPTCHA Enterprise (v3) Site Key. Update any Lambda that verifies the token to read validationData.recaptchaToken; legacy reCAPTCHA keys will no longer work.

= 1.3.0 =
After updating you can add Cognito sign-up attributes on every site, customise form fields starting with the BASIC plan, and use the new country and improved phone fields in any language.

= 1.2.7 =
Update if the shortcode-copy button failed on non-HTTPS sites or if you experienced admin-tab freezes on Windows; both issues are resolved.

= 1.2.6 =
Update to see licence-file instructions in the admin area and to use the new helper functions for seamless Sign-In / Sign-Up / Forgot-Password screen switching in your custom Gatey blocks.

= 1.2.5 =
Update to get complete translations and use the new JavaScript methods to change language or text-direction on the fly.

= 1.2.4 =
Update if you rely on shortcode attributes—screens, button labels, direction, etc. will now be applied exactly as entered.

= 1.2.3 =
Update to use direction="auto" in shortcodes and to see accurate previews for every Gatey shortcode instance inside Elementor.

= 1.2.2 =
Update to get automatic text-direction handling, with the option to force LTR or RTL manually whenever you need.

= 1.2.1 =
After updating, head to Settings › General to supply your own translation-JSON URL and tailor the Authenticator text in any language you need.

= 1.2.0 =
After updating, open the Authenticator block or shortcode attributes to pick your preferred language and direction—no more English-only UI.

= 1.1.2 =
Update to hide subscription controls from non-authorised admins and keep the Settings menu clean.

= 1.1.1 =
This update only restores missing JS assets. Install it to ensure every Gatey block and the admin UI work as expected.

= 1.1.0 =
After updating, config and licence files are stored locally, the admin panel shows clearer linkage details, and pricing is simpler: every plan is pay-once with no extra usage fees.

= 1.0.5 =
This update restores the admin interface and unlocks extra styling options for the Account Attribute block; review the block’s settings to fine-tune its appearance after upgrading.

= 1.0.4 =
New trigger‑button option for the Authenticator block and full Gutenberg style support in the Account block. Update to simplify profile‑page layouts and unlock richer styling options.

= 1.0.3 =
This release only bumps the Authenticator block version to refresh cached view.js assets. No functional changes—safe to update immediately.

= 1.0.2 =
You can now edit Pro feature settings for a connected site without logging in to wpsuite.io. 
The release also fixes the [gatey] shortcode so that screen, variation, and colormode attributes work as expected.

= 1.0.1 =
You can now customise the messages shown while users are signing in, signing out, or being redirected. Leave the new fields blank to keep the previous silent behaviour, or remove any custom JavaScript listeners you added for the corresponding events.

= 1.0.0 =
Initial stable release.
