WordPress Page Builder – Beaver Builder - Version 2.4.2

Version Description

Download this release

Release Info

Developer pross
Plugin Icon 128x128 WordPress Page Builder – Beaver Builder
Version 2.4.2
Comparing to
See all releases

Code changes from version 2.4.1.3 to 2.4.2

Files changed (38) hide show
  1. changelog.txt +45 -14
  2. classes/class-fl-builder-admin-settings.php +30 -1
  3. classes/class-fl-builder-art.php +6 -2
  4. classes/class-fl-builder-auto-suggest.php +1 -1
  5. classes/class-fl-builder-compatibility.php +22 -3
  6. classes/class-fl-builder-extensions.php +2 -2
  7. classes/class-fl-builder-loader.php +1 -1
  8. classes/class-fl-builder-model.php +11 -10
  9. classes/class-fl-builder-notifications.php +1 -1
  10. classes/class-fl-builder-service-campayn.php +1 -1
  11. classes/class-fl-builder-ui-settings-forms.php +2 -2
  12. classes/class-fl-builder-user-access.php +2 -1
  13. classes/class-fl-builder-utils.php +1 -1
  14. classes/class-fl-builder.php +119 -45
  15. css/build/builder.bundle.css +20 -20
  16. css/build/builder.bundle.min.css +1 -1
  17. css/build/fluid.bundle.css +0 -320
  18. css/build/fluid.bundle.min.css +0 -1
  19. css/build/vendor-bb-fluid.bundle.css +1613 -0
  20. css/build/vendor-bb-fluid.bundle.min.css +1 -0
  21. css/build/wp-editor.bundle.css +2 -0
  22. css/fl-builder-ui-skin-dark.css +1 -1
  23. css/fl-builder.css +8 -0
  24. css/fl-builder.min.css +1 -1
  25. fl-builder.php +1 -1
  26. includes/admin-settings-tools.php +32 -0
  27. includes/column-css.php +1 -0
  28. includes/export.php +1 -1
  29. includes/ui-field-form.php +1 -1
  30. includes/ui-js-config.php +10 -1
  31. includes/updater-config.php +1 -1
  32. includes/updater/classes/class-fl-updater.php +40 -4
  33. js/build/builder.bundle.js +1591 -354
  34. js/build/builder.bundle.min.js +2 -522
  35. js/build/builder.bundle.min.js.LICENSE.txt +5 -0
  36. js/build/components.bundle.js +0 -76
  37. js/build/components.bundle.min.js +0 -1
  38. js/build/fluid.bundle.js +0 -108
changelog.txt CHANGED
@@ -1,3 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <h4>2.4.1.3 - 12/21/2020</h4>
2
  <strong>Hot Fix</strong>
3
  <ul>
@@ -205,7 +236,7 @@ Beaver Builder 2.4 is here! This is a major update and will be released as the o
205
  <li>Remove autoload from options that we can, like fl_notifications</li>
206
  <li>Fix a fatal error in certain cases when a used module goes missing</li>
207
  <li>Fixed lodash issue when using Events Calendar and Assistant plugins.</li>
208
- <li>Fixe Importer issues: imported items not showing the layout CSS/JS and other minor fixes</li>
209
  <li>Fixed Import/Export not working with custom modules with _ in slug.</li>
210
  <li>Fixed MultiSite domain mapping causing responsive settings to go full screen.</li>
211
  <li>Fixed Autoptimize aggregate CSS causing responsive settings to go full screen.</li>
@@ -263,7 +294,7 @@ Beaver Builder 2.4 is here! This is a major update and will be released as the o
263
  <h4>2.3.2.3 - 03/16/2020</h4>
264
  <strong>Hot Fix</strong>
265
  <ul>
266
- <li>Fixed alignment isssue of color picker X icon on Firefox.</li>
267
  <li>Fixed template importer issue.</li>
268
  <li>Fixed JS error in legacy settings response.</li>
269
  <li>Updated license warning logic in wp-admin.</li>
@@ -323,7 +354,7 @@ Beaver Builder 2.4 is here! This is a major update and will be released as the o
323
  <ul>
324
  <li>Added responsive alignment controls to Icon Group.</li>
325
  <li>Added available downloads to debug info.</li>
326
- <li>Whe using Youtube video for row background, use fallback as start image then fade in when video loads.</li>
327
  <li>Respect <code>fl_builder_render_admin_edit_ui</code> filter if using Block Editor.</li>
328
  </ul>
329
  <strong>Bug Fixes</strong>
@@ -431,8 +462,8 @@ Fixed default text still appearing even after being removed</li>
431
  <p><strong>Hot Fix</strong></p>
432
  <ul>
433
  <li>Fixed importer issue.</li>
434
- <li>Fixed Accordian active/focus CSS issue.</li>
435
- <li>Removed Wrapper.php from phpxmlrpc vendor package as it flagged up a false positive for malware and isnt actually used.</li>
436
  <li>Fixed JS error with Yoast integration if Yoast meta box is disabled for post-type.</li>
437
  <li>Fixed add media modal CSS issue introduced in WP 5.3</li>
438
  <li>Fixed HTML being stripped in subscribe module success message.</li>
@@ -614,7 +645,7 @@ Fixed default text still appearing even after being removed</li>
614
  <li>Fixed background/border CSS issue in Accordion module.</li>
615
  <li>Fixed mobile menu icon missing at 993px in Menu module.</li>
616
  <li>Fixed expanded mobile menu not closing when clicked outside of the module.</li>
617
- <li>Fixed missing quotes in Accordian module markup.</li>
618
  <li>Removed flpaging query string in pagination.</li>
619
  <li>Keep initial $post object and reset globals after loop.</li>
620
  <li>Various branding updates to error messages.</li>
@@ -712,7 +743,7 @@ Fixed default text still appearing even after being removed</li>
712
  <li>Fixed some Google fonts not rendering correctly if they have numbers in the font name.</li>
713
  <li>Updated the crash error message popup text.</li>
714
  <li>Update checks now use SSL urls.</li>
715
- <li>Fixed preview issue. Type unit was using the number value intead of the unit value.</li>
716
  <li>Fixed WPCLI issue when using PHP5.</li>
717
  <li>Fixed issue with Maps module and ACF map field connection.</li>
718
  <li>Fixed undefined index warning on some Woocommerce pages.</li>
@@ -1417,7 +1448,7 @@ Fixed default text still appearing even after being removed</li>
1417
  <li>Fixed Pagely cache clear code.</li>
1418
  <li>Fixed small issue with Google italic fonts.</li>
1419
  <li>Fixed issue with Enfold theme causing javascript error when builder is open.</li>
1420
- <li>Updated Events Calender Widget compatibility code.</li>
1421
  <li>New filter added <code>fl_get_edit_url</code>.</li>
1422
  <li>New filter added <code>fl_widget_module_args</code>.</li>
1423
  </ul>
@@ -3236,7 +3267,7 @@ Fixed default text still appearing even after being removed</li>
3236
  <li>Refactored frontend AJAX actions and rendering to support partial refresh. Developers tapping into those actions may need to update their code.</li>
3237
  <li>Optimized loading of the builder UI by concatenating and minifying all core CSS and JavaScript files.</li>
3238
  <li>Builder caching is now disabled when WP_DEBUG is set to true.</li>
3239
- <li>The editing capability setting now supports multiple comma seperated values.</li>
3240
  <li>Updated Google fonts.</li>
3241
  </ul>
3242
  <p><strong>Bug Fixes</strong></p>
@@ -3660,7 +3691,7 @@ Fixed default text still appearing even after being removed</li>
3660
  <p><strong>Enhancements</strong></p>
3661
  <ul>
3662
  <li>Added SendinBlue integration.</li>
3663
- <li>Added filters for MailChimp single optin and disabling the welcome message.</li>
3664
  <li>Most of the builder's PHP and JavaScript files now have much better inline documentation of classes, properties and methods (we still need to do the modules).</li>
3665
  </ul>
3666
  <p><strong>Tweaks</strong></p>
@@ -3765,7 +3796,7 @@ Fixed default text still appearing even after being removed</li>
3765
  <ul>
3766
  <li>Added a help button to the builder interface that gives users access to a tour, video (coming soon), forums and documentation.</li>
3767
  <li>Added network settings for white labeling the help button. Agency members can customize or disable all help button features such as adding their own video or knowledge base links. Unfortunately, the tour is too complex to make customizable, but it can be disabled and is disabled by default while in simple editing mode.</li>
3768
- <li>Added a welcome message for the first time a user launchs the builder on a site asking if they would like to view the tour.</li>
3769
  <li>Added a new style setting to the button module for creating flat, gradient or transparent buttons.</li>
3770
  <li>Added Arabic and Spanish translations.</li>
3771
  <li>Added display:inline to builder images to prevent themes that set images to display:block from breaking alignment.</li>
@@ -4019,7 +4050,7 @@ Fixed default text still appearing even after being removed</li>
4019
  <h4>1.3.0</h4>
4020
  <p><strong>Enhancements</strong></p>
4021
  <ul>
4022
- <li>Multiple accordian items can now be open at the same time.</li>
4023
  <li>Added Swedish translation.</li>
4024
  </ul>
4025
  <p><strong>Bug Fixes</strong></p>
@@ -4158,7 +4189,7 @@ Fixed default text still appearing even after being removed</li>
4158
  <li>Added help tooltips to row, column and module actions.</li>
4159
  <li>The row and module settings spacing tab has been renamed to advanced.</li>
4160
  <li>Added CSS animations for modules under the advanced settings tab.</li>
4161
- <li>Added opacity to seperator module.</li>
4162
  <li>License activation has been moved from Settings &gt; FastLine Themes to Settings &gt; Page Builder &gt; License.</li>
4163
  <li>The builder is now disabled by default for posts.</li>
4164
  <li>Added new font awesome icons.</li>
@@ -4301,7 +4332,7 @@ Fixed default text still appearing even after being removed</li>
4301
  <p><strong>Bug Fixes</strong></p>
4302
  <ul>
4303
  <li>Fixed a bug with widget modules. Now when you uninstall a custom widget that was inserted into the builder, it doesn't break.</li>
4304
- <li>Fixed an issue with button css being overriden by third party themes.</li>
4305
  </ul>
4306
 
4307
  <h4>1.0.5</h4>
1
+ <h4>2.4.2 - 01/28/2021</h4>
2
+ <strong>Enhancements</strong>
3
+ <ul>
4
+ <li>Add compatibility with Assistant .6</li>
5
+ <li>Small changes to the Updates Unavailable message so it will show why updates are unavailable</li>
6
+ <li>Add Alpha/Beta updates opt-in setting in Settings > Tool admin page</li>
7
+ </ul>
8
+
9
+ <strong>Bug Fixes</strong>
10
+ <ul>
11
+ <li>Audio Module: Fix issue if audio file URL contains query strings</li>
12
+ <li>Callout Module: Fix border radius not affecting the image</li>
13
+ <li>Callout Module: Fix invalid HTML when using an icon</li>
14
+ <li>Gallery Module: Fix image sequence not being correct when going through images in lightbox</li>
15
+ <li>Heading Module: Fix Typography styling changes not showing as you change in Responsive Editing mode</li>
16
+ <li>Posts Module: Fix content options not toggling to hidden when they should</li>
17
+ <li>Search Module: fix fatal error when using Global Element with AJAX Search Results</li>
18
+ <li>Subscribe Module: Fix button styling applying to placeholder text</li>
19
+ <li>Video Module: Fix video embed code not specified notice not displaying when using connect field connection</li>
20
+ <li>Fix dark mode syntax highlighting</li>
21
+ <li>Fix BB UI icons not showing on Multi-Site subsites when FontAwesome Pro is enabled on the main network site</li>
22
+ <li>Fix PHP8 notices</li>
23
+ <li>Improvements to our sensitive code check to allow non-breaking space and other HTML entities</li>
24
+ <li>Fix namespaced widgets showing "Widget not available" message when you go back in to edit</li>
25
+ <li>Fix select fields showing in Responsive Editing mode when they should be hidden</li>
26
+ <li>Fix column width consistency issue on small devices when reverse stacking is enabled</li>
27
+ <li>Fix horizontal scrollbar on Windows machines when using a layout shortcode</li>
28
+ <li>Fix compatibility issue with All In One SEO when using a layout shortcode on the page</li>
29
+ <li>Fix compatibility with Real Meal Library so that folders are visible on small devices</li>
30
+ </ul>
31
+
32
  <h4>2.4.1.3 - 12/21/2020</h4>
