=== DPLab Page Studio ===
Contributors: dplabapp
Tags: layout builder, visual builder, page builder, drag and drop, template
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0.12
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A powerful FREE visual layout builder for WordPress with drag-and-drop interface, 17 widgets, and responsive design.

== Description ==

**DPLab Page Studio** is a powerful visual layout builder that lets you create stunning page layouts without writing any code. With an intuitive drag-and-drop interface, you can design custom layouts for your homepage, blog posts, and any page on your WordPress site.

**100% Free** - All features included, no premium upsells, no hidden costs.

= Key Features =

* **Visual Drag & Drop Builder** - Intuitive interface for creating layouts
* **Live Preview** - See changes instantly as you edit
* **Interactive Editing** - Click-to-edit interface that behaves like the real site
* **Flexible Column System** - 1, 2, 3, or 4 column layouts with custom widths
* **17 Built-in Widgets** - Everything you need to build professional layouts
* **Responsive Design** - Automatically adapts to mobile, tablet, and desktop
* **Template Override** - Use custom layouts for homepage and single posts
* **Shortcode Support** - Embed layouts anywhere with `[dplab_pagestudio_layout id="X"]`
* **Widget Customization** - Card styles, colors, padding, borders, and more
* **Global Design Settings** - Colors, typography, and container width
* **External Widget API** - Extensible for plugins like DP Slider Pro, DP Gallery Pro, and DP Contact Form Pro

= 17 Built-in Widgets =

**Content Widgets:**
* Text (Rich Editor)
* Heading (H1-H6)
* List
* Quote

**Media Widgets:**
* Image
* Video (YouTube/Vimeo embed)
* Icon
* Button

**Layout Widgets:**
* Spacer
* Divider
* Layout (Nested layouts)
* HTML Code

**Dynamic Widgets:**
* Blog List
* Current Post
* Categories
* Menu
* Social Share

= Perfect For =

* Creating unique homepage layouts
* Designing custom single post templates
* Building landing pages
* Creating portfolio pages
* Customizing blog post layouts
* Adding structured content sections

= Global Design Settings =

Configure site-wide design settings:
* **Colors** - Primary, Secondary, Text, Background, Heading, Accent, H1
* **Typography** - Heading font, Body font, Base font size
* **Layout** - Container width (default 1200px)

All colors are available as CSS variables for consistent styling.

= How It Works =

1. **Create a Layout** - Use the visual builder to design your layout
2. **Add Widgets** - Drag and drop text, images, buttons, and more
3. **Customize Appearance** - Style your widgets with colors, padding, borders
4. **Publish & Use** - Embed with shortcode or set as template override

= Developer Friendly =

* Clean, well-documented code
* WordPress Coding Standards compliant
* Extensible architecture with External Widget API
* REST API for programmatic access
* CSS variables for theme integration

