=== Jalpi Page Builder ===
Contributors: konceptwise
Tags: page builder, drag and drop, website builder, visual editor, landing page
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 1.0.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A lightweight visual page builder that outputs clean, semantic HTML — no shortcode bloat, no inline style soup, just fast pages.

== Description ==

Jalpi Page Builder is a full-canvas drag-and-drop page builder for WordPress. It outputs clean, semantic HTML with no inline style bloat and renders pages directly on the frontend without shortcode wrappers.

Jalpi Page Builder is part of the [Jalpi](https://jalpi.com) product line, developed and maintained by [Konceptwise Digital Media Pvt Ltd](https://konceptwise.com).

**Editor Features**

* Full-canvas drag-and-drop layout editor with real-time preview
* Section, Container, Column, Element node tree
* Right-click context menu, keyboard shortcuts (Ctrl+Z undo, Ctrl+Y redo, Ctrl+D duplicate, Delete)
* Command palette (Ctrl+K) for fast element insertion
* Inline text editing directly on canvas
* Device switcher (desktop / tablet / mobile) with per-breakpoint style overrides
* Zoom controls, undo/redo history, auto-save draft
* Layers panel for tree navigation

**40+ Elements**

* Basic: Heading, Text, Button, Spacer, Divider, HTML, Badge
* Media: Image, Video, Icon, Logo, Image Box, Gallery, Image Carousel
* Interactive: Tabs, Accordion, FAQ, Countdown, Counter, Progress Bar, Flip Box, Star Rating
* Cards: Feature Card, CTA, Pricing Table, Team Member, Stats Card, Timeline, Testimonial, Testimonials Carousel
* Layout: Social Icons, Icon List, Table
* Forms: Contact Form 7, Forminator, WPForms, Gravity Forms integration

**Layout System**

* Block mode (1-4 column grid with per-column width control)
* Flexbox mode (direction, wrap, justify-content, align-items, gap)
* CSS Grid mode (auto-fill, auto-fit, fixed columns, min column size)
* Position overrides (static / relative / absolute / sticky + offsets + z-index)

**Style Controls**

* 160+ Google Fonts with searchable, categorized font picker
* Typography (font family, size, weight, line height, letter spacing, transform, decoration)
* Background (classic color+image, gradient, video, slideshow) with Normal/Hover states
* Background overlay with opacity
* Border (type, color, width, radius, box-shadow) with Normal/Hover states
* Spacing (margin, padding, per-breakpoint)
* Responsive width/height
* Global design tokens (primary/secondary color, body/heading font) output as CSS custom properties

**Theme Builder**

Template overrides for Header, Footer, Single post, Archive, Search, and 404. Condition-based assignment (entire site, post type, specific post ID, category, tag, author, etc.) with priority ordering.

**Dynamic Tags**

Insert live data into any text or URL field using `{{tag}}` syntax:

* Post: title, content, excerpt, URL, date, modified date
* Author: name, bio, URL
* Site: name, URL, current year
* Taxonomy: categories, tags with custom separator
* Custom Fields: native post meta, ACF, Meta Box, and Pods support
* Archive: loop rendering with grid layout, pagination

**Template Library & Starter Sites**

* Save and reuse sections, pages, and elements as templates
* Import/export templates as JSON
* One-click Starter Site import with auto page creation and nav menu setup

**Revision History**

* Auto-save revisions (up to 50 per page) with content deduplication
* Named snapshots (up to 20 per page)
* One-click restore to any previous version

**About**

Jalpi Page Builder is a completely free plugin with no premium upsells, no feature locks, and no paid tiers. All features are available to every user.

**Company & Ownership**

Jalpi Page Builder is developed and maintained by **Konceptwise Digital Media Pvt Ltd**. Jalpi is a product line under Konceptwise, representing our proprietary page builder technology for WordPress.

- **Company Website:** https://konceptwise.com
- **Jalpi Product Line:** https://jalpi.com
- **Verification:** DNS TXT record "wordpressorg-konceptwise-verification" is available on jalpi.com for domain ownership verification

== Installation ==

1. Upload the `jalpi-page-builder` folder to `/wp-content/plugins/`
2. Activate the plugin through the **Plugins** menu in WordPress
3. Go to **Jalpi Page Builder** in the admin menu
4. Open any page or post and click **Edit with Jalpi Page Builder**

== Frequently Asked Questions ==

= Does Jalpi Page Builder replace the WordPress block editor? =

No. Jalpi Page Builder adds its own full-screen editor accessible from the admin bar or via the Jalpi Page Builder menu. Your existing blocks and content are untouched.

= Which post types are supported? =

Pages and Posts are enabled by default. You can enable additional custom post types under **Jalpi Page Builder > Settings > General**.

= Does it work with any theme? =

Yes. Jalpi Page Builder outputs clean HTML and injects its own minimal CSS only for the elements it renders. It does not override your theme styles.

= Is it compatible with other page builders? =

Yes. Jalpi Page Builder can coexist with Elementor, Beaver Builder, and other builders. Each post uses only one builder at a time, so there are no conflicts.

= Does it slow down my site? =

No. Jalpi Page Builder outputs minimal, clean HTML without shortcode wrappers. Rendered pages are cached using WordPress transients, images use native lazy loading, and the frontend JS file is only loaded when interactive widgets (tabs, carousels, countdowns, etc.) are present on the page.

= Can I use custom fonts? =

Jalpi Page Builder includes 160+ Google Fonts with a searchable, categorized font picker. Fonts are loaded from Google Fonts only when used on a page. You can also extend the font list using the `jalpi_settings_font_options` filter.

= Does it support ACF and custom fields? =

Yes. Dynamic tags support native WordPress custom fields, Advanced Custom Fields (ACF), Meta Box, and Pods. Use the `{{acf:field_name}}` syntax (or `{{meta:field_name}}`, `{{mb:field_name}}`, `{{pods:field_name}}`).

= What happens to my content if I deactivate the plugin? =

Your page data is preserved in the database. On publish, Jalpi Page Builder also writes rendered HTML into the standard `post_content` field, so your pages remain visible (as static HTML) even with the plugin deactivated.


== Changelog ==

= 1.0.3 =
* Performance improvements for faster page rendering and reduced load times.

= 1.0.2 =
* New: Advanced Menu element — a WordPress navigation menu with optional mega
  panels. Behaves exactly like a standard nav menu until "Mega Navigation" is
  enabled on a top-level item; panel content is built with the page builder, so
  any element can be placed inside a panel.
* New: Advanced Menu supports hover/click triggers, open and close delays, six
  panel animations, 1-12 column layouts, and accordion / off-canvas / dropdown
  mobile layouts.
* Accessibility: Advanced Menu ships full keyboard navigation (arrow keys,
  Escape), ARIA state, and RTL support via CSS logical properties.
* Fix: multi-value padding, margin and border-radius values (for example
  "10px 14px") were silently discarded when saving Menu and Advanced Menu
  styles. Only single values survived. Existing pages are unaffected — values
  are sanitized on save, so stored data does not change.
* Fix: Advanced Menu line-height no longer has "px" appended to unitless
  values, which previously collapsed menu text.
* Fix: Advanced Menu active styling now follows the whole current branch
  (current item, parent and ancestor), while aria-current still marks only the
  page being viewed.

= 1.0.0 =
* Initial release

== Upgrade Notice ==

= 1.0.3 =
Performance improvements for faster page rendering and reduced load times.

= 1.0.2 =
Adds the Advanced Menu element and fixes padding/margin shorthand values being
dropped when saving menu styles.

= 1.0.0 =
Initial release.

== External Services ==

This plugin connects to the following third-party services. No personal or user data is transmitted by the plugin itself beyond what each service receives as part of standard HTTP requests (e.g., visitor IP addresses).

**Google Fonts** (fonts.googleapis.com, fonts.gstatic.com)
Used to load web fonts selected by the user in the editor and display them on the frontend. Font CSS and font files are requested when a page using Google Fonts is loaded by a visitor.
[Google Fonts Terms of Service](https://developers.google.com/fonts/terms)
[Google Privacy Policy](https://policies.google.com/privacy)

**cdnjs by Cloudflare** (cdnjs.cloudflare.com)
Used to load Font Awesome and Bootstrap Icons CSS when icon elements using these libraries are present on a page. CSS files are requested when a visitor loads a page containing these icons.
[Cloudflare Privacy Policy](https://www.cloudflare.com/privacypolicy/)

**jsDelivr** (cdn.jsdelivr.net)
Used to load Tabler Icons CSS when icon elements using this library are present on a page. CSS files are requested when a visitor loads a page containing Tabler icons.
[jsDelivr Privacy Policy](https://www.jsdelivr.com/privacy-policy-jsdelivr-net)

**YouTube** (youtube.com, youtube-nocookie.com)
Used when a Video element is configured with a YouTube source. An iframe embed is loaded on the frontend, which connects to YouTube servers when a visitor views the page. The privacy-enhanced mode (youtube-nocookie.com) can be enabled per video element.
[YouTube Terms of Service](https://www.youtube.com/t/terms)
[Google Privacy Policy](https://policies.google.com/privacy)

**Vimeo** (player.vimeo.com)
Used when a Video element is configured with a Vimeo source. An iframe embed is loaded on the frontend, which connects to Vimeo servers when a visitor views the page.
[Vimeo Terms of Service](https://vimeo.com/terms)
[Vimeo Privacy Policy](https://vimeo.com/privacy)

**Google Maps** (maps.google.com)
Used when a Maps element is added to a page. An iframe embed is loaded on the frontend, which connects to Google servers when a visitor views the page.
[Google Maps Terms of Service](https://cloud.google.com/maps-platform/terms)
[Google Privacy Policy](https://policies.google.com/privacy)