33
  <strong>Hot Fix</strong>
34
  <ul>
236
  <li>Remove autoload from options that we can, like fl_notifications</li>
237
  <li>Fix a fatal error in certain cases when a used module goes missing</li>
238
  <li>Fixed lodash issue when using Events Calendar and Assistant plugins.</li>
239
+ <li>Fixed Importer issues: imported items not showing the layout CSS/JS and other minor fixes</li>
240
  <li>Fixed Import/Export not working with custom modules with _ in slug.</li>
241
  <li>Fixed MultiSite domain mapping causing responsive settings to go full screen.</li>
242
  <li>Fixed Autoptimize aggregate CSS causing responsive settings to go full screen.</li>
294
  <h4>2.3.2.3 - 03/16/2020</h4>
295
  <strong>Hot Fix</strong>
296
  <ul>
297
+ <li>Fixed alignment issue of color picker X icon on Firefox.</li>
298
  <li>Fixed template importer issue.</li>
299
  <li>Fixed JS error in legacy settings response.</li>
300
  <li>Updated license warning logic in wp-admin.</li>
354
  <ul>
355
  <li>Added responsive alignment controls to Icon Group.</li>
356
  <li>Added available downloads to debug info.</li>
357
+ <li>When using Youtube video for row background, use fallback as start image then fade in when video loads.</li>
358
  <li>Respect <code>fl_builder_render_admin_edit_ui</code> filter if using Block Editor.</li>
359
  </ul>
360
  <strong>Bug Fixes</strong>
462
  <p><strong>Hot Fix</strong></p>
463
  <ul>
464
  <li>Fixed importer issue.</li>
465
+ <li>Fixed Accordion active/focus CSS issue.</li>
466
+ <li>Removed Wrapper.php from phpxmlrpc vendor package as it flagged up a false positive for malware and isn't actually used.</li>
467
  <li>Fixed JS error with Yoast integration if Yoast meta box is disabled for post-type.</li>
468
  <li>Fixed add media modal CSS issue introduced in WP 5.3</li>
469
  <li>Fixed HTML being stripped in subscribe module success message.</li>
645
  <li>Fixed background/border CSS issue in Accordion module.</li>
646
  <li>Fixed mobile menu icon missing at 993px in Menu module.</li>
647
  <li>Fixed expanded mobile menu not closing when clicked outside of the module.</li>
648
+ <li>Fixed missing quotes in Accordion module markup.</li>
649
  <li>Removed flpaging query string in pagination.</li>
650
  <li>Keep initial $post object and reset globals after loop.</li>
651
  <li>Various branding updates to error messages.</li>
743
  <li>Fixed some Google fonts not rendering correctly if they have numbers in the font name.</li>
744
  <li>Updated the crash error message popup text.</li>
745
  <li>Update checks now use SSL urls.</li>
746
+ <li>Fixed preview issue. Type unit was using the number value instead of the unit value.</li>
747
  <li>Fixed WPCLI issue when using PHP5.</li>
748
  <li>Fixed issue with Maps module and ACF map field connection.</li>
749
  <li>Fixed undefined index warning on some Woocommerce pages.</li>
1448
  <li>Fixed Pagely cache clear code.</li>
1449
  <li>Fixed small issue with Google italic fonts.</li>
1450
  <li>Fixed issue with Enfold theme causing javascript error when builder is open.</li>
1451
+ <li>Updated Events Calendar Widget compatibility code.</li>
1452
  <li>New filter added <code>fl_get_edit_url</code>.</li>
1453
  <li>New filter added <code>fl_widget_module_args</code>.</li>
1454
  </ul>
3267
  <li>Refactored frontend AJAX actions and rendering to support partial refresh. Developers tapping into those actions may need to update their code.</li>
3268
  <li>Optimized loading of the builder UI by concatenating and minifying all core CSS and JavaScript files.</li>
3269
  <li>Builder caching is now disabled when WP_DEBUG is set to true.</li>
3270
+ <li>The editing capability setting now supports multiple comma separated values.</li>
3271
  <li>Updated Google fonts.</li>
3272
  </ul>
3273
  <p><strong>Bug Fixes</strong></p>
3691
  <p><strong>Enhancements</strong></p>
3692
  <ul>
3693
  <li>Added SendinBlue integration.</li>
3694
+ <li>Added filters for MailChimp single opt-in and disabling the welcome message.</li>
3695
  <li>Most of the builder's PHP and JavaScript files now have much better inline documentation of classes, properties and methods (we still need to do the modules).</li>
3696
  </ul>
3697
  <p><strong>Tweaks</strong></p>
3796
  <ul>
3797
  <li>Added a help button to the builder interface that gives users access to a tour, video (coming soon), forums and documentation.</li>
3798
  <li>Added network settings for white labeling the help button. Agency members can customize or disable all help button features such as adding their own video or knowledge base links. Unfortunately, the tour is too complex to make customizable, but it can be disabled and is disabled by default while in simple editing mode.</li>
3799
+ <li>Added a welcome message for the first time a user launches the builder on a site asking if they would like to view the tour.</li>
3800
  <li>Added a new style setting to the button module for creating flat, gradient or transparent buttons.</li>
3801
  <li>Added Arabic and Spanish translations.</li>
3802
  <li>Added display:inline to builder images to prevent themes that set images to display:block from breaking alignment.</li>
4050
  <h4>1.3.0</h4>
4051
  <p><strong>Enhancements</strong></p>
4052
  <ul>
4053
+ <li>Multiple accordion items can now be open at the same time.</li>
4054
  <li>Added Swedish translation.</li>
4055
  </ul>
4056
  <p><strong>Bug Fixes</strong></p>
4189
  <li>Added help tooltips to row, column and module actions.</li>
4190
  <li>The row and module settings spacing tab has been renamed to advanced.</li>
4191
  <li>Added CSS animations for modules under the advanced settings tab.</li>
4192
+ <li>Added opacity to separator module.</li>
4193
  <li>License activation has been moved from Settings &gt; FastLine Themes to Settings &gt; Page Builder &gt; License.</li>
4194
  <li>The builder is now disabled by default for posts.</li>
4195
  <li>Added new font awesome icons.</li>
4332
  <p><strong>Bug Fixes</strong></p>
4333
  <ul>
4334
  <li>Fixed a bug with widget modules. Now when you uninstall a custom widget that was inserted into the builder, it doesn't break.</li>
4335
+ <li>Fixed an issue with button css being overridden by third party themes.</li>
4336
  </ul>
4337
 
4338
  <h4>1.0.5</h4>
classes/class-fl-builder-admin-settings.php CHANGED
@@ -394,6 +394,7 @@ final class FLBuilderAdminSettings {
394
  self::clear_cache();
395
  self::debug();
396
  self::global_edit();
 
397
  self::uninstall();
398
 
399
  /**
@@ -529,7 +530,7 @@ final class FLBuilderAdminSettings {
529
  fl_builder_filesystem()->get_filesystem();
530
 
531
  /**
532
- * Before set is unziped.
533
  * @see fl_builder_before_unzip_icon_set
534
  */
535
  do_action( 'fl_builder_before_unzip_icon_set', $id, $path, $new_path );
@@ -783,6 +784,34 @@ final class FLBuilderAdminSettings {
783
  }
784
  }
785
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
786
  /**
787
  * @since 1.0
788
  * @deprecated 1.8
394
  self::clear_cache();
395
  self::debug();
396
  self::global_edit();
397
+ self::beta();
398
  self::uninstall();
399
 
400
  /**
530
  fl_builder_filesystem()->get_filesystem();
531
 
532
  /**
533
+ * Before set is unzipped.
534
  * @see fl_builder_before_unzip_icon_set
535
  */
536
  do_action( 'fl_builder_before_unzip_icon_set', $id, $path, $new_path );
784
  }
785
  }
786
 
787
+ /**
788
+ * Enable/disable beta updates
789
+ *
790
+ * @since 2.4
791
+ * @access private
792
+ * @return void
793
+ */
794
+ static private function beta() {
795
+
796
+ if ( ! current_user_can( 'delete_users' ) ) {
797
+ return;
798
+ } elseif ( isset( $_POST['fl-beta-nonce'] ) && wp_verify_nonce( $_POST['fl-beta-nonce'], 'beta' ) ) {
799
+
800
+ if ( isset( $_POST['beta-checkbox'] ) ) {
801
+ update_option( 'fl_beta_updates', true );
802
+ } else {
803
+ delete_option( 'fl_beta_updates' );
804
+ }
805
+
806
+ if ( isset( $_POST['alpha-checkbox'] ) ) {
807
+ update_option( 'fl_alpha_updates', true );
808
+ } else {
809
+ delete_option( 'fl_alpha_updates' );
810
+ }
811
+ }
812
+ }
813
+
814
+
815
  /**
816
  * @since 1.0
817
  * @deprecated 1.8
classes/class-fl-builder-art.php CHANGED
@@ -145,7 +145,7 @@ class FLBuilderArt {
145
 
146
  /**
147
  * Setup a preset to reference the shape's initial configuration later
148
- * This is so when you choose a shape, we can also setup other fields for the optimal inital appearance.
149
  */