[Documentation](https://dplab.app/docs) | [Support](https://dplab.app)

== Installation ==

= Automatic Installation =

1. Log in to your WordPress admin panel
2. Navigate to Plugins > Add New
3. Search for "DPLab Page Studio"
4. Click "Install Now" and then "Activate"

= Manual Installation =

1. Download the plugin ZIP file
2. Log in to your WordPress admin panel
3. Navigate to Plugins > Add New > Upload Plugin
4. Choose the ZIP file and click "Install Now"
5. Activate the plugin

= After Activation =

1. Go to **DPLab Page Studio** in your WordPress admin menu
2. Click "Create New Layout" to start building
3. Use the drag-and-drop interface to add rows and widgets
4. Save your layout and use it with the shortcode or template override

== Frequently Asked Questions ==

= Is it really 100% free? =

Yes! DPLab Page Studio is completely free with all 17 widgets, responsive design, template override, and global settings. No hidden premium features.

= How do I add a layout to my homepage? =

Go to **DPLab Page Studio > Page Layouts** and select your layout from the "Layout for Homepage" dropdown. Save the settings and your homepage will use the custom layout.

= How do I use a custom layout for blog posts? =

Go to **DPLab Page Studio > Page Layouts**, select your layout from "Layout for Single Posts" dropdown. Make sure your layout includes a "Current Post" widget to display the post content.

= Can I embed a layout in a page or post? =

Yes! Use the shortcode `[dplab_pagestudio_layout id="X"]` where X is your layout ID. You can find the layout ID in the Layout Manager.

= Is the plugin responsive? =

Absolutely! All layouts automatically adapt to mobile, tablet, and desktop screens with smart column stacking on smaller devices.

= Can I customize widget styles? =

Yes! Each widget has a "General Settings" panel where you can customize:
* Background color
* Border color and radius
* Padding and margins
* Text color
* Cover images
* Custom CSS classes

= Does it work with my theme? =

DPLab Page Studio is designed to work with any well-coded WordPress theme. The layouts render using clean HTML and CSS that adapts to your theme's styling.

= Is there a limit to how many layouts I can create? =

No! Create as many layouts as you need for different pages, posts, or sections of your site.

= Can I extend it with custom widgets? =

Yes! PageStudio has an external widget API. Plugins like DP Slider Pro, DP Gallery Pro, and DP Contact Form Pro add new widgets seamlessly. Developers can register custom widgets via PHP.

== Screenshots ==

1. Visual layout builder with drag-and-drop interface
2. Widget sidebar with 17 widget types
3. Plugin settings page for template overrides
4. Responsive column layouts (1-4 columns)
5. Widget customization panel
6. Global design settings

== Changelog ==

= 1.0.12 =
* Changed: Categories widget now uses slugs instead of IDs for include/exclude fields

= 1.0.11 =
* Fix: Resolved coding standards issues for WordPress.org compliance

= 1.0.10 =
* New: Sticky Column option (with offset control)
* New: Custom Mobile Size controls (width, height, object-fit) for Image Widget
* New: ID attribute support for Image Widget
* Fix: Z-index improvements for editor modals
* Fix: Sticky Column offset adjustment for Admin Bar
* Fix: Text Widget paragraph spacing

= 1.0.9 =
* Fix: Critical regression - CSS appearing as text on frontend (wp_kses_post stripping style tags)

= 1.0.8 =
* Improved: WordPress Plugin Check compliance - all coding standards errors resolved
* Fixed: Text domain corrected from 'PageStudio' to 'dp-PageStudio' across all files
* Fixed: Proper output escaping (esc_html__, wp_kses_post, esc_url, esc_attr_e)
* Fixed: Input sanitization with wp_unslash() before sanitize functions
* Fixed: Resource versioning in wp_enqueue_style() calls
* Removed: Debug code (error_log, ini_set, error_reporting)

= 1.0.7 =
* New: Blog List widget - "Use current archive category" option to automatically display posts from the current category or tag on archive pages

= 1.0.6 =
* Changed: Shortcode renamed from [custom_layout] to [dplab_pagestudio_layout] to avoid conflicts with other plugins
* Improved: Updated readme with complete 17 widgets documentation

= 1.0.5 =
* Fix: Critical bug causing incorrect row/column nesting in frontend layouts
* Fix: External widgets (Slider Pro, Gallery Pro) not rendering on frontend

= 1.0.4 =
* Fix: Critical error with external widgets
* Improved: Color settings now include "Clear" button and hex input
* New: H1 Color setting

= 1.0.3 =
* New: Live Preview - See changes in real-time as you edit
* New: Interactive Preview Mode - Test links and sliders directly in the editor
* New: Draggable Settings Panel - Move the settings window anywhere on screen
* Improved: Silent saving mechanism for smoother experience
* Fix: Solved infinite update loop in preview
* Fix: Corrected "Save" button reverting changes bug

= 1.0.2 =
* Fix: Editor layout issues
* Improvement: Better sidebar handling

= 1.0.1 =
* Initial public release
* Added shortcode support

= 1.0.0 =
* First Version

== Upgrade Notice ==

= 1.0.12 =
Categories widget: Use category slugs (e.g., "news, tutorials") instead of IDs.

= 1.0.11 =
Bug fixes and coding standards improvements.

= 1.0.10 =
Major update: Plugin renamed to DPLab Page Studio. Includes Migration Wizard, Sticky Columns, and bug fixes.

= 1.0.9 =
Critical fix: Resolves CSS display issue introduced in 1.0.8.

= 1.0.8 =
Code quality improvements for WordPress.org compliance. No functional changes.

= 1.0.7 =
New feature: Blog List can now automatically show posts from the current category/tag on archive pages.

= 1.0.6 =
Shortcode renamed to [dplab_pagestudio_layout]. Update any existing shortcodes in your content.

= 1.0.5 =
CRITICAL: Fixes broken frontend layouts and external widget rendering. Strongly recommended for all users.

= 1.0.4 =
Bug fixes and UI improvements for color settings. Recommended upgrade.

= 1.0.3 =
New Live Preview feature with real-time updates. Recommended upgrade for all users.

= 1.0.1 =
Bug fix for column width issues. Recommended for all users.

= 1.0.0 =
Initial release.

== External Services ==

This plugin uses third-party services for social sharing and video embedding functionality. These services are only accessed when the user actively uses specific widgets.

= Social Share Widget =

When users click on social sharing buttons, they are redirected to the respective platform's sharing page. The following data is sent:

**Facebook**
* Data sent: Current page URL
* When: User clicks the Facebook share button
* Service: [Facebook Terms](https://www.facebook.com/terms.php) | [Privacy Policy](https://www.facebook.com/privacy/policy/)

**X (Twitter)**
* Data sent: Current page URL and title
* When: User clicks the X/Twitter share button
* Service: [X Terms](https://twitter.com/tos) | [Privacy Policy](https://twitter.com/privacy)

**LinkedIn**
* Data sent: Current page URL and title
* When: User clicks the LinkedIn share button
* Service: [LinkedIn Terms](https://www.linkedin.com/legal/user-agreement) | [Privacy Policy](https://www.linkedin.com/legal/privacy-policy)

**WhatsApp**
* Data sent: Current page URL and title
* When: User clicks the WhatsApp share button
* Service: [WhatsApp Terms](https://www.whatsapp.com/legal/terms-of-service) | [Privacy Policy](https://www.whatsapp.com/legal/privacy-policy)

**Telegram**
* Data sent: Current page URL and title
* When: User clicks the Telegram share button
* Service: [Telegram Terms](https://telegram.org/tos) | [Privacy Policy](https://telegram.org/privacy)

**Pinterest**
* Data sent: Current page URL and title
* When: User clicks the Pinterest share button
* Service: [Pinterest Terms](https://policy.pinterest.com/terms-of-service) | [Privacy Policy](https://policy.pinterest.com/privacy-policy)

**Instagram**
* Data sent: None (opens Instagram app/website)
* When: User clicks the Instagram share button
* Service: [Instagram Terms](https://help.instagram.com/581066165581870) | [Privacy Policy](https://help.instagram.com/155833707900388)

= Video Embed Widget =

When embedding videos, the plugin loads content from external video platforms:

**YouTube**
* Data sent: Video ID, user's IP address (by YouTube)
* When: A YouTube video is embedded and displayed
* Service: [YouTube Terms](https://www.youtube.com/t/terms) | [Privacy Policy](https://policies.google.com/privacy)

**Vimeo**
* Data sent: Video ID, user's IP address (by Vimeo)
* When: A Vimeo video is embedded and displayed
* Service: [Vimeo Terms](https://vimeo.com/terms) | [Privacy Policy](https://vimeo.com/privacy)

= Important Notes =

* No data is sent automatically. Social sharing only occurs when users actively click share buttons.
* Video embeds load content from YouTube/Vimeo servers when the page is viewed.
* This plugin does not store or process any personal data from these services.
* Site administrators should update their privacy policy to inform visitors about embedded content and social sharing features.
