=== Elemance ===
Contributors: dotance
Tags: templates, widgets, header footer builder, popup builder, page builder
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 1.16.6
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Header/footer and popup builders that run on Elementor Free, 14 widgets you can switch off one by one, and 30+ section templates.

== Description ==

Building a site on Elementor Free usually means three plugins: an addon pack for extra widgets, a second plugin for a custom header and footer, and a third for popups. **Elemance is all three, plus a template library, in one plugin.**

= What makes it different =

**Header/footer and popups without Elementor Pro**
Elementor's Theme Builder and Popup Builder are Pro features. Elemance gives you both on the free version — design a header, footer or popup in Elementor itself, then choose where it appears and, for popups, what triggers it. No page builder switch, no second editor to learn.

**Every widget has an off switch**
Turn a widget off from the dashboard and it is never registered with Elementor, and its stylesheet and script are never enqueued. Use three of the fourteen and you carry the weight of three, not fourteen.

**Everything is built in the Elementor editor**
Headers, footers and popups are normal Elementor documents. Whatever you already know about containers, responsive controls and global styles applies to them too.

= What's Inside =

**🧩 14 Custom Widgets**
Marquee, Flip Card, Counter, Animated Heading, Skill Bar, Glass Card, Hotspot Image, Before/After Slider, Dual Color Heading, Pricing Table, FAQ/Accordion, Countdown Timer, Team Member, and Buttons. Found inside the Elementor editor under the **Elemance** widget category.

**🎨 30+ Section Templates**
Headers, footers, heroes, popups, testimonials, CTAs, features, pricing tables, FAQs, countdowns, contact sections, team grids, stats bars, and marquee strips — insert with one click directly inside the Elementor editor.

**⚡ Header / Footer Builder**
Build a fully custom header or footer with Elementor — even on **Elementor Free**. Works with popular themes (Hello Elementor, Astra, GeneratePress, OceanWP, Neve, Storefront) and includes a universal fallback for other themes.

**🪟 Popup Builder**
Create popups triggered by time delay, scroll percentage, exit intent, or click — with frequency control (once, once per session, every visit) and a clean, branded admin UI.

**🚀 Performance-First Widget Manager**
Don't need all 14 widgets? Turn off the ones you don't use from the dashboard. Disabled widgets don't register or load any CSS/JS — keeping Elementor fast and lean.

**✨ Guided Setup Wizard**
A short, polished onboarding flow runs once on activation — theme compatibility check, widget selection — and never runs again on update.

= How it works =

1. Install and activate Elemance
2. Complete the short setup wizard (widgets, theme check)
3. Open any page in Elementor
4. Click the **⚡ Elemance button** next to the Add Template icon to browse templates
5. Drag any **Elemance widget** from the left panel onto your page
6. Build a header/footer or popup from the **Elemance → Headers & Footers / Popups** admin menu

= Why Elemance? =

* One plugin instead of three — widgets, templates, header/footer and popups together
* Works on Elementor Free, no Pro licence required
* Per-widget on/off control, so you only load what you actually use
* No account, no API key, no external service — everything runs on your own site
* Designs that look current rather than recycled from 2018

== Installation ==

1. Upload the `elemance` folder to `/wp-content/plugins/`
2. Activate the plugin through the **Plugins** menu in WordPress
3. Elementor must be installed and active
4. Follow the setup wizard that appears automatically on first activation
5. Open any page in Elementor and start building

== Frequently Asked Questions ==

= Does this require Elementor Pro? =
No. Elemance works fully with free Elementor, including the Header/Footer Builder and Popup Builder.

= How do I use the templates? =
Open the Elementor editor, click the purple ⚡ Elemance button next to the Add Template/+ icons, browse by category, and click Insert.

= Will the setup wizard run again after I update the plugin? =
No. The wizard runs only once, on first activation. You can re-run it manually anytime from Elemance → Re-run Setup Wizard in the dashboard.

