=== Page Builder by SiteOrigin ===
Tags: page builder, responsive, parallax, widgets, blocks, gallery, layout, grid, cms, builder, widget
Requires at least: 4.7
Tested up to: 6.2
Requires PHP: 5.6.20
Stable tag: 2.23.0
Build time: 2023-05-21T21:35:02+01:00
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl.html
Donate link: https://siteorigin.com/downloads/premium/
Contributors: gpriday, braam-genis, alexgso

Build responsive page layouts using the widgets you know and love using this simple drag and drop page builder.

== Description ==

SiteOrigin Page Builder is a powerful content creation interface, instantly recognizable, astonishingly different. SiteOrigin Page Builder makes it easy to create responsive column-based content using the widgets you know and love. Your content will accurately adapt to all mobile devices, ensuring your site is mobile-ready. Read more on [SiteOrigin](https://siteorigin.com/page-builder/).

We've created an intuitive interface that looks just like WordPress itself. It's easy to learn, so you'll be building beautiful, responsive content in no time.

[vimeo https://vimeo.com/114529361]

Page Builder works with standard WordPress widgets, so you'll always find the widget you need. We've created the [SiteOrigin Widgets Bundle](https://wordpress.org/plugins/so-widgets-bundle/) to give you all the most common widgets, and with a world of plugins out there, you'll always find the widget you need.

= Ready to Be Used Anywhere =

Choose your editor; Page Builder is ready to be used anywhere. Build in the traditional Page Builder interface or insert a Page Builder Layout into the Block Editor. Insert the SiteOrigin Layout Widget into sidebar and footer widget areas or use the SiteOrigin Layout Block in block-based widget areas.

= It Works With Your Theme =

Page Builder gives you complete freedom to choose any WordPress theme you like. It's not a commitment to a single theme or theme developer. The advantage is that you're free to change themes as often as you like. Your content will always come along with you.

We've also made some fantastic [free themes](https://siteorigin.com/theme/) that work well with Page Builder.

= No Coding Required =

Page Builder's simple drag and drop interface means you'll never need to write a single line of code. Page Builder generates all the highly efficient code for you.

= Live Editing =

Page Builder supports live editing. This tool lets you see your content and edit widgets in real time. It's the fastest way to adjust your content quickly and easily.

= History Browser =

This tool lets you roll forward and back through your changes. It gives you the freedom to experiment with different layouts and content without the fear of breaking your content.

= Row, Cell, and Widget Styles =

Row, cell, and widget styles give you all the control you need to make your content uniquely your own. Change attributes like paddings, background colors, and column spacing. You can also enter custom CSS and CSS classes if you need even finer-grained control.

= Focussed on Performance =

We've built a lightweight framework, focusing on small page sizes and fast load time. Page Builder is compatible with [Autoptimize](https://wordpress.org/plugins/autoptimize/) and all other major performance plugins.

= SEO Optimized =

Page Builder uses modern SEO best practices and seamlessly integrates with all major SEO plugins, including Yoast SEO and Rank Math.

= It's Free, and Always Will Be =

Page Builder is our commitment to the democratization of content creation. Like WordPress, Page Builder is, and always will be, free. We'll continue supporting and developing it for many years to come. It'll only get better from here.

= Accessibility Ready =

Page Builder is accessibility-ready. Tab through all form fields and settings, and make changes without a mouse.

= Actively Developed =

SiteOrigin has been creating magical tools for your WordPress website since 2011. Page Builder is actively developed with new features and exciting enhancements every month. Keep track on the [Page Builder GitHub repository](https://github.com/siteorigin/siteorigin-panels).

Read the [Page Builder developer docs](https://siteorigin.com/docs/page-builder/) if you'd like to develop for Page Builder.

== Documentation ==

[Documentation](https://siteorigin.com/page-builder/documentation/) is available on SiteOrigin.

== Support ==

Free support is available on the [SiteOrigin support forums](https://siteorigin.com/thread/).

== SiteOrigin Premium ==

[SiteOrigin Premium](https://siteorigin.com/downloads/premium/) enhances Page Builder by SiteOrigin, the SiteOrigin Widgets Bundle, and all SiteOrigin themes with a vast array of additional features and settings. Take your layouts to the next level with SiteOrigin Premium Addons.

SiteOrigin Premium includes access to our professional email support service, perfect for those times when you need fast and effective technical support. We're standing by to assist you in any way we can.

== Screenshots ==

1. The Page Builder editing interface.
2. Editing a Page Builder Layout Block in the Block Editor.
3. Powerful widget insert interface with groups and search.
4. Live Editor that lets you change your content in real-time.
5. Row Builder that gives unlimited flexibility.
6. Undo changes with the History Browser.

== Frequently Asked Questions ==

= How Do I Install Page Builder? =

Go to Plugins > Add New within WordPress. Search for "SiteOrigin Page Builder" using the field at the top right of the page. Alternatively, manually install the [plugin ZIP file](https://downloads.wordpress.org/plugin/siteorigin-panels.zip) from Plugins > Add New > Upload Plugin. If you'd like to install Page Builder manually and use Safari, disable the Safari auto-unzip feature in Safari > Preferences before downloading.

= Is Page Builder Compatible With My Theme? =

Page Builder is compatible with all standardized WordPress themes. A curated list with enhanced Page Builder integration is available on [SiteOrigin.com](https://siteorigin.com/theme/).

= Can I Use Page Builder With the WordPress Block Editor =

Yes, you can insert SiteOrigin Layout Block into the Block Editor. If you have the SiteOrigin Widgets Bundle installed, a SiteOrigin Widget Block is also available for use in the Block Editor.

== Changelog ==

= 2.23.0 - 21 May 2023 =
* Row Styles: Added a Full Height setting to the Design section.
* Box Shadow: Resolved potential migration error due to an invalid hex.
* Widget Admin Titles: Improved display of unusually long strings.
* Color Settings: Update to ensure only alpha enabled settings apply opacity to the swatch.
* Page Builder Settings Page: Minor styling update.

= 2.22.1 - 06 May 2023 =
* Inline Styles: Restored tablet and mobile padding.

= 2.22.0 - 05 May 2023 =
* Color Settings: Added alpha channel support which specifies the opacity for a color.
* Styles: Prevented `!important` from being added to tablet and mobile padding.
* Classic Editor: Further SEO plugin compatibility changes on load.

= 2.21.1 - 25 April 2023 =
* Prevented potential new page JavaScript error.

= 2.21.0 - 22 April 2023 =
* Added an Inline Styles setting at `Settings > Page Builder > Layout`. Supports margin, border, and padding.
* Classic Editor: Improved preview markup handling.
* Rank Math: Removed `wp_targeted_link_rel` from sitemap compatibility.
* SEO: Removed widget class requirement.
* Added Cross Domain Copy Paste support.
* PHP coding standards update.

= 2.20.6 - 30 March 2023 =
* Updated Tested up to tag.

= 2.20.5 - 04 March 2023 =
* Excluded some WooCommerce post types from the Page Builder Post Types list.
* Sidebar Emulator: Resolved `Undefined array key "option_name"` warning.
* Removed preview content if `Copy Content` is disabled.
* Developer: Added `siteorigin_panels_add_preview_content` filter.
* Developer: Added `siteorigin_panels_layout_tabs` filter.

= 2.20.4 - 16 January 2023 =
* Prevented potential "Are you sure you want to navigate away." notice.
* Customizer Widgets Block Editor: Fixed Layout Block styling.
* Layouts Directory: Allowed layouts to be named "0".
* Modern Parallax Sliders: Prevented a potential mobile display issue.
* Developer: Prevented `$layout_data` loading if already set.

= 2.20.3 - 29 December 2022 =
* Reverted: Prevented `$layout_data` loading if already set.

= 2.20.2 - 29 December 2022 =
* Styles: Improved `Background Image Display` and `Size` settings conditional display behavior.
* Classic Editor: Prevented potential notice when opening a saved widget.
* Developer: Prevented `$layout_data` loading if already set.
* Developer: Added custom style field type support via `siteorigin_panels_style_field_*`, and `siteorigin_panels_style_field_sanitize_*`.

= 2.20.1 - 09 December 2022 =
* Darkened default cell admin background color.
* Removed `@font-face` query string.
* Altered `siteorigin_panels_url` to better allow different directory names.

= 2.20.0 - 02 December 2022 =
* Styles: Added a row, cell, and widget `Border Thickness` setting.
* Parallax: Resolved `Disable Parallax On Mobile` setting bug.

= 2.19.0 - 22 November 2022 =
* Styles: Added a row, cell, and widget `Background Image Size` setting.

= 2.18.4 - 13 November 2022 =
* Admin Row Colors: Adjusted swatches layout and spacing.

= 2.18.3 - 09 November 2022 =
* Styles: Added viewport units of measurement.
* Updated `Tested up to` tag to 6.1.

= 2.18.2 - 26 October 2022 =
* Restored row re-ordering functionality.

= 2.18.1 - 25 October 2022 =
* Restored admin row background functionality.
* Developer: Added `siteorigin_panels_admin_row_colors_default` to set the default admin row background color.

= 2.18.0 - 22 October 2022 =
* Box Shadow: Added a new `Inset` setting. Inset box shadows appear inside the row, cell, or widget.
* Media Modal: Updated the title to `Choose Media`.
* Developer: Added `siteorigin_panels_admin_row_colors` filter.
* Developer: Added a client side event to allow for widget validation.
* Developer: Accounted for a situation where `$panels_data` is passed as a string containing JSON rather than an array.

= 2.17.0 - 28 August 2022 =
* Row, Cell, and Widget Design Settings: Added Border Radius and Box Shadow settings.

= 2.16.19 - 16 August 2022 =
* Resolved `Uncaught TypeError` Customizer Layout Builder console error.

= 2.16.18 - 10 August 2022 =
* Easy Digital Downloads: Resolved `Add New` button error.
* Resolved a Customizer Layout Builder widget sizing issue.
* Improved `style` tag HTML validation.
* Resolved a potential Panels preview PHP 8.3 type error.

= 2.16.17 - 19 July 2022 =
* Restored Cell `Link Color` and `Link Hover Color` settings.
* Gravity Forms: Added additional check to prevent an unrelated notice.
* Jetpack: Added Copy Post module support.

= 2.16.16 - 09 July 2022 =
* Legacy Layout Engine: Resolved `Undefined index: cell_index` notice.

= 2.16.15 - 27 June 2022 =
* Resolved edge case empty widgets warning.

= 2.16.14 - 19 June 2022 =
* Layout Block: Limited block preview attempts.
* Modern Parallax: Resolved potential choppy scrolling.

= 2.16.13 - 25 May 2022 =
* Updated WordPress `Tested up to` tag.
* Minor PHP formatting improvements.

= 2.16.12 - 22 May 2022 =
* Layout Block: Resolved WP 6.0 styling conflict.
* WP Version Check: Update to check for version body class instead of branch.

= 2.16.11 - 18 April 2022 =
* Widget Descriptions: Resolved a potential error with old SiteOrigin Image Widgets title value set to `false` rather than `null`.

= 2.16.10 - 13 April 2022 =
* Block-Based Widgets Editor: Restored SiteOrigin Layout Block compatibility and other improvements.

= 2.16.9 - 07 April 2022 =
* Layout Block: Fixed JSON layout export file name.
* Developer: Passed `postId` to server when rendering widget form.

= 2.16.8 - 30 March 2022 =
* Improved PHP 8 Compatibility: Replaced `GLOB_BRACE` flag in favor of multiple `glob` functions.
* Developer: Added `siteorigin_panels_output_row` and `siteorigin_panels_output_widget` filters.

= 2.16.7 - 23 March 2022 =
* Improved empty CSS rule check to avoid potential edge cases.

= 2.16.6 - 21 March 2022 =
* Prevented CSS properties outputting with only `px` set as the value.
* WPML: Refined sidebar emulator language path removal.

= 2.16.5 - 06 March 2022 =
* Full-Width Containers Using CSS: Ensured full-width global CSS is only output once.

= 2.16.4 - 19 February 2022 =
* Full-Width Containers Using CSS: Restored normal functionality when Standard or Full-Width rows not present.
* Full-Width Containers Using CSS: Resolved a collapse issue when the browser resolution equals the collapse value.

= 2.16.3 - 14 February 2022 =
* Fixed Background Images: Change to `scroll` on mobile devices. Resolves iOS bug.

= 2.16.2 - 07 February 2022 =
* Added Yoast Video SEO plugin integration.
* Restored content analysis functionality for newer Yoast SEO versions.

= 2.16.1 - 26 January 2022 =
* Sidebar Emulator: Accounted for a potential notice when setting widget ID.
* Updated the `Tested up to tag` to `5.9`.

= 2.16.0 - 04 January 2022 =
* Added a new global `Mobile Widget Bottom Margin` setting.
* Added a new global `Mobile Cell Bottom Margin` setting.
* Legacy Widgets: Updated for PHP 8 compatibility.
* WordPress 5.9 Compatibility: Resolved row ordering issue.
* jQuery: Resolved jQuery Migrate notice. Updated `ready` function.
* Full-Width Containers Using CSS: Theme container no longer removed on pages without full-width rows.
* Developer: Resolved JavaScript error when all style fields removed.
* Developer: Added `panels_title_check_sub_fields` to allow for sub-field detection.

= 2.15.3 - 01 December 2021 =
* Rows/Cells: Prevented possible data mismatch.

= 2.15.2 - 29 November 2021 =
* Cells: Resolved undefined `style` error.

= 2.15.1 - 27 November 2021 =
* Updated Page Builder `Pro Tips`.
* SiteOrigin Premium: Added row and widget fade styling when hidden by the Toggle Visibility Addon.

= 2.15.0 - 22 October 2021 =
* Added a "Mobile Margin" setting to `Widget Styles > Mobile Layout`.
* Ensured the Widget Title is used as the widget description if present.

= 2.14.3 - 10 October 2021 =
* Resolved conflict caused by Block Editor JavaScript loaded in the Classic Editor.

= 2.14.2 - 08 October 2021 =
* Layout Block: Force a draft before displaying the Live Editor button.
* Fixed `Cell Vertical Alignment` setting.
* Developer: Prevented potential notice when processing Page Builder fallback shortcode.

= 2.14.1 - 01 October 2021 =
* Layout Block: Restored Live Editor and History functionality.
* Ensured Cell Vertical Alignment doesn't stretch independently of the setting chosen.
* Developer: Prevented a potential small jump on load when CSS full width containers in use.

= 2.14.0 - 29 September 2021 =
* Tablet Styles: Added a new Tablet Styles section to row, cell, and widget styles.
* Widget Design Settings: Added a Link Hover Color setting.
* History Browser: Resolved incorrect preview URL.
* Live Editor: When accessing the Live Editor via the toolbar link, return to the site after saving. Setting available at Settings > Page Builder > General.
* Polylang: Ensured Page Builder data is copied during page duplication in the Classic Editor.
* Yoast SEO: Added additional Open Graph compatibility check.
* Developer: Advanced Custom Fields: Improved repeater support.
* Developer: Changed CSS Builder `$css` to public to allow more extensive filtering.
* Developer: Added `setup_style_fields` JavaScript event to allow the setup of custom style fields.
* Developer: Added an optional CSS method for full width containers using `siteorigin_panels_theme_container_width` and `siteorigin_panels_theme_container_selector`.

= 2.13.2 - 14 August 2021 =
* Modern Parallax: Resolved potential Jetpack Image Accelerator notice.
* Customizer: Resolved new widget area notice.

= 2.13.1 - 03 August 2021 =
* Modern Parallax: Exclude images from Jetpack Image Accelerator.
* Modern Parallax: Resolved sizing issue when the browser back button was used.
* Yoast: Selectively disabled Page Builder when Yoast is generating the OpenGraph meta description. Resolves potential Forminator and Ninja Forms errors.

= 2.13.0 - 20 July 2021 =
* Compatibility enhancements for WordPress 5.8.
* Developer: Added a style field wrapper ID.

= 2.12.6 - 5 July 2021 =
* Added cell editing icons to replace text action links when space isn't sufficient.
* Live Editor: Resolved bottom margin not being removed from the last widget in a given row.
* Parallax: Improved type detection to ensure legacy is always set when appropriate.
* Resolved a potential restore content prompt in the Classic Editor.
* Developer: Expanded widget title detection to include Widgets Bundle repeaters and sections.
* Developer: Expanded `panels_title` to fetch the first valid widget description.

= 2.12.5 - 17 June 2021 =
* Modern Parallax: Use the image attachment if available.
* Modern Parallax: Prevent possible container overflow using CSS.
* Live Editor: Minor button alignment improvements.
* Developer: ACF compatibility - use `panelsopen` for more consistent loading.
* Developer: ACF compatibility - added a check to ensure instance ACF data exists.
* Developer: Fixed `siteorigin_panels_row_column_count_input` filter.

= 2.12.4 - 04 June 2021 =
* Restored Tablet Layout row collapse.

= 2.12.3 - 03 June 2021 =
* Developer: Added the ability to filter fields based on the widget the user is editing using the `siteorigin_panels_widget_style_fields` filter.
* Developer: Added the ability to create individual row collapse points using the `siteorigin_panels_css_row_collapse_point` filter.

= 2.12.2 - 21 May 2021 =
* ACF: Added a check to ensure 5.7.10+ is active before loading Page Builder compatibility.
* Lazy Load: Added support for WP Rocket Lazy Load.
* Gravity Forms: Added compatibility to ensure conditional forms function normally when added via the Form widget.
* Developer: Stopped checking for repeated rendering if `$panels_data` was supplied.

= 2.12.1 - 11 May 2021 =
* Prevented potential repeated rendering of layouts.
* Moved the Page Builder metabox PHP outside of the metabox template.
* Added a check for `has_blocks()` before using the function.
* Resolved potential background display issue when a local and external background is used.

= 2.12.0 - 03 May 2021 =
* **New Parallax Scrolling!** Existing users can optionally switch to `Modern` at `Settings > Page Builder > General`.
* ACF: Added widget fields compatibility. `siteorigin_panels_before_widget_form` action is triggered before the widget form is output.
* Improved Add/Edit row responsive behavior.
* Updated sidebar emulator to detect current page ID by path. Resolves WPML compatibility issue.
* Added WP Rocket Lazy Loading compatibility for row, cell, and, widget background images.
* Automatic Excerpt: Added support for the `<!-- more -->` quicktag.
* Improved indexing of text containing multibyte Unicode such as Greek.
* Instant Open Widgets: Updated the setting to default enabled for new installs.
* Limited the `Page Builder Layout CSS Output Location` setting to the Classic Editor.
* Add Layout: Improved responsive behavior for long post titles.
* Ensured background image remove URL only displays when an image is present.
* SiteOrigin Layout Block: Removed the preview button when a preview isn't available.
* SiteOrigin Layout Block: Prevent an empty layout from being rendered.
* Block Editor: Added support for automatic excerpt generation if the first post block is a SiteOrigin Layout Block.
* Block Editor: Resolved duplicate Add SiteOrigin Layout button.
* Accessibility: Implemented keyboard navigation for the Page Builder admin interface. You can now tab through all fields and settings, and make changes without a mouse.
* Developer: Ensured prebuilt layout compatibility with JSON MIME type.
* Developer: Updated depreciated jQuery `bind` usage.
* Developer: Replaced older-style PHP type conversion functions with type casts.
* Developer: Resolved a PHP 8 notice relating to the CSS builder.
* Developer: Improved WordPress indexing of languages that use multibyte Unicode

= 2.11.8 - 09 December 2020 =
* Developer: jQuery updates for WordPress 5.6.

= 2.11.7 - 07 December 2020 =
* SEO: Generated `preview_url` before `preview_content`. Resolves Live Editor preview issue when a post loop is present in the page.

= 2.11.6 - 01 December 2020 =
* New: `Page Builder Layout CSS Output Location` setting that controls where PB outputs its CSS. Located at `Settings > Page Builder > Layout`.
* SEO: Improved content analysis process for slower servers and connections.
* SEO: Excluded `<iframe>, <script>, <link>, <style>` from content analysis due to word count inflation.
* Developer: Added `wp-color-picker` as an editor dependency.
* Developer: Introduced a new Ajax Response filter `siteorigin_panels_layouts_result`.
* Developer: Standardized SO Layout Block variables to avoid conflicts with other blocks.

= 2.11.5 - 30 September 2020 =
* Updated build scripts.

= 2.11.4 - 28 September 2020 =
* Block Editor: Fixed SiteOrigin Widgets Bundle block preview.
* Yoast SEO: Fixed word count in the Classic Editor when Page Builder is not in use.
* Yoast SEO: Resolved a console error in the Block Editor.
* Block Editor: Enhanced the Layout Block to allow for Post Loop widget previews.
* Layout Export: Resolved JSON files exported without contents.

= 2.11.3 - 14 September 2020 =
* Block Editor: Added SEO support for multiple Layout Block instances.
* Yoast SEO Sitemap: Added images added using Page Builder.
* Prevented potential `Are you sure you want to navigate away?` notice.
* Post Loop: Resolved `Undefined index` notice when used outside of Page Builder.
* Android Chrome: Improved edit widget touch detection.
* Yoast SEO: Resolved version `14.6` integration issue.
* Block Editor: Used new categories for the Layout Block for WP 5.5+.
* Block Editor: Resolved potential Layout Block data validation issue by running `wp_targeted_link_rel` on the generated preview content.
* Block Editor: Added preview support for the Layout Block.
* Block Editor: Updated translation functions to avoid potential conflicts.
* Block Editor: Added the page name and block number to Layout Block JSON export files.
* Block Editor: Improved SEO plugin support.
* Added a global `Row Mobile Bottom Margin` setting at `Settings > Page Builder > Layout`.
* Ensured Yoast SEO is ready before running compatibility functionality.
* Global Settings: Resolved a jQuery Migrate Helper warning.

= 2.11.2 - 12 August 2020 =
* Updated build scripts.

= 2.11.1 - 17 July 2020 =
* Added Rank Math SEO plugin support.
* Added [siteorigin_panels_layout_builder_supports](https://siteorigin.com/docs/page-builder/hooks/builder-features-actions/) filter.
* Block Editor: Added History and Live Editor functionality to the SiteOrigin Layout Block.
* Resolved a plugin conflict between the AMP by AMP Project Contributors plugin and the Text widget.
* Block Editor: Prevented the page saving until the SiteOrigin Layout Block is finished setting up widgets using AJAX.
* Mobile: Several minor improvements to the Page Builder interface to improve usability while editing on mobile devices.
* Fixed `undefined` Page Builder tab in WordPress 5.5.
* Added a new "Disable Background Parallax On Mobile" global setting to `Settings > Page Builder > General`.
* Post Loop: Added custom pagination format support to allow developers to use two Post Loop widgets with independent pagination on a page.
* Removed all HTML from the CSS Declarations field and strip slashes from textarea/code fields.

= 2.11.0 - 02 June 2020 =
* Live Editor: Ensured device viewing mode retained after update.
* Live Editor: Improved device preview transition.
* Legacy Layout: Detect IE 11 as legacy browser.
* Yoast SEO: Improved Classic Editor support.
* Yoast SEO: Added Block Editor support for the SiteOrigin Layout block.
* CSS Builder: Prevented rules without declarations from outputting.
* Widget Previews: Prevented boolean values from being used as widget descriptions.
* Live Editor: Resolved Chrome bug by setting preview url for iframe.

= 2.10.17 - 18 May 2020 =
* Live Editor: Improved mobile device previews.
* Excluded Black Studio TinyMCE Widget title from excerpts.
* Fixed Live Editor draft post functionality.

= 2.10.16 - 05 May 2020 =
* Security: Added nonce check to Live Editor.
* Security: Added nonce check to `builder_content` action.

= 2.10.15 - 07 April 2020 =
* Minor styling fixes.
* Resolved a Live Editor notice that can appear when using SiteOrigin Renderer outside the main loop.
* Tablet Layout: Restored cell bottom margin.

= 2.10.14 - 04 February 2020 =
* Several Classic and Block Editor admin styling fixes.

= 2.10.13 - 9 November 2019 =
* Fixed check for content.php post loop templates
* Add `builderType` argument when fetching a selected prebuilt layout.

= 2.10.12 - 4 November 2019 =
* Resolve issue caused by locate_template preventing plugins from adding Post Loop templates.

= 2.10.11 - 23 September 2019 =
* Added setting for cell spacing in a collapsed row.
* Fix support for widgets that share a single classname.
* Fixed styling issues after Chrome update.

= 2.10.10 - 28 August 2019 =
* Added filter for cell bottom margin on mobile.
* Make sure widget form checkbox values are unset when unchecked.
* Added Widget Options plugin compatibility code.

= 2.10.9 - 23 August 2019 =
* Use desktop margin between cells when collapsed and no mobile margin is given.

= 2.10.8 - 22 August 2019 =
* Made mobile bottom margin default to empty.
* Fixed remove button appearing when no image was present in style field.

= 2.10.7 - 20 August 2019 =
* Added setting for mobile specific margin.
* Prevent Welcome Page Redirect During Bulk Install and TGMPA
* Added support for password settings field.
* Layout Block: Add filter to control whether Add Layout Block button is shown or not.
* Fixed issue with widget duplication after moving a widget.
* Fixed Read More Custom Text issue.

= 2.10.6 - 12 June 2019 =
* Add admin filter for whether to show the 'add new' dropdown and classic editor admin notice.
* Trigger new event before initial panels setup.
* Yoast compat.
* Pass new widget view as parameter in 'widget_added' event.
* Layout Builder widget: Use preview parameter and remove redundant style rendering for Post Content and Preview rendering.
* Layout Block: Support for custom class names.
* Layout styles: Add contain as option for background image display.
* Block editor: Only go to PB interface for _new_ PB post types.
* Layout block: Use `jQuery` instead of alias `$` for odd cases where `$` is undefined.

= 2.10.5 - 5 April 2019 =
* Live Editor: Fix styles in live editor previews.
* Render cell styles after row styles.

= 2.10.4 - 3 April 2019 =
* New welcome page.
* Include row style wrapper in cell CSS direct child selectors.

= 2.10.3 - 2 April 2019 =
* Layout builder widget: Call styles sanitization in update.
* Live editor: Only call `process_raw_widgets` once for preview data.
* Add a setting for whether to display SiteOrigin Page Builder post state.
* Sidebars emulator: Cache the result of url_to_postid().
* Prevent affecting child layouts with parent layouts' CSS.

= 2.10.2 - 28 February 2019 =
* Don't remove left/right border when Full Width Stretch Padding is enabled on row.
* Display widget count for inline-save.
* Live editor: Press escape to close.
* Live editor: Give the user an option to either close or close and save.
* Added widget class to widgets in builder interface.
* Dialog crumbtrail fix.
* Only close topmost Page Builder window when escape key is pressed.
* Layout Block: Retrieve sanitized panels data from server as changes are made.

= 2.10.1 - 7 February 2019 =
* Layout block: Fix front end rendering not always updating widgets correctly.
* Fix notice when using WP 4.9.9.
* Hide layout block button when content has been added to a post.
* General responsive improvements.
* Layout block: Initialize previews correctly.
* Layout block: Avoid use of `withState`.

= 2.10.0 - 16 January 2019 =
* Prevent syntax warning in PHP7.3
* Add radio Style field type.
* Layout block: Add button in block editor to add a SiteOrigin Layout Block.
* Rerender row styles form on initializing a new dialog.
* Change sidebar emulator 'id' key to avoid conflicts with widgets which already use 'id' as a key.
* Validate post loop templates.
* Layout block: Force raw widget processing for block editor previews.
* Layout block: Ensure scripts load when Gutenberg plugin is active.
* Support widgets registered using instances instead of class names.
* Layout block: Add setting for whether to default to edit mode or preview mode.
* Ensure style fields filter work as expected and hide styles sidebar when no fields are present.
* Layout Block: Add 'page builder' as a keyword.

= 2.9.7 - 14 December 2018 =
* Add setting to use Classic Editor for new posts of types selected in Page Builder settings.
* Prevent showing the 'Add New' dropdown for SO custom post types.
* Display notice indicating how to disable Classic Editor for new Page Builder post types.

= 2.9.6 - 10 December 2018 =
* Default to Page Builder interface for post types set to use Page Builder in Settings.
* Add check for WooCommerce 'product' type to prevent output of 'Add New' dropdown.

= 2.9.5 - 6 December 2018 =
* Layout block: Default to preview state if block has panels data.
* Dropdown for 'Add New' with SiteOrigin Page Builder as an option.
* Added a label to posts list to indicate which have a Page Builder layout.

= 2.9.4 - 5 December 2018 =
* Layout block: Set default state to edit mode.

= 2.9.3 - 5 December 2018 =
* Use front end i18n for block editor.
* Ensure contextual menu works in dialogs.
* Yoast compat: Check for panels style wrappers before doing widget content modifications.
* Clone Layouts: Fix to allow for private posts and pages.
* Block editor: Show preview initially when page is loaded.
* Block editor: Show classic editor for existing pages containing Page Builder layout data.

= 2.9.2 - 9 November 2018 =
* Block editor: Call `enqueue_registered_widgets_scripts` which will reset global `$post`.
* Block editor: Only enqueue layout block scripts when using the block editor.
* WP 5: Fixed styles in the block editor.
* WP 5: Ensure the block editor scripts are enqueued.
* WP 5: Fix WP Text Widget for layout block.

= 2.9.1 - 23 October 2018 =
* Fix auto-excerpt output.
* Layout builder: Fix 'undefined index' when saving before having added any widgets.
* Layout builder: Prevent initializing multiple instances of widget dialog.
* Prevent notices when style field is using 'label' instead of 'name' e.g. for checkbox field.

= 2.9.0 - 9 October 2018 =
* Automatically extract excerpts from text type widgets found in the first two Page Builder layout rows.
* Allow media queries with only `min-width`.
* Only allow moving widgets and rows between Page Builder instances when in Gutenberg editor.
* Fallback to checking for global `$post` when attempting to disable Gutenberg for existing posts with Page Builder layout data.
* Yoast compat: Custom widget content handler for WB Accordion and Tabs widgets.
* Jetpack compat: Fix for Jetpack widgets using the `is_active_widget` check.

= 2.8.2 - 10 August 2018 =
* Use post ID in content, not revision ID, when saving revisions.
* Prevent adding duplicate `panels_data` metadata to posts for revisions.
* Include row labels and colors when copy/pasting rows.
* Process raw widgets when importing a layout file.
* Fix after breaking change in gutenberg API.

= 2.8.1 - 07 August 2018 =
* Fix for PHP5.2 :(

= 2.8.0 - 06 August 2018 =
* SiteOrigin Layouts Gutenberg block!

= 2.7.3 - 20 July 2018 =
* Post Loop: Add filter to allow for custom template directories.
* Dashboard Assets: Check if $screen exists.
* Remove Page Builder button from widgets when not in admin context.
* Fix Yoast compat: Properly create rather than select an image.

= 2.7.2 - 29 June 2018 =
* Skip Yoast compat for non PB content.

= 2.7.1 - 28 June 2018 =
* Check for yoast metabox before enqueuing compat JS.

= 2.7.0 - 27 June 2018 =
* New setting to automatically open widget forms when they're added.
* New row layout option to make provision for row style padding in full width stretched rows.
* Make sure prebuilt layouts path is a real path.
* Better compatibility with Yoast SEO.
* Row Cell options: Prevent Yoast from resizing fields.
* Added `panels_data` filter to `generate_css`.
* Don’t hide the upload UI before initializing it.
* Fix collapse order in legacy layout.
* Clear SO widgets' id and timestamp metadata when cloning a PB Page.
* Fix layout imports in Edge.
* Apply bottom margin custom styles to main wrapper where PB adds it's bottom margin, to allow users to override.
* Use https for layouts directory.

= 2.6.9 - 7 June 2018 =
* Changed dashboard feed URL to use cloudfront for caching.

= 2.6.8 - 5 June 2018 =
* Remove learn dialogs.
* Added SiteOrigin news dashboard widget

= 2.6.7 - 7 May 2018 =
* Prevent debug notice when background fallback image hasn't been set.

= 2.6.6 - 25 April 2018 =
* Only filter WooCommerce content when on the shop page.
* Fix Background fallback URL notices.

= 2.6.5 - 23 April 2018 =
* Don't use `mime_content_type` for external layouts if it's not available. Just check file extensions.
* Get correct ID for WooCommerce shop page to allow PB to render correctly.
* Added image fallback url field for background images in row, cell and widget styles.
* Temporarily remove Jetpack widgets requiring scripts for admin form, until we can reliably enqueue their scripts.
* Remove loading indicator and display message when loading widget and style forms fail.
* Allow setting margins around specific widgets.

= 2.6.4 - 4 April 2018 =
* Only call widget `enqueue_admin_scripts` function for WP core JS widgets.

= 2.6.3 - 6 March 2018 =
* Use `delete_post_meta_by_key` instead of direct DB query to clear old cache renders.
* Removed special handling for retrieving data from TinyMCE editor fields. Just use the field value directly.
* Show correct preview for current editor when another editor has created an autosave.
* Use minified CSS files.

= 2.6.2 - 23 January 2018 =
* Prevent Gutenberg from taking over existing PB pages.
* Remove PB metaboxes from Gutenberg editor.

= 2.6.1 - 18 January 2018 =
* Switch off output buffering when enqueueing admin scripts.
* Prevent custom post types from showing in the settings list.
* Make sure 'SiteOrigin_Panels_Widgets_Layout' exists before setting icon for widgets lists.
* Hide individual action links when features disabled and prevent editing by clicking directly on spanner when edit row disabled.
* Adapt PB welcome message when some features not supported.
* Column width CSS output correctly for locales which use ',' as decimal separator.
* Fixed prebuilt layout directory items.

= 2.6.0 - 17 December 2017 =
* Load prebuilt layout JSON files found in themes!
* Allow post types with numeric slugs.
* Add a filter for inline styles.

= 2.5.16 - 22 November 2017 =
* Disabled the Content Cache feature until we've resolved all issues and conflicts.

= 2.5.15 - 17 November 2017 =
* Don't use deprecated `load` event jQuery function shortcut.
* Immediately switch to Page Builder if `revertToEditor` feature isn't supported.
* Fix switching between standard editor and Page Builder.
* Removed some duplicated jQuery selectors.
* Prevent error with invalid plugin action links.
* Add compatibility for new WP core Custom HTML and Media Gallery widgets.

= 2.5.14 - 6 November 2017 =
* Content Cache: Add Enqueue hook to allow 3rd parties to enqueue cache friendly assets.
* Added raw_panels_data flag for layout imports.
* Save ratio and ratio_direction as row attributes.
* Add rel="noopener noreferrer" for all 3rd party/unknown links.

= 2.5.13 - 29 September 2017 =
* Always enqueue parallax when in cache mode.
* Skip saving post meta for revisions in previews.
* Cast post types as string when adding meta boxes.

= 2.5.12 - 14 September 2017 =
* Learn: fixed broken image.
* Prevent JS error when PB active alongside Elementor.
* Disabling DFW mode no longer hides PB.
* Hide Cell Vertical Alignment options if Legacy Layout is set to always.

= 2.5.11 - 24 August 2017 =
* Prevent creating multiple new entries in post meta every time a post is previewed.
* Avoid using relative asset URLs which may break caching plugins.
* Import custom widget class from HTML.

= 2.5.10 - 4 August 2017 =
* Fixed WP widget wrappers broken by WP4.8.1 changes.

= 2.5.9 - 27 July 2017 =
* Post Loop widget: Use correct base widget properties for post loop helper on Widgets page.
* Post Loop widget: Set default width of post loop widget control.
* Reset `widget_id` when cloning widgets.
* "Reset" fixed background image display setting on mobile.
* Previews work without saving panels data to parent post meta.
* Removed tutorials view.
* Learn dialog fixes.

= 2.5.8 - 4 July 2017 =
* Replaced themes link with tutorials.

= 2.5.7 - 27 June 2017 =
* Get post from DB before saving for 'copy content' to avoid overwriting changes by other plugins.
* Switched toolbar links.
* Skip cache rendering for password protected posts.

= 2.5.6 - 13 June 2017 =
* Pass empty post id to 'siteorigin_panels_data' filter to avoid potential fatal errors.
* Remove unnecessary output of JS widget templates.

= 2.5.5 - 8 June 2017 =
* Ensure form fields name attributes are correct when using the Widgets Bundle post loop helper.
* Prevent display of unimplemented preview button for Post Loop widget.

= 2.5.4 - 1 June 2017 =
* Compatibility with WordPress 4.8 widgets.
* Refactored core widgets.
* Compatibility with Widgets Bundle 1.9 posts selector.
* Ensure custom CSS added in element styles is properly formed.

= 2.5.3 - 9 May 2017 =
* Added legacy function wrapper for siteorigin_panels_generate_css
* Added more cache render checks
* Handle translation of Learn submodule strings
* Added screenshot argument to preview URL

= 2.5.2 - 19 April 2017 =
* Fixed RTL layouts for new flexbox layout.
* Renamed front.css to ensure cache busting.
* Allow cache with auto legacy layout.
* Use HTTPS for layout directory screenshots.
* Fixed namespaced widget escaping.

= 2.5.1 - 18 April 2017 =
* Added null function for Sydney theme compatibility.
* Added method for including additional external layout directories.
* Added fix for old Vantage PB layout compatibility.
* Fixed Firefox layout issues.
* Fixed positioning of edit row dropdown.
* Fixed warning coming from legacy widgets.
* Added legacy layout rendering for old browsers.
* Switched to using calc for cell sizing.

= 2.5 - 11 April 2017 =
* Large code refactoring for improved performance.
* Added row and widget labelling, and color labels for rows.
* Added cell specific styling.
* Redesign of main interface.
* Fixed performance issues with larger pages.
* Changed layouts to flexbox to remove need for negative margins.
* Added various cell vertical alignment settings.
* Add loop check to prevent rendering from running too soon.
* Page Builder can now more easily go to and from the WordPress editor.
* Added row and widget copy/paste. Currently only within a single site.
* Allow row and cell styles to be edited in add row dialog.
* Fixed visual jump before making rows full width.
* Added option to cache generated content. Can improve compatibility with shortcode based plugins.
* Added option to cache generated CSS in post_content. Allows page rendering without Page Builder active.
* Fixed namespace widgets in Live Editor.
* Increased maximum cell count to 12.
* Added prominent legacy widgets notice.
* Accept negative values in measurement style fields.
* Fixed Live Editor conflict with Layout Widgets in footer.
* Added mobile CSS style settings for rows, cells and widgets.
* Added a mechanism for including theme layouts as JSON files.
* Added buttons for free courses. Removed all references to premium addon.
* Removed translation files. These will be pulled from Glotpress instead.
* Widget update function is properly passed old widget instance.
* Various filters added for theme/plugin developers.
* Various minor bug fixes.
* Various small UX tweaks and improvements.

= 2.4.25 - 21 February 2017 =
* Fixed how widget wrapper IDs are generated.

= 2.4.24 - 3 February 2017 =
* Add row ID to style wrapper instead of actual row.
* Use more specific selectors for padding CSS.

= 2.4.23 - 31 January 2017 =
* Fixed padding issue introduced by new mobile padding setting.

= 2.4.22 - 31 January 2017 =
* Add WP Color Picker as a dependency for admin script.
* Include and check post ID in Live Editor. Fixes some issues with widgets using the_excerpt in Live Editor.
* Added mobile padding settings.
* Made all learning links/buttons removable in Page Builder settings.

= 2.4.21 - 19 December 2016 =
* Removed course toolbar links.
* Added filter for post loop query.
* Replace TinyMCE _.isUndefined() check with a typeof to prevent JS errors.

= 2.4.20 - 7 December 2016 =
* Removed Premium and contribution links.
* Added course links.

= 2.4.19 - 22 November 2016 =
* Added fixed background support.
* Cycle addon and contribution link.
* Small type and translation fixes.

= 2.4.18 - 7 November 2016 =
* Fixes for PHP 7 checker.
* Properly provide post ID on custom home page.
* Fixed CSS and JS URLs.
* Corrected post__not_in issue for query builder.

= 2.4.17 - 14 October 2016 =
* Removed old Stellar JS library.
* Added parallax setup after small timeout.
* Added way to add affiliate ID.
* Added tips signup link.

= 2.4.16 - 27 September 2016 =
* Added disableable upgrade notice.

= 2.4.15 - 6 September 2016 =
* Fixed legacy widgets check.

= 2.4.14 - 1 September 2016 =
* Fixes to sidebar emulator to prevent early rewrite rule building.
* Added option to completely disable sidebar emulator.

= 2.4.13 - 18 August 2016 =
* Fixed: layout directory imports in WordPress 4.6

= 2.4.12 - 17 August 2016 =
* Fixed layout directory requests for WordPress 4.6

= 2.4.11 - 15 August 2016 =
* Added esc_url to all add_query_arg calls.
* Improved measurement style field to handle multiple values.
* Hide empty columns after mobile collapse.

= 2.4.10 - 4 July 2016 =
* Made Live Editor quick link optional from Page Builder settings page.
* Added option to specify parallax motion.
* Fixed settings help link.
* Renamed Prebuilt to Layouts
* Reverted sidebars emulator change.
* Skip empty attributes in CSS generator class.

= 2.4.9 - May 26 2016 =
* Improved parallax library to upscale images to ensure enough of a parallax.
* Allow negative values in measurement fields.

= 2.4.8 - May 13 2016 =
* Reverted Wordfence fix from 2.4.7 - it raised other issues.

= 2.4.7 - May 13 2016 =
* Replaced parallax with custom implementation.
* Added more filters and actions.
* Allow other plugins to enable/disable certain builder functionality.
* Added unique IDs (UUID) to all widgets.
* Added fallback previewer for Live Editor.
* Prevent double filtering of $panels_data.
* Developer support for read-only widgets.
* Fixed issue that resulted in Wordfence blocking some Page Builder requests.
* Small interface improvements.

= 2.4.6 - April 13 2016 =
* Fixed Javascript errors with layout builder widget.

= 2.4.5 - April 13 2016 =
* Only trigger contextual menu for topmost dialog.
* Improved design of Live Editor preview.
* Added Live Editor link in the admin menu bar.

= 2.4.4 - April 6 2016 =
* Fixed ordering of new rows, widgets and cells in builder interface.
* Fixed Layout Builder widget sanitization error. Was causing fatal error on older versions of PHP.

= 2.4.3 - April 6 2016 =
* Fixed measurement style fields.
* Properly process raw widgets in Live Editor.
* Remove empty widgets from raw widget processing.

= 2.4.2 - April 4 2016 =
* Improved error handling and reporting.
* Don't add widget class for TwentySixteen theme.

= 2.4.1 - April 2 2016 =
* Fixed: Copying content from standard editor to Page Builder
* Fixed: Plugin conflict with Jetpack Widget Visibility and other plugins.

= 2.4 - April 1 2016 =
* Created new Live Editor.
* Changes to Page Builder admin HTML structure for Live Editor.
* New layout for prebuilt dialog.
* Now possible to append, prepend and replace layouts in prebuilt dialog.
* Fixed contextual menu in Layout Builder widget.
* Added row/widget actions to contextual menu.
* Clarified functionality of "Switch to Editor" button by renaming to "Revert to Editor".
* refreshPanelsData function is called more consistently.
* Various background performance enhancements.
* Full JS code refactoring.
* Fixed cell bottom margins with reverse collapse order.
* Improved window scroll locking for dialogs.
* Added `in_widget_form` action when rendering widget forms
* Custom home page now saves revisions.

= 2.3.2 - March 11 2016 =
* Fixed compatibility with WordPress 4.5

= 2.3.1 - February 10 2016 =
* Fixed fatal error on RTL sites.
* Made setting to enable tablet layout. Disabled by default.

= 2.3 - February 10 2016 =
* Delete preview panels data if there are no widgets.
* Added a collapse order field.
* Added custom row ID field.
* Fixed copy content setting.
* Added tablet responsive level.
* Fixed admin templates.
* Fix to ensure live editor works with HTTPs admin requests.
* Fix for Yoast SEO compatibility.
* Removed use of filter_input for HHVM issues.
* Added panelsStretchRows event after frontend row stretch event.
* Minor performance enhancements.
* Merged all separate JS files into a single Browserify compiled file.
* Added version numbers to some JS files to ensure cache busting.

= 2.2.2 - December 09 2015 =
* Fix tab name for WordPress 4.4. Was displaying undefined.
* Fix to ensure siteorigin-panels class is added to Page Builder pages.

= 2.2.1 - October 22 2015 =
* Various fixes to widget class names.
* Added option to remove default `widget` class from Page Builder widgets.
* Added action to saving home page.
* Added support for defaults in widget and row styles.
* Improve check for the homepage in sidebars simulator.
* Changed parallax library to improve theme compatibility.
* List privately published posts and pages under the prebuilt layout dialog Clone options.

= 2.2 - September 7 2015 =
* Added prebuilt layout directory.
* Added contextual menu for quick actions.
* Added parallax background images.
* Properly handle missing widgets when saving forms.
* Don't revert to default page template when using custom home page interface.
* Various minor bug fixes and improvements.

= 2.1.5 - August 19 2015 =
* Fixed handling of checkboxes and array fields.
* Properly position Page Builder tab in WordPress 4.3.

= 2.1.4 =
* Fixed handling of raw forms.

= 2.1.3 =
* Removed use of filter_input for compatibility with HHVM
* Fixed checkbox handling in forms.
* Removed unnecessary sprintf calls to lower chance of translations causing issues.
* More generic handling of builder instances to allow them to be used in different places.
* Use implicit check for whether editor is undefined or null.
* Added optional $widget_id parameter to siteorigin_panels_render_form.
* Improved checking for home page in sidebars emulator.
* Added a builder "type" to allow more targetted instances.

= 2.1.2 =
* Removed rendered content cache introduced in 2.1.1

= 2.1.1 =
* Added translations for 16 additional languages
* Modified strings to improve translatability.
* Row and Widget style measurement fields now allow multiple values.
* New rows now added below row of currently selected cell.
* Orphaned widgets in edited rows are now moved into remaining cell.
* Made panels javascript object globally accessible.
* panels_info array now passed into widget rendering function.
* Removed unnecessary action triggers from customizer that was breaking some themes.
* Disabling Page Builder on a page now properly creates history entry.
* Small fixes to sidebars emulator.
* Fixed import/export on custom home page interface.
* Removed call to filter_input from global space.
* Fixed bundled widgets conflict with Yoast SEO.
* Prevented double rendering issue with Yoast SEO.

= 2.1 =
* Improved Page Builder settings page.
* Added sidebar emulation, which makes a Page Builder page appear to be a sidebar. Improves compatibility with other widgets.
* Removed jPlayer. Self hosted widget (legacy) now uses MediaElement.
* Small usability improvements.
* Added legacy widget migration for gallery widget.
* Layout file based import/export feature.
* Added widget title setting to change widget title HTML.
* Added setting to control full width container.
* Fixed: Handling of namespaced widgets.
* Fixed: Layout Builder widget now works in the Customizer.
* Fixed: Custom home page interface now properly uses page_on_front.
* Fixed: Page URL for home page in custom home page.
* Fixed: Custom home page encoding.

= 2.0.7 =
* Fixed issue that prevented prebuilt layouts from showing up.

= 2.0.6 =
* Added nonce to all admin requests.
* Fixed live editor for missing widgets.
* Fixed handling of multi-line row/widget custom CSS.
* Fixed issue with encoding of panels_data.

= 2.0.5 =
* Added proper escaping in widget form.

= 2.0.4 =
* Changed how data is json encoded to prevent malformed Page Builder data.
* Fixed import/export.
* Added layout widget notification (doesn't work in customizer).
* Fixed translation domains.
* Additional hooks and filters.

= 2.0.3 =
* Fixed issue with double calling sidebar_admin_setup that was breaking some widgets.
* Fixed fetching content from TinyMCE in text mode.

= 2.0.2 =
* Fixed fatal error in validation for PHP < 5.5

= 2.0.1 =
* Fixed issue with preview causing content loss in standard editor.
* Fixed issue with Black Studio TinyMCE
* Changed templating tags in js-templates.php to prevent fatal errors with some server configurations.

= 2.0 =
* Complete rewrite of Page Builder Javascript using Backbone.
* Complete UI redesign.
* Grid Engine rewrite for more efficient CSS.
* Various performance enhancements and bug fixes.

== Upgrade Notice ==

Page Builder 2.0 is a major update. Please ensure that you backup your database before updating from a 1.x version. Updating from 1.x to 2.0 is a smooth transition, but it's always better to have a backup.