150
  FLBuilderSettingsPresets::register( 'shape', array(
151
  'name' => $args['name'],
@@ -584,7 +584,11 @@ class FLBuilderArt {
584
 
585
  $shape_name = $settings->{ $prefix . 'shape' };
586
  $presets = FLBuilderSettingsPresets::get_presets();
587
- $preset = $presets['shape'][ $shape_name ];
 
 
 
 
588
 
589
  FLBuilderCSS::rule( array(
590
  'selector' => ".fl-node-$id .fl-builder-$position-edge-layer",
145
 
146
  /**
147
  * Setup a preset to reference the shape's initial configuration later
148
+ * This is so when you choose a shape, we can also setup other fields for the optimal initial appearance.
149
  */
150
  FLBuilderSettingsPresets::register( 'shape', array(
151
  'name' => $args['name'],
584
 
585
  $shape_name = $settings->{ $prefix . 'shape' };
586
  $presets = FLBuilderSettingsPresets::get_presets();
587
+ $preset = ( isset( $presets['shape'][ $shape_name ] ) ) ? $presets['shape'][ $shape_name ] : false;
588
+
589
+ if ( ! $preset ) {
590
+ continue;
591
+ }
592
 
593
  FLBuilderCSS::rule( array(
594
  'selector' => ".fl-node-$id .fl-builder-$position-edge-layer",
classes/class-fl-builder-auto-suggest.php CHANGED
@@ -309,7 +309,7 @@ final class FLBuilderAutoSuggest {
309
  $slugs[] = esc_sql( $slug );
310
  }
311
 
312
- // we cant use an array of arrays for prepare() so use sprintf 1st.
313
  $query = sprintf( "SELECT ID, post_title, post_type FROM {$wpdb->posts}
314
  WHERE post_title LIKE %%s
315
  AND post_type IN ('%s')
309
  $slugs[] = esc_sql( $slug );
310
  }
311
 
312
+ // we can't use an array of arrays for prepare() so use sprintf 1st.
313
  $query = sprintf( "SELECT ID, post_title, post_type FROM {$wpdb->posts}
314
  WHERE post_title LIKE %%s
315
  AND post_type IN ('%s')
classes/class-fl-builder-compatibility.php CHANGED
@@ -76,6 +76,8 @@ final class FLBuilderCompatibility {
76
  add_filter( 'fl_builder_loop_rewrite_rules', array( __CLASS__, 'fix_polylang_pagination_rule' ) );
77
  add_filter( 'fl_builder_loop_query_args', array( __CLASS__, 'fix_tribe_events_hide_from_listings' ) );
78
  add_filter( 'tribe_events_rewrite_rules_custom', array( __CLASS__, 'fix_tribe_events_pagination_rule' ), 10, 3 );
 
 
79
  }
80
 
81
  /**
@@ -157,12 +159,13 @@ final class FLBuilderCompatibility {
157
  * @since 2.3
158
  */
159
  public static function fa_kit_support() {
160
- if ( FLBuilder::fa5_pro_enabled() && '' !== get_option( '_fl_builder_kit_fa_pro' ) ) {
 
161
  wp_dequeue_style( 'font-awesome' );
162
  wp_dequeue_style( 'font-awesome-5' );
163
  wp_deregister_style( 'font-awesome' );
164
  wp_deregister_style( 'font-awesome-5' );
165
- wp_enqueue_script( 'fa5-kit', get_option( '_fl_builder_kit_fa_pro' ) );
166
  }
167
  }
168
 
@@ -549,7 +552,7 @@ final class FLBuilderCompatibility {
549
  /**
550
  * Disable support Buddypress pages since it's causing conflicts with `the_content` filter
551
  *
552
- * @param bool $is_editable Wether the post is editable or not
553
  * @param $post The post to check from
554
  * @return bool
555
  */
@@ -1021,5 +1024,21 @@ final class FLBuilderCompatibility {
1021
  add_filter( 'walker_nav_menu_start_el', 'twenty_twenty_one_add_sub_menu_toggle', 10, 4 );
1022
  }
1023
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1024
  }
1025
  FLBuilderCompatibility::init();
76
  add_filter( 'fl_builder_loop_rewrite_rules', array( __CLASS__, 'fix_polylang_pagination_rule' ) );
77
  add_filter( 'fl_builder_loop_query_args', array( __CLASS__, 'fix_tribe_events_hide_from_listings' ) );
78
  add_filter( 'tribe_events_rewrite_rules_custom', array( __CLASS__, 'fix_tribe_events_pagination_rule' ), 10, 3 );
79
+ add_filter( 'aioseo_conflicting_shortcodes', array( __CLASS__, 'aioseo_conflicting_shortcodes' ) );
80
+ add_filter( 'fl_builder_responsive_ignore', array( __CLASS__, 'fix_real_media_library_lite' ) );
81
  }
82
 
83
  /**
159
  * @since 2.3
160
  */
161
  public static function fa_kit_support() {
162
+ $kit_url = FLBuilder::fa5_kit_url();
163
+ if ( FLBuilder::fa5_pro_enabled() && '' !== $kit_url ) {
164
  wp_dequeue_style( 'font-awesome' );
165
  wp_dequeue_style( 'font-awesome-5' );
166
  wp_deregister_style( 'font-awesome' );
167
  wp_deregister_style( 'font-awesome-5' );
168
+ wp_enqueue_script( 'fa5-kit', $kit_url );
169
  }
170
  }
171
 
552
  /**
553
  * Disable support Buddypress pages since it's causing conflicts with `the_content` filter
554
  *
555
+ * @param bool $is_editable Whether the post is editable or not
556
  * @param $post The post to check from
557
  * @return bool
558
  */
1024
  add_filter( 'walker_nav_menu_start_el', 'twenty_twenty_one_add_sub_menu_toggle', 10, 4 );
1025
  }
1026
  }
1027
+
1028
+ /**
1029
+ * AIOSEO tries to render the layout shortcode too early.
1030
+ * @since 2.4.2
1031
+ */
1032
+ public static function aioseo_conflicting_shortcodes( $shortcodes ) {
1033
+ $shortcodes['Beaver Builder'] = '[fl_builder_insert_layout';
1034
+ return $shortcodes;
1035
+ }
1036
+ /**
1037
+ * @since 2.4.2
1038
+ */
1039
+ public static function fix_real_media_library_lite( $ignore ) {
1040
+ $ignore[] = 'real-media-library-lite';
1041
+ return $ignore;
1042
+ }
1043
  }
1044
  FLBuilderCompatibility::init();
classes/class-fl-builder-extensions.php CHANGED
@@ -8,10 +8,10 @@
8
  final class FLBuilderExtensions {
9
 
10
  /**
11
- * Initalizes any extensions found in the extensions directory.
12
  *
13
  * @since 1.8
14
- * @param string $path Path to extensions to initalize.
15
  * @return void
16
  */
17
  static public function init( $path = null ) {
8
  final class FLBuilderExtensions {
9
 
10
  /**
11
+ * Initializes any extensions found in the extensions directory.
12
  *
13
  * @since 1.8
14
+ * @param string $path Path to extensions to initialize.
15
  * @return void
16
  */
17
  static public function init( $path = null ) {
classes/class-fl-builder-loader.php CHANGED
@@ -48,7 +48,7 @@ if ( ! class_exists( 'FLBuilderLoader' ) ) {
48
  * @return void
49
  */
50
  static private function define_constants() {
51
- define( 'FL_BUILDER_VERSION', '2.4.1.3' );
52
  define( 'FL_BUILDER_FILE', trailingslashit( dirname( dirname( __FILE__ ) ) ) . 'fl-builder.php' );
53
  define( 'FL_BUILDER_DIR', plugin_dir_path( FL_BUILDER_FILE ) );
54
  define( 'FL_BUILDER_URL', plugins_url( '/', FL_BUILDER_FILE ) );
48
  * @return void
49
  */
50
  static private function define_constants() {
51
+ define( 'FL_BUILDER_VERSION', '2.4.2' );
52
  define( 'FL_BUILDER_FILE', trailingslashit( dirname( dirname( __FILE__ ) ) ) . 'fl-builder.php' );
53
  define( 'FL_BUILDER_DIR', plugin_dir_path( FL_BUILDER_FILE ) );
54
  define( 'FL_BUILDER_URL', plugins_url( '/', FL_BUILDER_FILE ) );
classes/class-fl-builder-model.php CHANGED
@@ -1612,7 +1612,7 @@ final class FLBuilderModel {
1612
  * @param object $data The data array to delete from.
1613
  * @return void
1614
  */
1615
- static public function delete_child_nodes_from_data( $parent = null, &$data ) {
1616
  $children = self::get_nodes( null, $parent );
1617
 
1618
  foreach ( $children as $child_id => $child ) {
@@ -1780,7 +1780,7 @@ final class FLBuilderModel {
1780
  }
1781
 
1782
  /**
1783
- * Copys a row and adds it to the current layout.
1784
  *
1785
  * @since 1.0
1786
  * @param string $node_id Node ID of the row to copy.
@@ -2636,7 +2636,7 @@ final class FLBuilderModel {
2636
  }
2637
 
2638
  /**
2639
- * Copys a column and adds it to the current layout.
2640
  *
2641
  * @since 2.0
2642
  * @param string $node_id Node ID of the column to copy.
@@ -4102,13 +4102,14 @@ final class FLBuilderModel {
4102
  }
4103
 
4104
  /**
4105
- * Add a space to self closing tags and other things if there isnt one because kses will and checks will fail.
4106
  * @since 2.4.2
4107
  */
4108
  static public function fix_kses( $value ) {
4109
 
4110
  // fix & -> &amp;
4111
- $value = preg_replace( '#(&)(?!amp;)#', '&amp;', $value );
 
4112
 
4113
  // fix <br/> -> <br />
4114
  $value = preg_replace( '#(<[a-z]+)(\/>)#', '$1 $2', $value );
@@ -4391,7 +4392,7 @@ final class FLBuilderModel {
4391
 
4392
  if ( 'fl-builder-template' == $post->post_type ) {
4393
  /**
4394
- * Limit the ammount of revisions for the fl-builder-template type.
4395
  * @see fl_builder_template_revisions
4396
  */
4397
  $num = apply_filters( 'fl_builder_template_revisions', 25 );
@@ -4619,7 +4620,7 @@ final class FLBuilderModel {
4619
  }
4620
 
4621
  /**
4622
- * Remove all empty values from the settings object recursivly to save ~60% db size
4623
  * @since 2.3
4624
  * @param array $haystack
4625
  * @param array $values
@@ -5881,17 +5882,17 @@ final class FLBuilderModel {
5881
  // Unset this node in the layout data.
5882
  unset( $layout_data[ $node_id ] );
5883
 
5884
- // Find sibiling nodes to update their position.
5885
  foreach ( $layout_data as $i => $n ) {
5886
  if ( $n->parent == $node->parent ) {
5887
  $siblings[ $i ] = $n;
5888
  }
5889
  }
5890
 
5891
- // Sort the sibiling nodes by position.
5892
  uasort( $siblings, array( 'FLBuilderModel', 'order_nodes' ) );
5893
 
5894
- // Update sibiling node positions.
5895
  foreach ( $siblings as $i => $n ) {
5896
  $layout_data[ $i ]->position = $position;
5897
  $position++;
1612
  * @param object $data The data array to delete from.
1613
  * @return void
1614
  */
1615
+ static public function delete_child_nodes_from_data( $parent, &$data ) {
1616
  $children = self::get_nodes( null, $parent );
1617
 
1618
  foreach ( $children as $child_id => $child ) {
1780
  }
1781
 
1782
  /**
1783
+ * Copies a row and adds it to the current layout.
1784
  *
1785
  * @since 1.0
1786
  * @param string $node_id Node ID of the row to copy.
2636
  }
2637
 
2638
  /**
2639
+ * Copies a column and adds it to the current layout.
2640
  *
2641
  * @since 2.0
2642
  * @param string $node_id Node ID of the column to copy.
4102
  }
4103
 
4104
  /**
4105
+ * Add a space to self closing tags and other things if there isn't one because kses will and checks will fail.
4106
  * @since 2.4.2
4107
  */
4108
  static public function fix_kses( $value ) {
4109
 
4110
  // fix & -> &amp;
4111
+ $value = preg_replace( '/&([a-z0-9#]+);/i', '&$1;', $value );
4112
+ $value = preg_replace( '#(&)(?!(.*);)#i', '&amp;', $value );
4113
 
4114
  // fix <br/> -> <br />
4115
  $value = preg_replace( '#(<[a-z]+)(\/>)#', '$1 $2', $value );
4392
 
4393
  if ( 'fl-builder-template' == $post->post_type ) {
4394
  /**
4395
+ * Limit the amount of revisions for the fl-builder-template type.
4396
  * @see fl_builder_template_revisions
4397
  */
4398
  $num = apply_filters( 'fl_builder_template_revisions', 25 );
4620
  }
4621
 
4622
  /**
4623
+ * Remove all empty values from the settings object recursively to save ~60% db size
4624
  * @since 2.3
4625
  * @param array $haystack
4626
  * @param array $values
5882
  // Unset this node in the layout data.
5883
  unset( $layout_data[ $node_id ] );
5884
 
5885
+ // Find sibling nodes to update their position.
5886
  foreach ( $layout_data as $i => $n ) {
5887
  if ( $n->parent == $node->parent ) {
5888
  $siblings[ $i ] = $n;
5889
  }
5890
  }
5891
 
5892
+ // Sort the sibling nodes by position.
5893
  uasort( $siblings, array( 'FLBuilderModel', 'order_nodes' ) );
5894
 
5895
+ // Update sibling node positions.
5896
  foreach ( $siblings as $i => $n ) {
5897
  $layout_data[ $i ]->position = $position;
5898
  $position++;
classes/class-fl-builder-notifications.php CHANGED
@@ -150,7 +150,7 @@ final class FLBuilderNotifications {
150
  }
151
 
152
  /**
153
- * Return notications from the db or fetch from remote
154
  *
155
  * @since 2.1
156
  */
150
  }
151
 
152
  /**
153
+ * Return notifications from the db or fetch from remote
154
  *
155
  * @since 2.1
156
  */
classes/class-fl-builder-service-campayn.php CHANGED
@@ -16,7 +16,7 @@ final class FLBuilderServiceCampayn extends FLBuilderService {
16
  public $id = 'campayn';
17
 
18
  /**
19
- * The HTTP protocal
20
  *
21
  * @since 1.5.8
22
  * @access private
16
  public $id = 'campayn';
17
 
18
  /**
19
+ * The HTTP protocol
20
  *
21
  * @since 1.5.8
22
  * @access private
classes/class-fl-builder-ui-settings-forms.php CHANGED
@@ -808,7 +808,7 @@ class FLBuilderUISettingsForms {
808
  * @param object $settings The settings data.
809
  * @return array
810
  */
811
- static public function render_settings( $form = array(), $settings ) {
812
  $defaults = array(
813
  'class' => '',
814
  'attrs' => '',
@@ -823,7 +823,7 @@ class FLBuilderUISettingsForms {
823
  * Legacy filter for the config.
824
  * @see fl_builder_settings_form_config
825
  */
826
- $form = apply_filters( 'fl_builder_settings_form_config', array_merge( $defaults, $form ) );
827
 
828
  // Setup the class var to be safe in JS.
829
  $form['className'] = $form['class'];
808
  * @param object $settings The settings data.
809
  * @return array
810
  */
811
+ static public function render_settings( $form, $settings ) {
812
  $defaults = array(
813
  'class' => '',
814
  'attrs' => '',
823
  * Legacy filter for the config.
824
  * @see fl_builder_settings_form_config
825
  */
826
+ $form = apply_filters( 'fl_builder_settings_form_config', array_merge( $defaults, (array) $form ) );
827
 
828
  // Setup the class var to be safe in JS.
829
  $form['className'] = $form['class'];
classes/class-fl-builder-user-access.php CHANGED
@@ -91,9 +91,10 @@ final class FLBuilderUserAccess {
91
  /**
92
  * Custom sort function instead of create_function which is deprecated in php 7.2
93
  * @since 1.11
 
94
  */
95
  private static function sort( $a, $b ) {
96
- return $a['order'] > $b['order'];
97
  }
98
 
99
  /**
91
  /**
92
  * Custom sort function instead of create_function which is deprecated in php 7.2
93
  * @since 1.11
94
+ * TODO when we ditch php5 we can use the spaceship here <=>
95
  */
96
  private static function sort( $a, $b ) {
97
+ return ( $a['order'] > $b['order'] ) ? 1 : 0;
98
  }
99
 
100
  /**
classes/class-fl-builder-utils.php CHANGED
@@ -87,7 +87,7 @@ final class FLBuilderUtils {
87
  $data = json_decode( $data );
88
  }
89
 
90
- // Decode object properies or array values.
91
  if ( is_object( $data ) || is_array( $data ) ) {
92
 
93
  foreach ( $data as $key => $val ) {
87
  $data = json_decode( $data );
88
  }
89
 
90
+ // Decode object properties or array values.
91
  if ( is_object( $data ) || is_array( $data ) ) {
92
 
93
  foreach ( $data as $key => $val ) {
classes/class-fl-builder.php CHANGED
@@ -232,7 +232,7 @@ final class FLBuilder {
232
  }
233
 
234
  /**
235
- * Allow users to overide the locale.
236
  * @see fl_set_ui_locale
237
  * @since 2.2.4
238
  */
@@ -269,7 +269,7 @@ final class FLBuilder {
269
  * Alias method for registering a template data file with the builder.
270
  *
271
  * @since 1.8
272
- * @param sting $path The directory path to the template data file.
273
  * @return void
274
  */
275
  static public function register_templates( $path, $args = array() ) {
@@ -771,6 +771,78 @@ final class FLBuilder {
771
  self::$enqueued_global_assets = array();
772
  }
773
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
774
  /**
775
  * Register and enqueue the styles and scripts for the builder UI.
776
  *
@@ -789,6 +861,9 @@ final class FLBuilder {
789
  $css_url = plugins_url( '/css/', FL_BUILDER_FILE );
790
  $js_url = plugins_url( '/js/', FL_BUILDER_FILE );
791
 
 
 
 
792
  /* Frontend builder styles */
793
  wp_enqueue_style( 'dashicons' );
794
  wp_enqueue_style( 'font-awesome-5' );
@@ -811,10 +886,10 @@ final class FLBuilder {
811
  // skins need to come after default ui styles
812
  wp_enqueue_style( 'fl-builder-ui-skin-dark', $css_url . 'fl-builder-ui-skin-dark.css', array(), $ver );
813
 
814
- wp_enqueue_style( 'fl-builder-bundle', $css_url . 'build/builder.bundle.css', array( 'fl-fluid' ), $ver );
815
  } else {
816
  wp_enqueue_style( 'fl-builder-min', $css_url . 'fl-builder.min.css', array(), $ver );
817
- wp_enqueue_style( 'fl-builder-bundle', $css_url . 'build/builder.bundle.min.css', array(), $ver );
818
  }
819
 
820
  /* Custom Icons */
@@ -825,14 +900,6 @@ final class FLBuilder {
825
  wp_enqueue_style( 'fl-builder-rtl', $css_url . 'fl-builder-rtl.css', array(), $ver );
826
  }
827
 
828
- // React polyfill for older versions of WordPress.
829
- if ( version_compare( $wp_version, '5.2', '<=' ) ) {
830
- wp_deregister_script( 'react' );
831
- wp_deregister_script( 'react-dom' );
832
- wp_enqueue_script( 'react', $js_url . 'build/react.bundle.js', array(), $ver, true );
833
- wp_enqueue_script( 'react-dom', $js_url . 'build/react-dom.bundle.js', array(), $ver, true );
834
- }
835
-
836
  /* We have custom versions of these that fixes bugs. */
837
  wp_deregister_script( 'jquery-ui-sortable' );
838
  wp_dequeue_script( 'jquery-touch-punch' );
@@ -877,31 +944,8 @@ final class FLBuilder {
877
  wp_enqueue_script( 'select2', $js_url . 'select2.min.js', array(), $ver );
878
  }
879
 
880
- // Register FLUID library - Checks if Assistant has already registered a copy.
881
- if (
882
- ! wp_script_is( 'fl-fluid', 'enqueued' ) &&
883
- ! wp_script_is( 'fl-fluid', 'registered' ) &&
884
- ! wp_script_is( 'fl-fluid', 'to_do' ) &&
885
- ! wp_script_is( 'fl-fluid', 'done' )
886
- ) {
887
-
888
- if ( self::is_debug() ) {
889
- $fluid_js = 'build/fluid.bundle.js';
890
- $fluid_css = 'build/fluid.bundle.css';
891
- } else {
892
- $fluid_js = 'build/fluid.bundle.min.js';
893
- $fluid_css = 'build/fluid.bundle.min.css';
894
- }
895
- // if < 5.0 we get an lodash conflict and fluid will not enqueue
896
- if ( version_compare( $wp_version, '5.2', '<=' ) ) {
897
- wp_register_script( 'fl-fluid', $js_url . $fluid_js, array( 'react', 'react-dom' ), $ver, false );
898
- } else {
899
- wp_register_script( 'fl-fluid', $js_url . $fluid_js, array( 'react', 'react-dom', 'lodash' ), $ver, false );
900
- }
901
- wp_register_style( 'fl-fluid', $css_url . $fluid_css, array(), $ver, null );
902
- }
903
-
904
  // Enqueue individual builder scripts if WP_DEBUG is on.
 
905
  if ( self::is_debug() ) {
906
 
907
  wp_enqueue_script( 'fl-color-picker', $js_url . 'fl-color-picker.js', array(), $ver );
@@ -917,8 +961,8 @@ final class FLBuilder {
917
  wp_enqueue_script( 'fl-builder-responsive-preview', $js_url . 'fl-builder-responsive-preview.js', array(), $ver );
918
  wp_enqueue_script( 'fl-builder-services', $js_url . 'fl-builder-services.js', array(), $ver );
919
  wp_enqueue_script( 'fl-builder-tour', $js_url . 'fl-builder-tour.js', array(), $ver );
920
- wp_enqueue_script( 'fl-builder-ui', $js_url . 'fl-builder-ui.js', array( 'fl-builder', 'mousetrap', 'fl-fluid' ), $ver );
921
- wp_enqueue_script( 'fl-builder-ui-main-menu', $js_url . 'fl-builder-ui-main-menu.js', array( 'fl-builder-ui', 'fl-fluid' ), $ver );
922
  wp_enqueue_script( 'fl-builder-ui-panel-content', $js_url . 'fl-builder-ui-panel-content-library.js', array( 'fl-builder-ui' ), $ver );
923
  wp_enqueue_script( 'fl-builder-ui-settings-forms', $js_url . 'fl-builder-ui-settings-forms.js', array(), $ver );
924
  wp_enqueue_script( 'fl-builder-ui-settings-copy-paste', $js_url . 'fl-builder-ui-settings-copy-paste.js', array(), $ver );
@@ -927,11 +971,11 @@ final class FLBuilder {
927
  wp_enqueue_script( 'fl-builder-search', $js_url . 'fl-builder-search.js', array( 'jquery' ), $ver );
928
  wp_enqueue_script( 'fl-builder-save-manager', $js_url . 'fl-builder-save-manager.js', array( 'jquery' ), $ver );
929
  wp_enqueue_script( 'fl-builder-history-manager', $js_url . 'fl-builder-history-manager.js', array(), $ver );
930
- wp_enqueue_script( 'fl-builder-bundle', $js_url . 'build/builder.bundle.js', array( 'fl-fluid' ), $ver, true );
931
  } else {
932
 
933
- wp_enqueue_script( 'fl-builder-min', $js_url . 'fl-builder.min.js', array( 'jquery', 'mousetrap', 'fl-fluid' ), $ver );
934
- wp_enqueue_script( 'fl-builder-bundle', $js_url . 'build/builder.bundle.min.js', array( 'fl-fluid' ), $ver, true );
935
  }
936
 
937
  /* Additional module styles and scripts */
@@ -1600,6 +1644,11 @@ final class FLBuilder {
1600
  ),
1601
  ) );
1602
 
 
 
 
 
 
1603
  echo '<div class="fl-builder-bar-actions">';
1604
  $i = 0;
1605
 
@@ -2042,8 +2091,8 @@ final class FLBuilder {
2042
  * @param object $settings The settings data.
2043
  * @return array
2044
  */
2045
- static public function render_settings( $form = array(), $settings ) {
2046
- return FLBuilderUISettingsForms::render_settings( $form, $settings );
2047
  }
2048
 
2049
  /**
@@ -3763,8 +3812,8 @@ final class FLBuilder {
3763
  if ( is_multisite() && FLBuilderAdminSettings::multisite_support() ) {
3764
  // if switched...
3765
  if ( $GLOBALS['switched'] ) {
3766
- if ( get_blog_option( $GLOBALS['_wp_switched_stack'][0], '_fl_builder_enabled_templates' ) ) {
3767
- // overide enabled...
3768
  return get_blog_option( $GLOBALS['_wp_switched_stack'][0], '_fl_builder_enable_fa_pro' );
3769
  } else {
3770
  return get_option( '_fl_builder_enable_fa_pro' );
@@ -3780,6 +3829,31 @@ final class FLBuilder {
3780
  return FLBuilderModel::get_admin_settings_option( '_fl_builder_enable_fa_pro' );
3781
  }
3782
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3783
  /**
3784
  * Remove template type from wp-link suggestions.
3785
  * @since 2.2.2
232
  }
233
 
234
  /**
235
+ * Allow users to override the locale.
236
  * @see fl_set_ui_locale
237
  * @since 2.2.4
238
  */
269
  * Alias method for registering a template data file with the builder.
270
  *
271
  * @since 1.8
272
+ * @param string $path The directory path to the template data file.
273
  * @return void
274
  */
275
  static public function register_templates( $path, $args = array() ) {
771
  self::$enqueued_global_assets = array();
772
  }
773
 
774
+ /**
775
+ * Register common JS vendors
776
+ * This is primarily for consistent sharing with Assistant.
777
+ *
778
+ * @return void
779
+ */
780
+ static public function register_shared_vendors() {
781
+ global $wp_version;
782
+
783
+ $ver = FL_BUILDER_VERSION;
784
+ $css_build = plugins_url( '/css/build/', FL_BUILDER_FILE );
785
+ $js_vendors = plugins_url( '/js/vendors/', FL_BUILDER_FILE );
786
+ $js_build = plugins_url( '/js/build/', FL_BUILDER_FILE );
787
+ $tag = '.bundle.min';
788
+ $vendor_tag = '.min';
789
+
790
+ if ( self::is_debug() ) {
791
+ $tag = '.bundle';
792
+ $vendor_tag = '';
793
+ }
794
+
795
+ // React polyfill for older versions of WordPress.
796
+ if ( version_compare( $wp_version, '5.2', '<=' ) ) {
797
+
798
+ // React
799
+ wp_deregister_script( 'react' );
800
+ wp_enqueue_script( 'react', "{$js_vendors}react{$vendor_tag}.js", array(), $ver, true );
801
+
802
+ // React-DOM
803
+ wp_deregister_script( 'react-dom' );
804
+ wp_enqueue_script( 'react-dom', "{$js_vendors}react-dom{$vendor_tag}.js", array(), $ver, true );
805
+ }
806
+
807
+ /**
808
+ * Shared Vendors
809
+ * These vendor bundles are special in that they attach a global reference to themselves on the FL.vendors object.
810
+ */
811
+
812
+ // redux
813
+ wp_register_script( 'redux', "{$js_vendors}redux.min.js", array(), $ver, false );
814
+
815
+ // react-router-dom
816
+ wp_register_script( 'react-router-dom', "{$js_vendors}react-router-dom.min.js", array( 'react' ), $ver, false );
817
+
818
+ // framer-motion
819
+ wp_register_script( 'framer-motion', "{$js_build}vendor-framer-motion{$tag}.js", array( 'react', 'react-dom' ), $ver, false );
820
+
821
+ // react-laag
822
+ wp_register_script( 'react-laag', "{$js_build}vendor-react-laag{$tag}.js", array( 'react' ), $ver, false );
823
+
824
+ // @beaverbuilder/app-core
825
+ $app_core_deps = array( 'react', 'redux', 'react-router-dom', 'wp-i18n' );
826
+ wp_register_script( 'bb-app-core', "{$js_build}vendor-bb-app-core{$tag}.js", $app_core_deps, $ver, false );
827
+
828
+ // @beaverbuilder/icons
829
+ wp_register_script( 'bb-icons', "{$js_build}vendor-bb-icons{$tag}.js", array( 'react' ), $ver, false );
830
+
831
+ // @beaverbuilder/fluid
832
+ $fluid_deps = array(
833
+ 'react',
834
+ 'react-dom',
835
+ 'redux',
836
+ 'react-router-dom',
837
+ 'framer-motion',
838
+ 'react-laag',
839
+ 'wp-i18n',
840
+ 'bb-icons',
841
+ );
842
+ wp_register_script( 'bb-fluid', "{$js_build}vendor-bb-fluid{$tag}.js", $fluid_deps, $ver, false );
843
+ wp_register_style( 'bb-fluid', "{$css_build}vendor-bb-fluid{$tag}.css", array(), $ver, null );
844
+ }
845
+
846
  /**
847
  * Register and enqueue the styles and scripts for the builder UI.
848
  *
861
  $css_url = plugins_url( '/css/', FL_BUILDER_FILE );
862
  $js_url = plugins_url( '/js/', FL_BUILDER_FILE );
863
 
864
+ // Register React and other vendor bundles
865
+ self::register_shared_vendors();
866
+
867
  /* Frontend builder styles */
868
  wp_enqueue_style( 'dashicons' );
869
  wp_enqueue_style( 'font-awesome-5' );
886
  // skins need to come after default ui styles
887
  wp_enqueue_style( 'fl-builder-ui-skin-dark', $css_url . 'fl-builder-ui-skin-dark.css', array(), $ver );
888
 
889
+ wp_enqueue_style( 'fl-builder-system', $css_url . 'build/builder.bundle.css', array( 'bb-fluid' ), $ver );
890
  } else {
891
  wp_enqueue_style( 'fl-builder-min', $css_url . 'fl-builder.min.css', array(), $ver );
892
+ wp_enqueue_style( 'fl-builder-system', $css_url . 'build/builder.bundle.min.css', array( 'bb-fluid' ), $ver );
893
  }
894
 
895
  /* Custom Icons */
900
  wp_enqueue_style( 'fl-builder-rtl', $css_url . 'fl-builder-rtl.css', array(), $ver );
901
  }
902
 
 
 
 
 
 
 
 
 
903
  /* We have custom versions of these that fixes bugs. */
904
  wp_deregister_script( 'jquery-ui-sortable' );
905
  wp_dequeue_script( 'jquery-touch-punch' );
944
  wp_enqueue_script( 'select2', $js_url . 'select2.min.js', array(), $ver );
945
  }
946
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
947
  // Enqueue individual builder scripts if WP_DEBUG is on.
948
+ $bundle_deps = array( 'react', 'react-dom', 'bb-app-core', 'bb-fluid' );
949
  if ( self::is_debug() ) {
950
 
951
  wp_enqueue_script( 'fl-color-picker', $js_url . 'fl-color-picker.js', array(), $ver );
961
  wp_enqueue_script( 'fl-builder-responsive-preview', $js_url . 'fl-builder-responsive-preview.js', array(), $ver );
962
  wp_enqueue_script( 'fl-builder-services', $js_url . 'fl-builder-services.js', array(), $ver );
963
  wp_enqueue_script( 'fl-builder-tour', $js_url . 'fl-builder-tour.js', array(), $ver );
964
+ wp_enqueue_script( 'fl-builder-ui', $js_url . 'fl-builder-ui.js', array( 'fl-builder', 'mousetrap' ), $ver );
965
+ wp_enqueue_script( 'fl-builder-ui-main-menu', $js_url . 'fl-builder-ui-main-menu.js', array( 'fl-builder-ui' ), $ver );
966
  wp_enqueue_script( 'fl-builder-ui-panel-content', $js_url . 'fl-builder-ui-panel-content-library.js', array( 'fl-builder-ui' ), $ver );
967
  wp_enqueue_script( 'fl-builder-ui-settings-forms', $js_url . 'fl-builder-ui-settings-forms.js', array(), $ver );
968
  wp_enqueue_script( 'fl-builder-ui-settings-copy-paste', $js_url . 'fl-builder-ui-settings-copy-paste.js', array(), $ver );
971
  wp_enqueue_script( 'fl-builder-search', $js_url . 'fl-builder-search.js', array( 'jquery' ), $ver );
972
  wp_enqueue_script( 'fl-builder-save-manager', $js_url . 'fl-builder-save-manager.js', array( 'jquery' ), $ver );
973
  wp_enqueue_script( 'fl-builder-history-manager', $js_url . 'fl-builder-history-manager.js', array(), $ver );
974
+ wp_enqueue_script( 'fl-builder-system', $js_url . 'build/builder.bundle.js', $bundle_deps, $ver, true );
975
  } else {
976
 
977
+ wp_enqueue_script( 'fl-builder-min', $js_url . 'fl-builder.min.js', array( 'jquery', 'mousetrap' ), $ver );
978
+ wp_enqueue_script( 'fl-builder-system', $js_url . 'build/builder.bundle.min.js', $bundle_deps, $ver, true );
979
  }
980
 
981
  /* Additional module styles and scripts */
1644
  ),
1645
  ) );
1646
 
1647
+ // Check if Assistant is at least v0.6.0
1648
+ if ( isset( $buttons['fl-assistant'] ) && defined( 'FL_ASSISTANT_VERSION' ) ) {
1649
+ $buttons['fl-assistant']['show'] = version_compare( FL_ASSISTANT_VERSION, '0.6', '>=' );
1650
+ }
1651
+
1652
  echo '<div class="fl-builder-bar-actions">';
1653
  $i = 0;
1654
 
2091
  * @param object $settings The settings data.
2092
  * @return array
2093
  */
2094
+ static public function render_settings( $form, $settings ) {
2095
+ return FLBuilderUISettingsForms::render_settings( (array) $form, $settings );
2096
  }
2097
 
2098
  /**
3812
  if ( is_multisite() && FLBuilderAdminSettings::multisite_support() ) {
3813
  // if switched...
3814
  if ( $GLOBALS['switched'] ) {
3815
+ if ( get_blog_option( $GLOBALS['_wp_switched_stack'][0], '_fl_builder_enable_fa_pro' ) ) {
3816
+ // override enabled...
3817
  return get_blog_option( $GLOBALS['_wp_switched_stack'][0], '_fl_builder_enable_fa_pro' );
3818
  } else {
3819
  return get_option( '_fl_builder_enable_fa_pro' );
3829
  return FLBuilderModel::get_admin_settings_option( '_fl_builder_enable_fa_pro' );
3830
  }
3831
 
3832
+ /**
3833
+ * @since 2.4.2
3834
+ */
3835
+ static public function fa5_kit_url() {
3836
+
3837
+ if ( is_multisite() && FLBuilderAdminSettings::multisite_support() ) {
3838
+ // if switched...
3839
+ if ( $GLOBALS['switched'] ) {
3840
+ if ( get_blog_option( $GLOBALS['_wp_switched_stack'][0], '_fl_builder_kit_fa_pro' ) ) {
3841
+ // override enabled...
3842
+ return get_blog_option( $GLOBALS['_wp_switched_stack'][0], '_fl_builder_kit_fa_pro' );
3843
+ } else {
3844
+ return get_option( '_fl_builder_kit_fa_pro' );
3845
+ }
3846
+ }
3847
+
3848
+ // were not switched...
3849
+ if ( ! get_option( '_fl_builder_enabled_icons' ) ) {
3850
+ $id = defined( 'BLOG_ID_CURRENT_SITE' ) ? BLOG_ID_CURRENT_SITE : 1;
3851
+ return get_blog_option( $id, '_fl_builder_kit_fa_pro' );
3852
+ }
3853
+ }
3854
+ return FLBuilderModel::get_admin_settings_option( '_fl_builder_kit_fa_pro' );
3855
+ }
3856
+
3857
  /**
3858
  * Remove template type from wp-link suggestions.
3859
  * @since 2.2.2
css/build/builder.bundle.css CHANGED
@@ -266,29 +266,29 @@ body.fl-builder-ui-skin--dark .fl-ui-root .fl-ui-panel {
266
  letter-spacing: 2px;
267
  font-weight: normal; }
268
 
269
- .fl-builder-workspace {
270
  position: fixed;
271
- top: 0;
272
- left: 0;
273
  right: 0;
274
  bottom: 0;
 
 
275
  z-index: 999999;
276
- pointer-events: none; }
277
- .fl-builder-workspace .fl-builder-workspace-panel {
278
- position: absolute;
279
- top: 45px;
280
- right: 0;
281
- bottom: 0;
282
- width: 360px;
283
- pointer-events: auto;
284
- display: flex;
285
- flex-direction: column;
286
- background: var(--fluid-background);
287
- border-left: 2px solid var(--fluid-line-color);
288
- overflow: auto; }
 
 
289
 
290
- .fl-builder-assistant-visible {
291
- margin-right: 58px; }
292
- .fl-builder-assistant-visible .fl-builder-ui-is-pinned-right .fl-builder--content-library-panel {
293
- right: 58px; }
294
 
 
266
  letter-spacing: 2px;
267
  font-weight: normal; }
268
 
269
+ .fl-builder-workspace-panel {
270
  position: fixed;
271
+ top: 45px;
 
272
  right: 0;
273
  bottom: 0;
274
+ width: 360px;
275
+ pointer-events: auto;
276
  z-index: 999999;
277
+ display: flex;
278
+ flex-direction: column;
279
+ background: var(--fluid-background);
280
+ overflow: auto; }
281
+
282
+ /* !Assistant Styles */
283
+ .fl-asst-pinned-right {
284
+ margin-right: 60px; }
285
+ .fl-asst-pinned-right .fl-builder-ui-is-pinned-right .fl-builder--content-library-panel {
286
+ right: 60px; }
287
+
288
+ .fl-asst-pinned-left {
289
+ margin-left: 60px; }
290
+ .fl-asst-pinned-left .fl-builder-ui-is-pinned-left .fl-builder--content-library-panel {
291
+ left: 60px; }
292
 
 
 
 
 
293
 
294
+ /*# sourceMappingURL=builder.bundle.css.map*/
css/build/builder.bundle.min.css CHANGED
@@ -1 +1 @@
1
- .fl-notifications-panel{position:fixed;top:45px;left:0;bottom:0;width:380px;background:#fff;color:var(--fluid-color);border-right:1px solid #d5dadd;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important;font-size:14px;z-index:999999;display:flex;flex-direction:column}.fl-notifications-panel .fl-nanoscroller .fl-nanoscroller-content{padding:0 15px}.fl-notifications-panel .fl-panel-title{flex:0 0 auto;padding:15px 30px;font-size:18px}.fl-notifications-panel .fl-builder-ui-post{flex:0 0 auto;display:flex;display:block;padding:15px;margin:15px 0;border-radius:4px;text-decoration:none;color:inherit}.fl-notifications-panel .fl-builder-ui-post:first-child{margin-top:0}.fl-notifications-panel .fl-builder-ui-post:hover{text-decoration:none;background:#fff;color:#000}.fl-notifications-panel .fl-builder-ui-post .fl-builder-ui-post-title{font-size:17px;line-height:1.4;margin-bottom:10px;color:#0089b4}.fl-notifications-panel .fl-builder-ui-post .fl-builder-ui-post-date{text-transform:uppercase;font-size:12px;font-weight:700;margin-bottom:10px}.fl-notifications-panel .fl-panel-loading-message{padding:0 15px;align-items:center;justify-content:center;display:flex;height:100%}.fl-builder-bar-spacer{flex:1 1 auto}#bell-active-dot{visibility:hidden}.fl-builder-has-new-notifications #bell-active-dot{visibility:visible}.fl-editable{position:relative;-webkit-user-select:text}.fl-editable .mce-content-body,.fl-editable .mce-content-body *{cursor:text}.fl-editable .mce-content-body:not(.mce-edit-focus):empty{height:0}.fl-editable .mce-content-body:not(.mce-edit-focus) [data-mce-selected]{background:none}.fl-editable .mce-content-body,.fl-editable .mce-content-body:focus,.fl-editable .mce-edit-focus{outline:none!important}.fl-editable-focused.fl-module{cursor:pointer}.fl-editable-focused .fl-block-overlay{pointer-events:none}.fl-editable-focused .fl-block-col-resize,.fl-editable-focused .fl-block-overlay-actions{pointer-events:auto}.fl-inline-editor{border:2px solid #00a0d2;border-radius:4px;display:none;overflow:hidden;pointer-events:none;position:absolute;top:-32px;right:4px;bottom:4px;left:4px;z-index:100008}.fl-inline-editor.fl-inline-editor-no-toolbar{top:4px}.fl-inline-editor.fl-inline-editor-no-toolbar>.mce-tinymce{display:none}.fl-inline-editor>.mce-tinymce.fl-inline-editor-active-toolbar{display:block!important}.fl-inline-editor>.mce-tinymce{background:transparent;border:none!important;overflow:hidden;pointer-events:auto;position:absolute;top:-2px!important;right:-2px!important;left:-2px!important;width:auto!important}.fl-inline-editor .mce-container-body,.fl-inline-editor .mce-tinymce,.fl-inline-editor .mce-toolbar-grp{height:32px!important;width:auto!important}.fl-inline-editor .mce-container-body{padding:0}.fl-inline-editor .mce-toolbar-grp{background:#00a0d2;border:none;border-top-left-radius:4px;border-bottom-right-radius:4px;width:auto!important;display:inline-block}.fl-inline-editor .mce-tinymce-inline .mce-flow-layout{white-space:normal}.fl-inline-editor .mce-btn-group{padding:0 3px}.fl-inline-editor .mce-btn-group:not(:first-child){border-color:hsla(0,0%,100%,.3)}.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn.mce-active,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn.mce-active:hover,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn:active,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn:focus,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn:hover{background:hsla(0,0%,100%,.2);border-color:hsla(0,0%,100%,.4);box-shadow:none}.fl-inline-editor .mce-toolbar .mce-btn button{padding:1px;background:transparent;border:none}.fl-inline-editor .mce-toolbar .mce-btn .mce-ico{color:hsla(0,0%,100%,.8)!important}.fl-inline-editor .mce-toolbar .mce-btn:hover .mce-ico{color:#fff!important}.fl-inline-editor .mce-panel .mce-btn i.mce-caret{border-top-color:hsla(0,0%,100%,.8)!important;border-bottom-color:hsla(0,0%,100%,.8)!important}.fl-inline-editor .mce-panel .mce-btn:hover i.mce-caret{border-top-color:#fff!important}.fl-heading-text.mce-content-body{display:block}.mce-tooltip{display:none!important}svg.fl-symbol{flex:0 0 auto}svg#fl-symbol-container{display:none}.fluid .fl-ui-panel-area{position:fixed;top:0;left:0;width:100vw;height:100vh;background:transparent;display:flex;justify-content:center;align-items:center;z-index:999999}.fluid .fl-ui-panel{position:relative;flex:0 0 auto;display:flex;flex-direction:column;background:#fff;color:#000;min-height:40px;min-width:40px;border-radius:15px;box-shadow:0 0 0 3px rgba(0,0,0,.05),0 12px 24px rgba(0,0,0,.15)}.fluid .fl-ui-panel .fl-ui-panel-topbar{box-sizing:content-box;display:flex;flex-direction:row;min-height:40px;padding:10px}.fluid .fl-ui-panel .fl-ui-panel-topbar .fl-ui-panel-title{flex:1 0 auto;display:flex;flex-direction:row;align-items:center;font-size:16px;font-weight:700;padding-left:10px}.fluid .fl-ui-panel .fl-ui-panel-topbar .fl-ui-panel-trailing-actions{flex:0 0 auto;display:flex;flex-direction:row}.fluid .fl-ui-panel .fl-ui-panel-topbar .fl-ui-button{background:transparent;border:none;top:0;box-shadow:none;outline:none;color:inherit;padding:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:36px}.fluid .fl-ui-panel .fl-ui-panel-content{flex:1 1 auto;overflow:auto;padding-bottom:20px}body.fl-builder-ui-skin--dark .fl-ui-root .fl-ui-panel{background:#23282d;color:#fff}.fluid .fl-ui-help{background:rgba(0,0,0,.3)}.fluid .fl-ui-help .fl-ui-panel{max-height:calc(100vh - 15px);max-width:calc(100vw - 15px);min-width:260px;min-height:100px}.fluid ul.fl-ui-shortcut-list{margin:0;padding:0;list-style:none}.fluid ul.fl-ui-shortcut-list>li{padding:2px 20px;display:flex;flex-direction:row;align-items:center;min-height:40px;margin:0;font-size:14px}.fluid ul.fl-ui-shortcut-list>li:nth-child(2n){background:rgba(1,112,147,.03)}.fluid ul.fl-ui-shortcut-list .fl-ui-shortcut-item-keycode{margin-left:auto;padding-left:20px;text-transform:uppercase;letter-spacing:2px;font-weight:400}.fl-builder-workspace{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999999;pointer-events:none}.fl-builder-workspace .fl-builder-workspace-panel{position:absolute;top:45px;right:0;bottom:0;width:360px;pointer-events:auto;display:flex;flex-direction:column;background:var(--fluid-background);border-left:2px solid var(--fluid-line-color);overflow:auto}.fl-builder-assistant-visible{margin-right:58px}.fl-builder-assistant-visible .fl-builder-ui-is-pinned-right .fl-builder--content-library-panel{right:58px}
1
+ .fl-notifications-panel{position:fixed;top:45px;left:0;bottom:0;width:380px;background:#fff;color:var(--fluid-color);border-right:1px solid #d5dadd;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif!important;font-size:14px;z-index:999999;display:flex;flex-direction:column}.fl-notifications-panel .fl-nanoscroller .fl-nanoscroller-content{padding:0 15px}.fl-notifications-panel .fl-panel-title{flex:0 0 auto;padding:15px 30px;font-size:18px}.fl-notifications-panel .fl-builder-ui-post{flex:0 0 auto;display:flex;display:block;padding:15px;margin:15px 0;border-radius:4px;text-decoration:none;color:inherit}.fl-notifications-panel .fl-builder-ui-post:first-child{margin-top:0}.fl-notifications-panel .fl-builder-ui-post:hover{text-decoration:none;background:#fff;color:#000}.fl-notifications-panel .fl-builder-ui-post .fl-builder-ui-post-title{font-size:17px;line-height:1.4;margin-bottom:10px;color:#0089b4}.fl-notifications-panel .fl-builder-ui-post .fl-builder-ui-post-date{text-transform:uppercase;font-size:12px;font-weight:700;margin-bottom:10px}.fl-notifications-panel .fl-panel-loading-message{padding:0 15px;align-items:center;justify-content:center;display:flex;height:100%}.fl-builder-bar-spacer{flex:1 1 auto}#bell-active-dot{visibility:hidden}.fl-builder-has-new-notifications #bell-active-dot{visibility:visible}.fl-editable{position:relative;-webkit-user-select:text}.fl-editable .mce-content-body,.fl-editable .mce-content-body *{cursor:text}.fl-editable .mce-content-body:not(.mce-edit-focus):empty{height:0}.fl-editable .mce-content-body:not(.mce-edit-focus) [data-mce-selected]{background:none}.fl-editable .mce-content-body,.fl-editable .mce-content-body:focus,.fl-editable .mce-edit-focus{outline:none!important}.fl-editable-focused.fl-module{cursor:pointer}.fl-editable-focused .fl-block-overlay{pointer-events:none}.fl-editable-focused .fl-block-col-resize,.fl-editable-focused .fl-block-overlay-actions{pointer-events:auto}.fl-inline-editor{border:2px solid #00a0d2;border-radius:4px;display:none;overflow:hidden;pointer-events:none;position:absolute;top:-32px;right:4px;bottom:4px;left:4px;z-index:100008}.fl-inline-editor.fl-inline-editor-no-toolbar{top:4px}.fl-inline-editor.fl-inline-editor-no-toolbar>.mce-tinymce{display:none}.fl-inline-editor>.mce-tinymce.fl-inline-editor-active-toolbar{display:block!important}.fl-inline-editor>.mce-tinymce{background:transparent;border:none!important;overflow:hidden;pointer-events:auto;position:absolute;top:-2px!important;right:-2px!important;left:-2px!important;width:auto!important}.fl-inline-editor .mce-container-body,.fl-inline-editor .mce-tinymce,.fl-inline-editor .mce-toolbar-grp{height:32px!important;width:auto!important}.fl-inline-editor .mce-container-body{padding:0}.fl-inline-editor .mce-toolbar-grp{background:#00a0d2;border:none;border-top-left-radius:4px;border-bottom-right-radius:4px;width:auto!important;display:inline-block}.fl-inline-editor .mce-tinymce-inline .mce-flow-layout{white-space:normal}.fl-inline-editor .mce-btn-group{padding:0 3px}.fl-inline-editor .mce-btn-group:not(:first-child){border-color:hsla(0,0%,100%,.3)}.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn.mce-active,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn.mce-active:hover,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn:active,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn:focus,.fl-inline-editor .mce-toolbar .mce-btn-group .mce-btn:hover{background:hsla(0,0%,100%,.2);border-color:hsla(0,0%,100%,.4);box-shadow:none}.fl-inline-editor .mce-toolbar .mce-btn button{padding:1px;background:transparent;border:none}.fl-inline-editor .mce-toolbar .mce-btn .mce-ico{color:hsla(0,0%,100%,.8)!important}.fl-inline-editor .mce-toolbar .mce-btn:hover .mce-ico{color:#fff!important}.fl-inline-editor .mce-panel .mce-btn i.mce-caret{border-top-color:hsla(0,0%,100%,.8)!important;border-bottom-color:hsla(0,0%,100%,.8)!important}.fl-inline-editor .mce-panel .mce-btn:hover i.mce-caret{border-top-color:#fff!important}.fl-heading-text.mce-content-body{display:block}.mce-tooltip{display:none!important}svg.fl-symbol{flex:0 0 auto}svg#fl-symbol-container{display:none}.fluid .fl-ui-panel-area{position:fixed;top:0;left:0;width:100vw;height:100vh;background:transparent;display:flex;justify-content:center;align-items:center;z-index:999999}.fluid .fl-ui-panel{position:relative;flex:0 0 auto;display:flex;flex-direction:column;background:#fff;color:#000;min-height:40px;min-width:40px;border-radius:15px;box-shadow:0 0 0 3px rgba(0,0,0,.05),0 12px 24px rgba(0,0,0,.15)}.fluid .fl-ui-panel .fl-ui-panel-topbar{box-sizing:content-box;display:flex;flex-direction:row;min-height:40px;padding:10px}.fluid .fl-ui-panel .fl-ui-panel-topbar .fl-ui-panel-title{flex:1 0 auto;display:flex;flex-direction:row;align-items:center;font-size:16px;font-weight:700;padding-left:10px}.fluid .fl-ui-panel .fl-ui-panel-topbar .fl-ui-panel-trailing-actions{flex:0 0 auto;display:flex;flex-direction:row}.fluid .fl-ui-panel .fl-ui-panel-topbar .fl-ui-button{background:transparent;border:none;top:0;box-shadow:none;outline:none;color:inherit;padding:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:36px}.fluid .fl-ui-panel .fl-ui-panel-content{flex:1 1 auto;overflow:auto;padding-bottom:20px}body.fl-builder-ui-skin--dark .fl-ui-root .fl-ui-panel{background:#23282d;color:#fff}.fluid .fl-ui-help{background:rgba(0,0,0,.3)}.fluid .fl-ui-help .fl-ui-panel{max-height:calc(100vh - 15px);max-width:calc(100vw - 15px);min-width:260px;min-height:100px}.fluid ul.fl-ui-shortcut-list{margin:0;padding:0;list-style:none}.fluid ul.fl-ui-shortcut-list>li{padding:2px 20px;display:flex;flex-direction:row;align-items:center;min-height:40px;margin:0;font-size:14px}.fluid ul.fl-ui-shortcut-list>li:nth-child(2n){background:rgba(1,112,147,.03)}.fluid ul.fl-ui-shortcut-list .fl-ui-shortcut-item-keycode{margin-left:auto;padding-left:20px;text-transform:uppercase;letter-spacing:2px;font-weight:400}.fl-builder-workspace-panel{position:fixed;top:45px;right:0;bottom:0;width:360px;pointer-events:auto;z-index:999999;display:flex;flex-direction:column;background:var(--fluid-background);overflow:auto}.fl-asst-pinned-right{margin-right:60px}.fl-asst-pinned-right .fl-builder-ui-is-pinned-right .fl-builder--content-library-panel{right:60px}.fl-asst-pinned-left{margin-left:60px}.fl-asst-pinned-left .fl-builder-ui-is-pinned-left .fl-builder--content-library-panel{left:60px}
css/build/fluid.bundle.css DELETED
@@ -1,320 +0,0 @@
1
- .fl.uid .fluid-button {
2
- box-sizing: border-box;
3
- flex: 0 0 auto;
4
- display: inline-flex;
5
- flex-direction: row;
6
- justify-content: center;
7
- align-items: center;
8
- background: var(--fluid-box-background);
9
- border-radius: var(--fluid-radius);
10
- box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0);
11
- min-height: var(--fluid-target-size);
12
- padding: 0 var(--fluid-med-space);
13
- text-decoration: none;
14
- font-weight: normal; }
15
-
16
- .fl.uid .fluid-button:hover, .fl.uid .fluid-button.is-hovering {
17
- text-decoration: none;
18
- background: var(--fluid-box-hover-background);
19
- color: var(--fluid-box-color); }
20
-
21
- .fl.uid .fluid-button:focus, .fl.uid .fluid-button.is-focused {
22
- top: 0;
23
- z-index: 2;
24
- outline: none;
25
- text-decoration: none;
26
- box-shadow: inset 0px 0px 0px 2px var(--fluid-background), 0px 0px 0px 2px var(--fluid-accent); }
27
-
28
- .fl.uid .fluid-button.is-selected {
29
- background: var(--fluid-primary-background);
30
- color: var(--fluid-primary-color); }
31
-
32
- .fl.uid .fluid-button.fluid-appearance-elevator {
33
- height: 45px;
34
- width: 45px;
35
- border-radius: 50%; }
36
-
37
- .fl.uid .fluid-button.fluid-appearance-transparent {
38
- background: transparent;
39
- box-shadow: none;
40
- border: none;
41
- outline: none; }
42
-
43
- .fl.uid .fluid-button.fluid-appearance-transparent:hover, .fl.uid .fluid-button.fluid-appearance-transparent.is-hovering {
44
- background: var(--fluid-box-hover-background); }
45
-
46
- .fl.uid .fluid-button.fluid-appearance-transparent:focus, .fl.uid .fluid-button.fluid-appearance-transparent.is-focused {
47
- box-shadow: inset 0px 0px 0px 2px var(--fluid-background), 0px 0px 0px 2px var(--fluid-accent); }
48
-
49
- /* outside of .fl-asst on purpose */
50
- .fl-asst-tooltip {
51
- font-family: sans-serif; }
52
-
53
- .fl.uid .fluid-scroller {
54
- box-sizing: border-box;
55
- flex: 1 1 auto;
56
- display: flex;
57
- flex-direction: column;
58
- min-height: 0;
59
- max-height: 100%;
60
- overflow-y: auto;
61
- overflow-x: hidden;
62
- -webkit-overflow-scrolling: touch; }
63
-
64
- .fl.uid .fluid-toolbar {
65
- flex: 0 0 auto;
66
- display: flex;
67
- flex-direction: row;
68
- justify-content: flex-start;
69
- align-items: stretch;
70
- padding: 5px; }
71
-
72
- .fl.uid .fluid-pad {
73
- box-sizing: border-box;
74
- flex: 1 1 auto;
75
- display: flex;
76
- flex-direction: column;
77
- min-height: 0;
78
- max-height: 100%;
79
- padding: var(--fluid-lg-space); }
80
-
81
- .fl.uid .fluid-pad-x {
82
- padding-left: var(--fluid-lg-space);
83
- padding-right: var(--fluid-lg-space); }
84
-
85
- .fl.uid .fluid-pad-y {
86
- padding-top: var(--fluid-lg-space);
87
- padding-bottom: var(--fluid-lg-space); }
88
-
89
- .fl.uid .fluid-page {
90
- --fluid-top-inset: 0px;
91
- position: relative;
92
- flex: 1 1 auto;
93
- display: flex;
94
- flex-direction: column;
95
- background-color: var(--fluid-background);
96
- color: var(--fluid-color);
97
- max-height: 100%;
98
- min-height: 0; }
99
-
100
- .fl.uid .fluid-page .fluid-sticky-element {
101
- position: -webkit-sticky;
102
- position: -moz-sticky;
103
- position: -ms-sticky;
104
- position: -o-sticky;
105
- position: sticky;
106
- top: var(--fluid-top-inset);
107
- background: var(--fluid-background);
108
- z-index: 9; }
109
-
110
- .fl.uid .fluid-page .fluid-page-top-toolbar {
111
- min-height: 60px; }
112
-
113
- .fl.uid .fluid-page .fluid-page-actions {
114
- margin-left: auto;
115
- display: flex;
116
- flex-direction: row;
117
- align-items: center; }
118
-
119
- .fl.uid .fluid-page .fluid-page-toolbar-content {
120
- position: static;
121
- padding: 0 var(--fluid-med-space);
122
- padding-left: 2px;
123
- flex: 1 0 auto;
124
- display: flex;
125
- flex-direction: row;
126
- justify-content: flex-start;
127
- align-items: center;
128
- font-weight: 600; }
129
-
130
- .fl.uid .fluid-page .fluid-page-title-icon {
131
- flex: 0 0 auto;
132
- width: 50px;
133
- height: 50px;
134
- display: inline-flex;
135
- flex-direction: row;
136
- justify-content: center;
137
- align-items: center; }
138
-
139
- .fl.uid .fluid-page .fluid-page-headline {
140
- font-size: 24px;
141
- font-weight: 600; }
142
-
143
- .fl.uid .fluid-page .fluid-page-content {
144
- box-sizing: border-box;
145
- flex: 1 0 auto;
146
- display: flex;
147
- flex-direction: column;
148
- background: var(--fluid-background);
149
- z-index: 1; }
150
-
151
- .fl.uid .fluid-page-footer {
152
- position: absolute;
153
- bottom: 0;
154
- left: 0;
155
- right: 0;
156
- box-sizing: border-box;
157
- min-height: 55px;
158
- flex: 0 0 auto;
159
- display: flex;
160
- flex-direction: row;
161
- align-items: stretch;
162
- justify-content: flex-start;
163
- background: var(--fluid-background);
164
- border-top: 2px solid var(--fluid-box-background);
165
- z-index: 9; }
166
-
167
- .fl.uid .fluid-page-footer > .fluid-button {
168
- margin-right: var(--fluid-sm-space); }
169
-
170
- .fl.uid .fluid-page-footer > .fluid-button:last-child {
171
- margin-right: 0px; }
172
-
173
- .fl.uid .fluid-page-overlay {
174
- position: absolute;
175
- top: 0;
176
- left: 0;
177
- bottom: 0;
178
- right: 0;
179
- pointer-events: none; }
180
-
181
- .fluid .fluid-box {
182
- box-sizing: border-box;
183
- display: flex;
184
- flex-direction: column; }
185
-
186
- .fluid .fluid-box.fluid-box-outset {
187
- margin-left: calc( 0px - var(--fluid-lg-space));
188
- margin-right: calc( 0px - var(--fluid-lg-space)); }
189
-
190
- .fluid .fluid-box.fluid-row {
191
- --fluid-gap: 0px;
192
- flex-direction: row; }
193
-
194
- .fluid .fluid-box.fluid-row > * {
195
- margin-right: var(--fluid-gap); }
196
-
197
- .fluid .fluid-box.fluid-row > *:last-child {
198
- margin-right: 0; }
199
-
200
- .fluid .fluid-headline {
201
- font-size: 24px;
202
- font-weight: 600;
203
- word-break: break-word; }
204
-
205
- :root {
206
- --fluid-hue: 210;
207
- --fluid-background: hsl( var(--fluid-hue), 40%, 100% );
208
- --fluid-color: hsl( var(--fluid-hue), 40%, 0% );
209
- --fluid-dark-background: hsl( var(--fluid-hue), 13%, 16%);
210
- --fluid-dark-color: hsl( var(--fluid-hue), 15%, 90%);
211
- --fluid-box-background: hsl( var(--fluid-hue), 40%, 96%);
212
- --fluid-box-color: hsl( var(--fluid-hue), 40%, 0% );
213
- --fluid-box-hover-background: hsl( var(--fluid-hue), 37%, 92%);
214
- --fluid-primary-background: #EFF8FF;
215
- --fluid-primary-color: #006AD4;
216
- --fluid-primary-hover-background: #D8ECFF;
217
- --fluid-alert-background: #FEF4EA;
218
- --fluid-alert-color: #A95700;
219
- --fluid-alert-hover-background: #FCE3CA;
220
- --fluid-destructive-background: #FEF3F1;
221
- --fluid-destructive-color: #BC0A00;
222
- --fluid-destructive-hover-background: #F9DAD4;
223
- --fluid-accent: hsl( var(--fluid-hue), 100%, 43%);
224
- --fluid-line-color: #F1F5F9;
225
- --fluid-dark-line-color: black;
226
- --fluid-sm-space: 5px;
227
- --fluid-med-space: 10px;
228
- --fluid-lg-space: 20px;
229
- --fluid-font-size: 13px;
230
- --fluid-radius: 3px;
231
- --fluid-target-size: 36px;
232
- --fluid-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; }
233
-
234
- .fl.uid {
235
- color: var(--fluid-color);
236
- font-size: var(--fluid-font-size);
237
- font-weight: normal;
238
- line-height: 1.3; }
239
-
240
- .fl.uid .fluid-status-primary {
241
- --fluid-box-background: var(--fluid-primary-background);
242
- --fluid-box-color: var(--fluid-primary-color);
243
- --fluid-box-hover-background: var(--fluid-primary-hover-background);
244
- color: var(--fluid-box-color); }
245
-
246
- .fl.uid .fluid-status-alert {
247
- --fluid-box-background: var(--fluid-alert-background);
248
- --fluid-box-color: var(--fluid-alert-color);
249
- --fluid-box-hover-background: var(--fluid-alert-hover-background);
250
- --fluid-accent: var(--fluid-alert-color);
251
- color: var(--fluid-box-color); }
252
-
253
- .fl.uid .fluid-status-destructive {
254
- --fluid-box-background: var(--fluid-destructive-background);
255
- --fluid-box-color: var(--fluid-destructive-color);
256
- --fluid-box-hover-background: var(--fluid-destructive-hover-background);
257
- --fluid-accent: var(--fluid-destructive-color);
258
- color: var(--fluid-box-color); }
259
-
260
- .fl.uid.fluid-color-scheme-dark {
261
- --fluid-background: var(--fluid-dark-background);
262
- --fluid-color: var(--fluid-dark-color);
263
- --fluid-accent: #ffffff;
264
- --fluid-line-color: var(--fluid-dark-line-color);
265
- --fluid-box-background: hsl( var(--fluid-hue), 17%, 5%);
266
- --fluid-box-color: hsl( var(--fluid-hue), 11%, 65%);
267
- --fluid-box-hover-background: hsl( var(--fluid-hue), 17%, 10%);
268
- --fluid-primary-background: hsl(206, 100%, 9%);
269
- --fluid-primary-color: hsl(210, 100%, 80%);
270
- --fluid-primary-hover-background: hsl(206, 80%, 14%);
271
- --fluid-alert-background: hsl(31, 55%, 10%);
272
- --fluid-alert-color: hsl(31, 100%, 72%);
273
- --fluid-alert-hover-background: hsl(31, 45%, 14%);
274
- --fluid-destructive-background: hsl(0, 100%, 7%);
275
- --fluid-destructive-color: hsl(3, 100%, 67%);
276
- --fluid-destructive-hover-background: hsl(0, 80%, 12%); }
277
-
278
- .fl.uid .fluid-section {
279
- display: flex;
280
- flex-direction: column;
281
- flex: 0 0 auto;
282
- margin: 0 calc( 0px - var(--fluid-lg-space)); }
283
-
284
- .fl.uid .fluid-section .fluid-section-title {
285
- flex: 0 0 auto;
286
- display: flex;
287
- flex-direction: row;
288
- align-items: flex-end;
289
- padding: 9px var(--fluid-lg-space) 0;
290
- text-transform: uppercase;
291
- border-bottom: 2px solid var(--fluid-line-color);
292
- min-height: var(--fluid-target-size); }
293
-
294
- .fl.uid .fluid-section .fluid-section-title .fluid-section-title-text {
295
- display: inline-flex;
296
- max-width: 70%;
297
- box-shadow: 0px 2px 0px 0px currentColor;
298
- align-items: flex-end;
299
- padding: 0 0 5px;
300
- font-weight: 500; }
301
-
302
- .fl.uid .fluid-section .fluid-section-description {
303
- flex: 0 0 auto;
304
- display: flex;
305
- flex-direction: column;
306
- padding: var(--fluid-lg-space);
307
- padding-bottom: 0;
308
- font-style: italic; }
309
-
310
- .fl.uid .fluid-section .fluid-section-description > :first-child {
311
- margin-top: 0; }
312
-
313
- .fl.uid .fluid-section .fluid-section-description > :last-child {
314
- margin-bottom: 0; }
315
-
316
- .fl.uid .fluid-section .fluid-section-content {
317
- flex: 1 0 auto;
318
- display: grid;
319
- grid-row-gap: var(--fluid-sm-space); }
320
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
css/build/fluid.bundle.min.css DELETED
@@ -1 +0,0 @@
1
- .fl.uid .fluid-button{box-sizing:border-box;flex:0 0 auto;display:inline-flex;flex-direction:row;justify-content:center;align-items:center;background:var(--fluid-box-background);border-radius:var(--fluid-radius);box-shadow:0 0 0 0 transparent;min-height:var(--fluid-target-size);padding:0 var(--fluid-med-space);text-decoration:none;font-weight:400}.fl.uid .fluid-button.is-hovering,.fl.uid .fluid-button:hover{text-decoration:none;background:var(--fluid-box-hover-background);color:var(--fluid-box-color)}.fl.uid .fluid-button.is-focused,.fl.uid .fluid-button:focus{top:0;z-index:2;outline:none;text-decoration:none;box-shadow:inset 0 0 0 2px var(--fluid-background),0 0 0 2px var(--fluid-accent)}.fl.uid .fluid-button.is-selected{background:var(--fluid-primary-background);color:var(--fluid-primary-color)}.fl.uid .fluid-button.fluid-appearance-elevator{height:45px;width:45px;border-radius:50%}.fl.uid .fluid-button.fluid-appearance-transparent{background:transparent;box-shadow:none;border:none;outline:none}.fl.uid .fluid-button.fluid-appearance-transparent.is-hovering,.fl.uid .fluid-button.fluid-appearance-transparent:hover{background:var(--fluid-box-hover-background)}.fl.uid .fluid-button.fluid-appearance-transparent.is-focused,.fl.uid .fluid-button.fluid-appearance-transparent:focus{box-shadow:inset 0 0 0 2px var(--fluid-background),0 0 0 2px var(--fluid-accent)}.fl-asst-tooltip{font-family:sans-serif}.fl.uid .fluid-scroller{box-sizing:border-box;flex:1 1 auto;display:flex;flex-direction:column;min-height:0;max-height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.fl.uid .fluid-toolbar{flex:0 0 auto;display:flex;flex-direction:row;justify-content:flex-start;align-items:stretch;padding:5px}.fl.uid .fluid-pad{box-sizing:border-box;flex:1 1 auto;display:flex;flex-direction:column;min-height:0;max-height:100%;padding:var(--fluid-lg-space)}.fl.uid .fluid-pad-x{padding-left:var(--fluid-lg-space);padding-right:var(--fluid-lg-space)}.fl.uid .fluid-pad-y{padding-top:var(--fluid-lg-space);padding-bottom:var(--fluid-lg-space)}.fl.uid .fluid-page{--fluid-top-inset:0px;position:relative;flex:1 1 auto;display:flex;flex-direction:column;background-color:var(--fluid-background);color:var(--fluid-color);max-height:100%;min-height:0}.fl.uid .fluid-page .fluid-sticky-element{position:-webkit-sticky;position:-moz-sticky;position:-ms-sticky;position:-o-sticky;position:sticky;top:var(--fluid-top-inset);background:var(--fluid-background);z-index:9}.fl.uid .fluid-page .fluid-page-top-toolbar{min-height:60px}.fl.uid .fluid-page .fluid-page-actions{margin-left:auto;display:flex;flex-direction:row;align-items:center}.fl.uid .fluid-page .fluid-page-toolbar-content{position:static;padding:0 var(--fluid-med-space);padding-left:2px;flex:1 0 auto;display:flex;flex-direction:row;justify-content:flex-start;align-items:center;font-weight:600}.fl.uid .fluid-page .fluid-page-title-icon{flex:0 0 auto;width:50px;height:50px;display:inline-flex;flex-direction:row;justify-content:center;align-items:center}.fl.uid .fluid-page .fluid-page-headline{font-size:24px;font-weight:600}.fl.uid .fluid-page .fluid-page-content{flex:1 0 auto;flex-direction:column;z-index:1}.fl.uid .fluid-page-footer,.fl.uid .fluid-page .fluid-page-content{box-sizing:border-box;display:flex;background:var(--fluid-background)}.fl.uid .fluid-page-footer{position:absolute;bottom:0;left:0;right:0;min-height:55px;flex:0 0 auto;flex-direction:row;align-items:stretch;justify-content:flex-start;border-top:2px solid var(--fluid-box-background);z-index:9}.fl.uid .fluid-page-footer>.fluid-button{margin-right:var(--fluid-sm-space)}.fl.uid .fluid-page-footer>.fluid-button:last-child{margin-right:0}.fl.uid .fluid-page-overlay{position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none}.fluid .fluid-box{box-sizing:border-box;display:flex;flex-direction:column}.fluid .fluid-box.fluid-box-outset{margin-left:calc(0px - var(--fluid-lg-space));margin-right:calc(0px - var(--fluid-lg-space))}.fluid .fluid-box.fluid-row{--fluid-gap:0px;flex-direction:row}.fluid .fluid-box.fluid-row>*{margin-right:var(--fluid-gap)}.fluid .fluid-box.fluid-row>:last-child{margin-right:0}.fluid .fluid-headline{font-size:24px;font-weight:600;word-break:break-word}:root{--fluid-hue:210;--fluid-background:hsl(var(--fluid-hue),40%,100%);--fluid-color:hsl(var(--fluid-hue),40%,0%);--fluid-dark-background:hsl(var(--fluid-hue),13%,16%);--fluid-dark-color:hsl(var(--fluid-hue),15%,90%);--fluid-box-background:hsl(var(--fluid-hue),40%,96%);--fluid-box-color:hsl(var(--fluid-hue),40%,0%);--fluid-box-hover-background:hsl(var(--fluid-hue),37%,92%);--fluid-primary-background:#eff8ff;--fluid-primary-color:#006ad4;--fluid-primary-hover-background:#d8ecff;--fluid-alert-background:#fef4ea;--fluid-alert-color:#a95700;--fluid-alert-hover-background:#fce3ca;--fluid-destructive-background:#fef3f1;--fluid-destructive-color:#bc0a00;--fluid-destructive-hover-background:#f9dad4;--fluid-accent:hsl(var(--fluid-hue),100%,43%);--fluid-line-color:#f1f5f9;--fluid-dark-line-color:#000;--fluid-sm-space:5px;--fluid-med-space:10px;--fluid-lg-space:20px;--fluid-font-size:13px;--fluid-radius:3px;--fluid-target-size:36px;--fluid-font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.fl.uid{color:var(--fluid-color);font-size:var(--fluid-font-size);font-weight:400;line-height:1.3}.fl.uid .fluid-status-primary{--fluid-box-background:var(--fluid-primary-background);--fluid-box-color:var(--fluid-primary-color);--fluid-box-hover-background:var(--fluid-primary-hover-background);color:var(--fluid-box-color)}.fl.uid .fluid-status-alert{--fluid-box-background:var(--fluid-alert-background);--fluid-box-color:var(--fluid-alert-color);--fluid-box-hover-background:var(--fluid-alert-hover-background);--fluid-accent:var(--fluid-alert-color);color:var(--fluid-box-color)}.fl.uid .fluid-status-destructive{--fluid-box-background:var(--fluid-destructive-background);--fluid-box-color:var(--fluid-destructive-color);--fluid-box-hover-background:var(--fluid-destructive-hover-background);--fluid-accent:var(--fluid-destructive-color);color:var(--fluid-box-color)}.fl.uid.fluid-color-scheme-dark{--fluid-background:var(--fluid-dark-background);--fluid-color:var(--fluid-dark-color);--fluid-accent:#fff;--fluid-line-color:var(--fluid-dark-line-color);--fluid-box-background:hsl(var(--fluid-hue),17%,5%);--fluid-box-color:hsl(var(--fluid-hue),11%,65%);--fluid-box-hover-background:hsl(var(--fluid-hue),17%,10%);--fluid-primary-background:#001a2e;--fluid-primary-color:#9cf;--fluid-primary-hover-background:#072840;--fluid-alert-background:#281a0b;--fluid-alert-color:#ffba70;--fluid-alert-hover-background:#342414;--fluid-destructive-background:#240000;--fluid-destructive-color:#ff5f57;--fluid-destructive-hover-background:#370606}.fl.uid .fluid-section{display:flex;flex-direction:column;flex:0 0 auto;margin:0 calc(0px - var(--fluid-lg-space))}.fl.uid .fluid-section .fluid-section-title{flex:0 0 auto;display:flex;flex-direction:row;align-items:flex-end;padding:9px var(--fluid-lg-space) 0;text-transform:uppercase;border-bottom:2px solid var(--fluid-line-color);min-height:var(--fluid-target-size)}.fl.uid .fluid-section .fluid-section-title .fluid-section-title-text{display:inline-flex;max-width:70%;box-shadow:0 2px 0 0 currentColor;align-items:flex-end;padding:0 0 5px;font-weight:500}.fl.uid .fluid-section .fluid-section-description{flex:0 0 auto;display:flex;flex-direction:column;padding:var(--fluid-lg-space);padding-bottom:0;font-style:italic}.fl.uid .fluid-section .fluid-section-description>:first-child{margin-top:0}.fl.uid .fluid-section .fluid-section-description>:last-child{margin-bottom:0}.fl.uid .fluid-section .fluid-section-content{flex:1 0 auto;display:grid;grid-row-gap:var(--fluid-sm-space)}
 
css/build/vendor-bb-fluid.bundle.css ADDED
@@ -0,0 +1,1613 @@