= Can I turn widgets off? =
Yes. Go to Elemance → Widgets tab in the dashboard and toggle any widget off. Disabled widgets stop loading their CSS/JS and stop registering in Elementor entirely.

= Does the Header/Footer Builder work with my theme? =
It works out of the box with Hello Elementor, Astra, GeneratePress, OceanWP, Neve, and Storefront. Other themes get a universal fallback that hides the theme's native header/footer.

= Is this free? =
Yes, completely free. More widgets and templates are added with each update.

== Screenshots ==

1. Admin dashboard — templates library with search & category filters
2. Widget Manager — toggle widgets on/off to keep Elementor fast
3. Setup Wizard — guided first-time onboarding
4. Header/Footer Builder admin screen
5. Popup Builder admin screen
6. Elemance widgets inside the Elementor editor panel

== Changelog ==

= 1.16.6 =
* Documentation only: rewrote the description so it leads with what the plugin actually replaces — an addon pack, a header/footer plugin and a popup plugin — instead of listing features in no particular order.

= 1.16.5 =
* Fixed: the setup wizard is a complete HTML document, but it was printed from inside the admin page that WordPress had already opened — so the admin sidebar and toolbar sat alongside it instead of it filling the screen. It is now served at `admin_init`, before any admin chrome is output.

= 1.16.4 =
* Fixed: the setup wizard's welcome screen still advertised "24+ Templates" and "9 Widgets" from an older release. Both counts are now read from the plugin itself, so they cannot go stale again. It also no longer claims full page templates, which the free plugin does not ship.

= 1.16.3 =
* Fixed: the Header & Footer Builder and Popup Builder screens rendered completely unstyled. The admin stylesheet was gated on the dashboard's hook suffix alone, so neither submenu ever loaded it — the pages worked, but looked like raw HTML.

= 1.16.2 =
* Added the `Requires Plugins: elementor` header, so WordPress itself now blocks activation without Elementor instead of leaving the plugin half-loaded.
* Changed: the dashboard's sidebar card now points at the documentation. It previously advertised a Pro version that does not exist yet, which is not something a plugin should ship.
* Changed: readme tags no longer use another plugin's trademarked name.

= 1.16.1 =
* Fixed every issue reported by the official Plugin Check tool: all remaining unescaped output now escapes at the point it is printed (values escaped into a variable earlier were invisible to the checker and, in a couple of places, genuinely unescaped), `$_POST`/`$_GET` input is unslashed and sanitised inline, and the nonce values are sanitised before verification.
* Changed: the setup wizard now registers its stylesheet and script through `wp_enqueue_style()`/`wp_enqueue_script()` and passes its configuration via `wp_localize_script()`, instead of printing raw `<link>`, `<script>` and inline-JSON tags.
* Removed: `load_plugin_textdomain()` and the unused `Domain Path` header. WordPress has loaded translations automatically since 4.6, and the plugin ships no `languages` folder.

= 1.16.0 =
* Security: links set to open in a new tab now also carry `rel="noopener"`. Without it, the page you open keeps a live `window.opener` reference back to yours. Affected Buttons, Flip Card, Glass Card, Pricing Table and Team Member — all six link sites now share one helper, so the two halves cannot drift apart again.
* Fixed: Glass Card and Team Member ignored the link's nofollow setting entirely. They now honour it.
* Changed: the FAQ/Accordion demo content no longer advertises a Pro version. Default content ends up on real pages, so it should read as a usable example rather than an advert.
* Tested against WordPress 7.1.

= 1.15.2 =
* Fixed critical error: "Uncaught TypeError: Illegal offset type in isset or empty" in Elementor's CSS generator, which could crash the entire site (via Elementor Pro Theme Builder header/footer locations, on every page). Root cause: three SLIDER-type controls — Glass Card's Blur Amount, Accordion's Open/Close Speed, and Buttons' Glow Speed — declared a `selectors` CSS mapping without the required `size_units` key, which Elementor's style renderer cannot safely process. All three now declare `size_units` correctly.

= 1.15.1 =
* Fixed: Buttons widget icon wasn't rendering — the icon class was being passed directly into Icons_Manager::render_icon() instead of onto a wrapping element, which is not how Elementor's icon renderer expects custom classes. Now wraps the icon in its own span, matching the same pattern used by Flip Card, Glass Card, and Team Member.

= 1.15.0 =
* New widget: Buttons — 5 distinct types: Solid, Outline, Gradient (animated shift on hover), Icon Slide (icon slides in on hover), and Border Glow (a light that continuously chases around all 4 sides of the border)
* Full control set: icon + position, size presets, alignment, full width, colors per type, hover states, border radius, padding, typography, shadow, and glow speed/colors
* New template: Buttons - Style Showcase (all 5 types side by side)
* Now 14 widgets and 32 templates

= 1.14.0 =
* Full widget audit — fixed 3 bugs and closed multiple missing-control gaps across the widget library
* Fixed: Countdown Timer's "Hide Widget When Expired" toggle had no effect — now actually hides the widget
* Fixed: Team Member's Overlay style rendered completely blank when no photo was set — now falls back to a normal info layout
* Fixed: Before/After had an unused, dead data attribute (no visible effect, cleaned up)
* Added: Glass Card — full Button style section (background/text/hover/typography/padding/radius)
* Added: Before/After — Label styling (background/text color/typography), Handle size controls, Show/Hide Handle toggle, custom Height control
* Added: Hotspot — Pin Size, Pulse Animation toggle, Tooltip Width, Tooltip Typography
* Added: Skill Bar — Bar Border Radius, responsive Bar Height and Gap
* Added: Animated Heading — Text Color on Highlight, Cursor Width, Cursor Blink Speed
* Added: Flip Card — Back Button Padding/Border Radius, nofollow support on the back button link

= 1.13.0 =
* New widget: Team Member — photo, name, role, bio, social icons; Card/Overlay/Horizontal/Minimal layouts, reveal-on-hover social icons over the photo
* New template: Team - Profile Cards (3-column, uses the new Team Member widget)
* Now 13 widgets and 31 templates

= 1.12.0 =
* New widget: Countdown Timer — Days/Hours/Minutes/Seconds to any date, Boxed/Circle/Minimal/Flip Card styles, custom expired message, responsive
* New templates: Countdown - Launch Hero, Contact - Info Cards, Team - Grid Cards, Stats - Number Bar (26 → 30 free templates)
* Added Countdown, Contact, Team, and Stats categories to the template library

= 1.11.0 =
* Added: FAQ/Accordion — Divider Color/Width/Style controls for Bordered and Minimal styles
* Added: FAQ/Accordion — full Item Box section for Boxed style (background, border color/width/radius, open-state background and border, horizontal padding)
* Added: FAQ/Accordion — full Icon section (closed/open background and color, size)
* Added: FAQ/Accordion — Open Item Background control for Bordered/Minimal styles
* Added: FAQ/Accordion — Open/Close Speed control
* Hardened: FAQ/Accordion now resets box-sizing and normalizes links/lists/headings/SVGs inside the answer area and the question button across all hover/focus/active states, so no Elementor-compatible theme's global button or typography styles can visually break it (the cause of the pink/crimson block some themes showed)

= 1.10.2 =
* Fixed: FAQ/Accordion question header could show a theme's default button background color (e.g. a pink/crimson block on hover/focus) because the question is a real <button> element for accessibility — many themes style raw buttons globally. Now explicitly resets background/border/shadow on hover, focus, and active states so the widget's own styling always wins.

= 1.10.1 =
* Responsive: Counter and Pricing Table number font sizes are now responsive (smaller defaults on tablet/mobile to prevent overflow)
* Responsive: Hotspot tooltips no longer overflow the viewport on narrow screens
* Fixed: Before/After image could go out of alignment when resizing the browser or rotating a device — now re-syncs on resize
* Fixed: hardened widget JS (Counter, Skill Bar, Animated Heading, Hotspot, Before/After) against double-initialization that could cause flicker, double-animation, or duplicate event bindings depending on script load timing
* Added: Glass Card — Icon Size, Title/Description typography, and Card Padding are now controllable and responsive

= 1.10.0 =
* Fixed: FAQ/Accordion was completely non-functional on some sites — the script's DOMContentLoaded listener could register after that event had already fired (footer-loaded script + caching/minification), so it never initialized. It now runs immediately if the DOM is already ready.
* Added: FAQ/Accordion now outputs FAQPage JSON-LD schema automatically for SEO rich results, with an on/off toggle in case an SEO plugin already provides one
* Added: FAQ/Accordion — Question Hover Color, Question Padding, Icon Gap controls
* Fixed: Flip Card would get stuck flipped on mobile/tablet taps (CSS :hover doesn't release cleanly on touch) — now uses a tap-toggle on touch devices while keeping hover on desktop
* Added: Flip Card — Card Width control (px/%, responsive), independent of Card Height
* Fixed: Marquee "Gap Between Items" had no effect when using Pill or Card item style (a hardcoded !important padding was overriding it) — gap now uses margin so it works with every item style
* Added: Marquee — Fade Edge Color control to match the fade to any section background
* Added: Pricing Table — full independent style controls for every part: Badge (bg/text/typography), Price (color/size), Currency, Period, Original Price, Description, Features (text/icon colors/spacing), Button (bg/text/hover/typography/padding/radius), and Note text color

= 1.9.1 =
* Dashboard: moved Sync/Editor/Wizard buttons into a compact quick-actions row below the hero
* Dashboard: added hover/focus info popover on each Widget Manager card explaining what the widget does

= 1.9.0 =
* Marquee: Item Style option — Plain, Pill, Card with custom background
* Flip Card: Card Shape option — Default, Rounded, Circle
* Counter: Layout Style option — Centered, Inline (icon left), Stat Card (bordered)
* Skill Bar: New bar styles — Thin Line, Dotted Segments
* Glass Card: Card Variant option — Glass Dark, Glass Light, Neon Glow, Solid Card
* Hotspot: Pin Style option — Dot Pulse, Number Badge, Plus Sign
* Dual Heading: Underline decoration per part — Solid, Dashed, Wavy, Double
* FAQ/Accordion: Dark Mode, Icon Position (left/right), Number style (01 02 03)

= 1.8.0 =
* New widget: FAQ / Accordion — 3 styles (bordered/boxed/minimal), 3 icon types (+/chevron/arrow), smooth height animation, allow-multiple toggle, accessibility (aria-expanded)
* New template: FAQ – Clean Accordion (two-column layout: heading left, accordion right)
* Added FAQ category to template library

= 1.7.0 =
* New widget: Pricing Table — 3 card styles (light/dark/gradient), repeater features list, badge, original price strikethrough, featured highlight
* New template: Pricing – Three Column Cards (Starter / Pro / Business)
* Added Pricing category to template library with correct thumbnail color
* Widget on/off toggle now includes Pricing Table

= 1.6.1 =
* Fixed missing thumbnail styling for Popup category templates
* Cache-busting version bump for CSS/JS assets

= 1.6.0 =
* Added guided Setup Wizard (runs once on activation, never on update)
* Added Widget Manager — toggle individual widgets on/off from the dashboard
* Disabled widgets no longer register or enqueue any assets (performance)
* Added "Re-run Setup Wizard" link to the admin dashboard

= 1.5.0 =
* Added Header / Footer Builder (works with Elementor Free)
* Added Popup Builder with delay, scroll, exit-intent, and click triggers
* Added 3 header templates, 3 footer templates, 3 popup templates

= 1.3.4 =
* Expanded template library to 15 free templates
* Added marquee, testimonial, features, and CTA sections

= 1.0.0 =
* Initial release
* 9 custom Elementor widgets
* Starter template library
* Elementor template library integration
* Admin dashboard

== Upgrade Notice ==

= 1.6.0 =
After updating, visit Elemance → Widgets to review which widgets are enabled. All widgets remain enabled by default.
