Browse Source

Add: custom field and theme options

Mozahidur Rahman 1 year ago
parent
commit
61fa5bde81
100 changed files with 42362 additions and 86 deletions
  1. 1 0
      _CODES.php
  2. 86 86
      footer.php
  3. 11 0
      functions.php
  4. 435 0
      inc/acf-json/group_642a9b2379fbe.json
  5. 265 0
      inc/acf-json/group_642aa09ae85e7.json
  6. 5 0
      inc/acf-json/index.php
  7. 86 0
      inc/acf-settings.php
  8. 727 0
      inc/acf/acf.php
  9. 321 0
      inc/acf/assets/build/css/acf-dark.css
  10. 0 0
      inc/acf/assets/build/css/acf-dark.css.map
  11. 0 0
      inc/acf/assets/build/css/acf-dark.min.css
  12. 2489 0
      inc/acf/assets/build/css/acf-field-group.css
  13. 0 0
      inc/acf/assets/build/css/acf-field-group.css.map
  14. 0 0
      inc/acf/assets/build/css/acf-field-group.min.css
  15. 4536 0
      inc/acf/assets/build/css/acf-global.css
  16. 0 0
      inc/acf/assets/build/css/acf-global.css.map
  17. 0 0
      inc/acf/assets/build/css/acf-global.min.css
  18. 3221 0
      inc/acf/assets/build/css/acf-input.css
  19. 0 0
      inc/acf/assets/build/css/acf-input.css.map
  20. 0 0
      inc/acf/assets/build/css/acf-input.min.css
  21. 144 0
      inc/acf/assets/build/css/pro/acf-pro-field-group.css
  22. 0 0
      inc/acf/assets/build/css/pro/acf-pro-field-group.css.map
  23. 0 0
      inc/acf/assets/build/css/pro/acf-pro-field-group.min.css
  24. 732 0
      inc/acf/assets/build/css/pro/acf-pro-input.css
  25. 0 0
      inc/acf/assets/build/css/pro/acf-pro-input.css.map
  26. 0 0
      inc/acf/assets/build/css/pro/acf-pro-input.min.css
  27. 2645 0
      inc/acf/assets/build/js/acf-field-group.js
  28. 0 0
      inc/acf/assets/build/js/acf-field-group.js.map
  29. 0 0
      inc/acf/assets/build/js/acf-field-group.min.js
  30. 10447 0
      inc/acf/assets/build/js/acf-input.js
  31. 0 0
      inc/acf/assets/build/js/acf-input.js.map
  32. 0 0
      inc/acf/assets/build/js/acf-input.min.js
  33. 4403 0
      inc/acf/assets/build/js/acf.js
  34. 0 0
      inc/acf/assets/build/js/acf.js.map
  35. 0 0
      inc/acf/assets/build/js/acf.min.js
  36. 4165 0
      inc/acf/assets/build/js/pro/acf-pro-blocks-legacy.js
  37. 0 0
      inc/acf/assets/build/js/pro/acf-pro-blocks-legacy.js.map
  38. 0 0
      inc/acf/assets/build/js/pro/acf-pro-blocks-legacy.min.js
  39. 4846 0
      inc/acf/assets/build/js/pro/acf-pro-blocks.js
  40. 0 0
      inc/acf/assets/build/js/pro/acf-pro-blocks.js.map
  41. 0 0
      inc/acf/assets/build/js/pro/acf-pro-blocks.min.js
  42. 620 0
      inc/acf/assets/build/js/pro/acf-pro-field-group.js
  43. 0 0
      inc/acf/assets/build/js/pro/acf-pro-field-group.js.map
  44. 0 0
      inc/acf/assets/build/js/pro/acf-pro-field-group.min.js
  45. 2101 0
      inc/acf/assets/build/js/pro/acf-pro-input.js
  46. 0 0
      inc/acf/assets/build/js/pro/acf-pro-input.js.map
  47. 0 0
      inc/acf/assets/build/js/pro/acf-pro-input.min.js
  48. BIN
      inc/acf/assets/images/acf-logo.png
  49. 7 0
      inc/acf/assets/images/acf-logo.svg
  50. 2 0
      inc/acf/assets/images/empty-group.svg
  51. 3 0
      inc/acf/assets/images/field-states/checkbox-active.svg
  52. 3 0
      inc/acf/assets/images/field-states/checkbox-indeterminate.svg
  53. 3 0
      inc/acf/assets/images/field-states/radio-active.svg
  54. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-accordion.svg
  55. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-button-group.svg
  56. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-checkbox.svg
  57. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-clone.svg
  58. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-color-picker.svg
  59. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-date-picker.svg
  60. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-date-time-picker.svg
  61. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-default.svg
  62. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-email.svg
  63. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-file.svg
  64. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-flexible-content.svg
  65. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-gallery.svg
  66. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-google-map.svg
  67. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-group.svg
  68. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-image.svg
  69. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-link.svg
  70. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-message.svg
  71. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-number.svg
  72. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-oembed.svg
  73. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-page-link.svg
  74. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-password.svg
  75. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-post-object.svg
  76. 3 0
      inc/acf/assets/images/field-type-icons/icon-field-radio.svg
  77. 3 0
      inc/acf/assets/images/field-type-icons/icon-field-range.svg
  78. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-relationship.svg
  79. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-repeater.svg
  80. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-select.svg
  81. 3 0
      inc/acf/assets/images/field-type-icons/icon-field-tab.svg
  82. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-taxonomy.svg
  83. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-text.svg
  84. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-textarea.svg
  85. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-time-picker.svg
  86. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-true-false.svg
  87. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-url.svg
  88. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-user.svg
  89. 1 0
      inc/acf/assets/images/field-type-icons/icon-field-wysiwyg.svg
  90. 6 0
      inc/acf/assets/images/icon-upgrade-pro.svg
  91. 1 0
      inc/acf/assets/images/icons/icon-add.svg
  92. 1 0
      inc/acf/assets/images/icons/icon-arrow-left.svg
  93. 1 0
      inc/acf/assets/images/icons/icon-arrow-right.svg
  94. 1 0
      inc/acf/assets/images/icons/icon-check-circle-solid.svg
  95. 1 0
      inc/acf/assets/images/icons/icon-check.svg
  96. 1 0
      inc/acf/assets/images/icons/icon-chevron-down.svg
  97. 1 0
      inc/acf/assets/images/icons/icon-chevron-left-double.svg
  98. 1 0
      inc/acf/assets/images/icons/icon-chevron-left.svg
  99. 1 0
      inc/acf/assets/images/icons/icon-chevron-right-double.svg
  100. 1 0
      inc/acf/assets/images/icons/icon-chevron-right.svg

+ 1 - 0
_CODES.php

@@ -0,0 +1 @@
+wp-admin/edit.php?post_type=acf-field-group

+ 86 - 86
footer.php

@@ -110,97 +110,97 @@
 
 <div id="search-modal" class="overlay">
 
-  <button id="search-close" onclick="closeSearch()">
-     close
-  </button>
-
-  <div class="container-fluid overlay-content">
-    <div class="container">
-      <div>
-        <h4>Search UIU</h4>
-        <label for="search-web">Web</label>
-        <input id="search-people" name="search_type" type="radio" value="web" class="radio-search">
-
-        <label for="search-web">people</label>
-        <input id="search-people" name="search_type" type="radio" value="people" class="radio-search">
-      </div>
-
-      <div>
-        <input type="search" id="search-bar" name="search" id="" aria-label="search" placeholder="Search all UIU sites">
-        <button id="search-button"> Search</button>
-      </div>
-
-      <div>
-        <h6>Other ways to search:</h6>
-        <a href="#">UIU sitemap</a>
-        <a href="#">Faculty Directory</a>
-      </div>
-    </div>
-  </div>
+	<button id="search-close" onclick="closeSearch()">
+		close
+	</button>
+
+	<div class="container-fluid overlay-content">
+		<div class="container">
+			<div>
+				<h4>Search UIU</h4>
+				<label for="search-web">Web</label>
+				<input id="search-people" name="search_type" type="radio" value="web" class="radio-search">
+
+				<label for="search-web">people</label>
+				<input id="search-people" name="search_type" type="radio" value="people" class="radio-search">
+			</div>
+
+			<div>
+				<input type="search" id="search-bar" name="search" id="" aria-label="search" placeholder="Search all UIU sites">
+				<button id="search-button"> Search</button>
+			</div>
+
+			<div>
+				<h6>Other ways to search:</h6>
+				<a href="#">UIU sitemap</a>
+				<a href="#">Faculty Directory</a>
+			</div>
+		</div>
+	</div>
 
 </div>
 
 <div id="myNav" class="overlay">
 
-  <!-- Button to close the overlay navigation -->
-  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
-  <div id="bars-logo">
-    <img src="img/header-logo1.png" alt="">
-  </div>
-  <div class="grid">
-    <!-- Overlay content -->
-    <div class="overlay-content">
-      <h1>About</h1>
-      <a href="#">About</a>
-      <a href="#">Services</a>
-      <a href="#">Clients</a>
-      <a href="#">Contact</a>
-    </div>
-    <div class="overlay-content">
-      <h1>Admission</h1>
-      <a href="#">About</a>
-      <a href="#">Services</a>
-      <a href="#">Clients</a>
-      <a href="#">Contact</a>
-    </div>
-    <div class="overlay-content">
-      <h1>Research</h1>
-      <a href="#">About</a>
-      <a href="#">Services</a>
-      <a href="#">Clients</a>
-      <a href="#">Contact</a>
-    </div>
-
-    <div class="overlay-content">
-      <h1>Media</h1>
-      <a href="#">About</a>
-      <a href="#">Services</a>
-      <a href="#">Clients</a>
-      <a href="#">Contact</a>
-    </div>
-
-
-  </div>
-  <div class="grid">
-    <!-- Overlay content -->
-    <div class="overlay-content">
-      <h1>Faculty</h1>
-      <a href="#">About</a>
-      <a href="#">Services</a>
-      <a href="#">Clients</a>
-      <a href="#">Contact</a>
-    </div>
-    <div class="overlay-content">
-      <h1>Contact</h1>
-      <a href="#">About</a>
-      <a href="#">Services</a>
-      <a href="#">Clients</a>
-      <a href="#">Contact</a>
-    </div>
-
-
-
-  </div>
+	<!-- Button to close the overlay navigation -->
+	<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
+	<div id="bars-logo">
+		<img src="<?php echo (get_header_image()); ?>" alt="<?php echo (get_bloginfo('title')); ?>">
+	</div>
+	<div class="grid">
+		<!-- Overlay content -->
+		<div class="overlay-content">
+			<h1>About</h1>
+			<a href="#">About</a>
+			<a href="#">Services</a>
+			<a href="#">Clients</a>
+			<a href="#">Contact</a>
+		</div>
+		<div class="overlay-content">
+			<h1>Admission</h1>
+			<a href="#">About</a>
+			<a href="#">Services</a>
+			<a href="#">Clients</a>
+			<a href="#">Contact</a>
+		</div>
+		<div class="overlay-content">
+			<h1>Research</h1>
+			<a href="#">About</a>
+			<a href="#">Services</a>
+			<a href="#">Clients</a>
+			<a href="#">Contact</a>
+		</div>
+
+		<div class="overlay-content">
+			<h1>Media</h1>
+			<a href="#">About</a>
+			<a href="#">Services</a>
+			<a href="#">Clients</a>
+			<a href="#">Contact</a>
+		</div>
+
+
+	</div>
+	<div class="grid">
+		<!-- Overlay content -->
+		<div class="overlay-content">
+			<h1>Faculty</h1>
+			<a href="#">About</a>
+			<a href="#">Services</a>
+			<a href="#">Clients</a>
+			<a href="#">Contact</a>
+		</div>
+		<div class="overlay-content">
+			<h1>Contact</h1>
+			<a href="#">About</a>
+			<a href="#">Services</a>
+			<a href="#">Clients</a>
+			<a href="#">Contact</a>
+		</div>
+
+
+
+	</div>
 </div>
 
 

+ 11 - 0
functions.php

@@ -192,3 +192,14 @@ require get_template_directory() . '/inc/customizer.php';
 if (defined('JETPACK__VERSION')) {
 	require get_template_directory() . '/inc/jetpack.php';
 }
+
+
+/**
+ * Custom Include files anf folders
+ */
+
+// ACF
+include_once(get_template_directory() . '/inc/acf/acf.php');
+
+// ACF Settings
+include_once(get_template_directory() . '/inc/acf-settings.php');

+ 435 - 0
inc/acf-json/group_642a9b2379fbe.json

@@ -0,0 +1,435 @@
+{
+    "key": "group_642a9b2379fbe",
+    "title": "All Sliders",
+    "fields": [
+        {
+            "key": "field_642a9b2380241",
+            "label": "Home Slider",
+            "name": "",
+            "aria-label": "",
+            "type": "tab",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "placement": "left",
+            "endpoint": 0
+        },
+        {
+            "key": "field_642a9b2383ca8",
+            "label": "Instruction:",
+            "name": "",
+            "aria-label": "",
+            "type": "message",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "message": "Use <code>[home_slider]<\/code> as a shortcode, this shortcode can be used in any area of the site.",
+            "new_lines": "wpautop",
+            "esc_html": 0
+        },
+        {
+            "key": "field_642a9b2387740",
+            "label": "Overlay settings",
+            "name": "home_slider_overlay",
+            "aria-label": "",
+            "type": "color_picker",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "default_value": "",
+            "enable_opacity": 0,
+            "return_format": "string"
+        },
+        {
+            "key": "field_642a9b238b1f0",
+            "label": "Slides",
+            "name": "home_slider_slides",
+            "aria-label": "",
+            "type": "repeater",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "layout": "row",
+            "pagination": 0,
+            "min": 0,
+            "max": 0,
+            "collapsed": "",
+            "button_label": "Add another slide",
+            "rows_per_page": 20,
+            "sub_fields": [
+                {
+                    "key": "field_642a9b2396595",
+                    "label": "Background image",
+                    "name": "bg_image",
+                    "aria-label": "",
+                    "type": "image",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "return_format": "url",
+                    "library": "all",
+                    "min_width": "",
+                    "min_height": "",
+                    "min_size": "",
+                    "max_width": "",
+                    "max_height": "",
+                    "max_size": "",
+                    "mime_types": "",
+                    "preview_size": "thumbnail",
+                    "parent_repeater": "field_642a9b238b1f0"
+                },
+                {
+                    "key": "field_642a9b239a056",
+                    "label": "Sub heading",
+                    "name": "sub_heading",
+                    "aria-label": "",
+                    "type": "text",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "maxlength": "",
+                    "placeholder": "",
+                    "prepend": "",
+                    "append": "",
+                    "parent_repeater": "field_642a9b238b1f0"
+                },
+                {
+                    "key": "field_642a9b239daca",
+                    "label": "Main heading",
+                    "name": "heading_main",
+                    "aria-label": "",
+                    "type": "text",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "maxlength": "",
+                    "placeholder": "",
+                    "prepend": "",
+                    "append": "",
+                    "parent_repeater": "field_642a9b238b1f0"
+                },
+                {
+                    "key": "field_642a9b23a155d",
+                    "label": "Text",
+                    "name": "text",
+                    "aria-label": "",
+                    "type": "text",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "maxlength": "",
+                    "placeholder": "",
+                    "prepend": "",
+                    "append": "",
+                    "parent_repeater": "field_642a9b238b1f0"
+                },
+                {
+                    "key": "field_642a9b23a4ff7",
+                    "label": "Button link",
+                    "name": "button_link",
+                    "aria-label": "",
+                    "type": "url",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "placeholder": "",
+                    "parent_repeater": "field_642a9b238b1f0"
+                },
+                {
+                    "key": "field_642a9b23a8a8e",
+                    "label": "Button text",
+                    "name": "button_text",
+                    "aria-label": "",
+                    "type": "text",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "maxlength": "",
+                    "placeholder": "",
+                    "prepend": "",
+                    "append": "",
+                    "parent_repeater": "field_642a9b238b1f0"
+                }
+            ]
+        },
+        {
+            "key": "field_642a9bace87ba",
+            "label": "Event Slider",
+            "name": "",
+            "aria-label": "",
+            "type": "tab",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "placement": "left",
+            "endpoint": 0
+        },
+        {
+            "key": "field_642a9bcee87bb",
+            "label": "Instruction:",
+            "name": "",
+            "aria-label": "",
+            "type": "message",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "message": "Use <code>[event_slider]<\/code> as a shortcode, this shortcode can be used in any area of the site.",
+            "new_lines": "wpautop",
+            "esc_html": 0
+        },
+        {
+            "key": "field_642a9bd6e87bc",
+            "label": "Overlay settings",
+            "name": "event_slider_overlay",
+            "aria-label": "",
+            "type": "color_picker",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "default_value": "",
+            "enable_opacity": 0,
+            "return_format": ""
+        },
+        {
+            "key": "field_642a9bdce87bd",
+            "label": "Slides",
+            "name": "event_slider_slides",
+            "aria-label": "",
+            "type": "repeater",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "layout": "row",
+            "pagination": 0,
+            "min": 0,
+            "max": 0,
+            "collapsed": "",
+            "button_label": "Add another slide",
+            "rows_per_page": 20,
+            "sub_fields": [
+                {
+                    "key": "field_642a9bdce87be",
+                    "label": "Background image",
+                    "name": "bg_image",
+                    "aria-label": "",
+                    "type": "image",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "return_format": "",
+                    "library": "",
+                    "min_width": "",
+                    "min_height": "",
+                    "min_size": "",
+                    "max_width": "",
+                    "max_height": "",
+                    "max_size": "",
+                    "mime_types": "",
+                    "preview_size": "thumbnail",
+                    "parent_repeater": "field_642a9bdce87bd"
+                },
+                {
+                    "key": "field_642a9bdce87bf",
+                    "label": "Sub heading",
+                    "name": "sub_heading",
+                    "aria-label": "",
+                    "type": "text",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "maxlength": "",
+                    "placeholder": "",
+                    "prepend": "",
+                    "append": "",
+                    "parent_repeater": "field_642a9bdce87bd"
+                },
+                {
+                    "key": "field_642a9bdce87c0",
+                    "label": "Main heading",
+                    "name": "heading_main",
+                    "aria-label": "",
+                    "type": "text",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "maxlength": "",
+                    "placeholder": "",
+                    "prepend": "",
+                    "append": "",
+                    "parent_repeater": "field_642a9bdce87bd"
+                },
+                {
+                    "key": "field_642a9bdce87c1",
+                    "label": "Text",
+                    "name": "text",
+                    "aria-label": "",
+                    "type": "text",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "maxlength": "",
+                    "placeholder": "",
+                    "prepend": "",
+                    "append": "",
+                    "parent_repeater": "field_642a9bdce87bd"
+                },
+                {
+                    "key": "field_642a9bdce87c2",
+                    "label": "Button link",
+                    "name": "button_link",
+                    "aria-label": "",
+                    "type": "url",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "placeholder": "",
+                    "parent_repeater": "field_642a9bdce87bd"
+                },
+                {
+                    "key": "field_642a9bdce87c3",
+                    "label": "Button text",
+                    "name": "button_text",
+                    "aria-label": "",
+                    "type": "text",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "maxlength": "",
+                    "placeholder": "",
+                    "prepend": "",
+                    "append": "",
+                    "parent_repeater": "field_642a9bdce87bd"
+                }
+            ]
+        }
+    ],
+    "location": [
+        [
+            {
+                "param": "options_page",
+                "operator": "==",
+                "value": "acf-options-slider-settings"
+            }
+        ]
+    ],
+    "menu_order": 0,
+    "position": "normal",
+    "style": "default",
+    "label_placement": "top",
+    "instruction_placement": "label",
+    "hide_on_screen": "",
+    "active": true,
+    "description": "",
+    "show_in_rest": 0,
+    "modified": 1680514932
+}

+ 265 - 0
inc/acf-json/group_642aa09ae85e7.json

@@ -0,0 +1,265 @@
+{
+    "key": "group_642aa09ae85e7",
+    "title": "Faculty Profiles",
+    "fields": [
+        {
+            "key": "field_642ab5e4d9da0",
+            "label": "Faculty Information",
+            "name": "",
+            "aria-label": "",
+            "type": "message",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "message": "Input fields are all about faculty of the department of CSE",
+            "new_lines": "wpautop",
+            "esc_html": 0
+        },
+        {
+            "key": "field_642aa09bc163e",
+            "label": "Name",
+            "name": "name",
+            "aria-label": "",
+            "type": "text",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "default_value": "",
+            "maxlength": "",
+            "placeholder": "",
+            "prepend": "",
+            "append": ""
+        },
+        {
+            "key": "field_642ab30fc50c5",
+            "label": "Designation",
+            "name": "designation",
+            "aria-label": "",
+            "type": "text",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "default_value": "",
+            "maxlength": "",
+            "placeholder": "",
+            "prepend": "",
+            "append": ""
+        },
+        {
+            "key": "field_642ab412c50cc",
+            "label": "Contact Details",
+            "name": "contact_details",
+            "aria-label": "",
+            "type": "repeater",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "layout": "row",
+            "pagination": 0,
+            "min": 0,
+            "max": 0,
+            "collapsed": "",
+            "button_label": "Add new contact",
+            "rows_per_page": 20,
+            "sub_fields": [
+                {
+                    "key": "field_642ab443c50cd",
+                    "label": "Contact Info",
+                    "name": "contact_info",
+                    "aria-label": "",
+                    "type": "text",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "Mobile, email, website etc",
+                    "maxlength": "",
+                    "placeholder": "",
+                    "prepend": "",
+                    "append": "",
+                    "parent_repeater": "field_642ab412c50cc"
+                }
+            ]
+        },
+        {
+            "key": "field_642ab387c50c9",
+            "label": "Main Information",
+            "name": "main_information",
+            "aria-label": "",
+            "type": "repeater",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "layout": "row",
+            "pagination": 0,
+            "min": 0,
+            "max": 0,
+            "collapsed": "",
+            "button_label": "Add another information",
+            "rows_per_page": 20,
+            "sub_fields": [
+                {
+                    "key": "field_642ab3bcc50ca",
+                    "label": "Title",
+                    "name": "title",
+                    "aria-label": "",
+                    "type": "text",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "maxlength": "",
+                    "placeholder": "",
+                    "prepend": "",
+                    "append": "",
+                    "parent_repeater": "field_642ab387c50c9"
+                },
+                {
+                    "key": "field_642ab3d4c50cb",
+                    "label": "Contents",
+                    "name": "contents",
+                    "aria-label": "",
+                    "type": "wysiwyg",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "tabs": "all",
+                    "toolbar": "full",
+                    "media_upload": 1,
+                    "delay": 0,
+                    "parent_repeater": "field_642ab387c50c9"
+                }
+            ]
+        },
+        {
+            "key": "field_642ab4bdc50ce",
+            "label": "Social Networks",
+            "name": "social_networks",
+            "aria-label": "",
+            "type": "repeater",
+            "instructions": "",
+            "required": 0,
+            "conditional_logic": 0,
+            "wrapper": {
+                "width": "",
+                "class": "",
+                "id": ""
+            },
+            "layout": "table",
+            "pagination": 0,
+            "min": 0,
+            "max": 0,
+            "collapsed": "",
+            "button_label": "Add new social network",
+            "rows_per_page": 20,
+            "sub_fields": [
+                {
+                    "key": "field_642ab4d1c50cf",
+                    "label": "Select the network",
+                    "name": "select_the_network",
+                    "aria-label": "",
+                    "type": "select",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "choices": {
+                        "fb": "Facebook",
+                        "tw": "Twitter",
+                        "ln": "Linkedin",
+                        "Web": "Other"
+                    },
+                    "default_value": false,
+                    "return_format": "value",
+                    "multiple": 0,
+                    "allow_null": 0,
+                    "ui": 0,
+                    "ajax": 0,
+                    "placeholder": "",
+                    "parent_repeater": "field_642ab4bdc50ce"
+                },
+                {
+                    "key": "field_642ab563c50d0",
+                    "label": "Network URL",
+                    "name": "network_url",
+                    "aria-label": "",
+                    "type": "url",
+                    "instructions": "",
+                    "required": 0,
+                    "conditional_logic": 0,
+                    "wrapper": {
+                        "width": "",
+                        "class": "",
+                        "id": ""
+                    },
+                    "default_value": "",
+                    "placeholder": "",
+                    "parent_repeater": "field_642ab4bdc50ce"
+                }
+            ]
+        }
+    ],
+    "location": [
+        [
+            {
+                "param": "options_page",
+                "operator": "==",
+                "value": "uiu-cse-general-settings"
+            }
+        ]
+    ],
+    "menu_order": 0,
+    "position": "normal",
+    "style": "default",
+    "label_placement": "top",
+    "instruction_placement": "label",
+    "hide_on_screen": "",
+    "active": true,
+    "description": "",
+    "show_in_rest": 0,
+    "modified": 1680521046
+}

+ 5 - 0
inc/acf-json/index.php

@@ -0,0 +1,5 @@
+<?php
+
+// Silence is golden.
+
+?>

+ 86 - 0
inc/acf-settings.php

@@ -0,0 +1,86 @@
+<?php
+
+// Hide ACF field group menu item
+// add_filter('acf/settings/show_admin', '__return_false');
+
+// Customize ACF path
+add_filter('acf/settings/path', 'my_acf_settings_path');
+
+function my_acf_settings_path($path)
+{
+
+    // update path
+    $path = get_stylesheet_directory() . '/inc/acf/';
+
+    // return
+    return $path;
+}
+
+// Customize ACF dir
+add_filter('acf/settings/dir', 'my_acf_settings_dir');
+
+function my_acf_settings_dir($dir)
+{
+
+    // update path
+    $dir = get_stylesheet_directory_uri() . '/inc/acf/';
+
+    // return
+    return $dir;
+}
+
+// Save ACF field as JSON
+add_filter('acf/settings/save_json', 'my_acf_json_save_point');
+
+function my_acf_json_save_point($path)
+{
+
+    // update path
+    $path = get_stylesheet_directory() . '/inc/acf-json';
+
+    // return
+    return $path;
+}
+
+// Load ACF field from JSON
+add_filter('acf/settings/load_json', 'my_acf_json_load_point');
+
+function my_acf_json_load_point($paths)
+{
+
+    // remove original path (optional)
+    unset($paths[0]);
+
+    // append path
+    $paths[] = get_stylesheet_directory() . '/inc/acf-json';
+
+    // return
+    return $paths;
+}
+
+
+/**************
+  Options Page
+ ***************/
+if (function_exists('acf_add_options_page')) {
+
+    acf_add_options_page(array(
+        'page_title'     => 'Department of CSE: General Settings',
+        'menu_title'    => 'UIU Theme: CSE',
+        'menu_slug'     => 'uiu-cse-general-settings',
+        'capability'    => 'edit_posts',
+        'redirect'        => false
+    ));
+
+    acf_add_options_sub_page(array(
+        'page_title'     => 'Department of CSE: All Sliders',
+        'menu_title'    => 'Slider Settings',
+        'parent_slug'    => 'uiu-cse-general-settings',
+    ));
+
+    // acf_add_options_sub_page(array(
+    // 	'page_title' 	=> 'Theme Footer Settings',
+    // 	'menu_title'	=> 'Footer',
+    // 	'parent_slug'    => 'uiu-cse-general-settings',
+    // 	));
+}

+ 727 - 0
inc/acf/acf.php

@@ -0,0 +1,727 @@
+<?php
+/**
+ * Advanced Custom Fields PRO
+ *
+ * @package       ACF
+ * @author        WP Engine
+ *
+ * @wordpress-plugin
+ * Plugin Name:   Advanced Custom Fields PRO
+ * Plugin URI:    https://www.advancedcustomfields.com
+ * Description:   Customize WordPress with powerful, professional and intuitive fields.
+ * Version:       6.0.6
+ * Author:        WP Engine
+ * Author URI:    https://wpengine.com/?utm_source=wordpress.org&utm_medium=referral&utm_campaign=plugin_directory&utm_content=advanced_custom_fields
+ * Update URI:    https://www.advancedcustomfields.com/pro
+ * Text Domain:   acf
+ * Domain Path:   /lang
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+	exit; // Exit if accessed directly.
+}
+
+if ( ! class_exists( 'ACF' ) ) {
+
+	/**
+	 * The main ACF class
+	 */
+	class ACF {
+
+		/**
+		 * The plugin version number.
+		 *
+		 * @var string
+		 */
+		public $version = '6.0.6';
+
+		/**
+		 * The plugin settings array.
+		 *
+		 * @var array
+		 */
+		public $settings = array();
+
+		/**
+		 * The plugin data array.
+		 *
+		 * @var array
+		 */
+		public $data = array();
+
+		/**
+		 * Storage for class instances.
+		 *
+		 * @var array
+		 */
+		public $instances = array();
+
+		/**
+		 * A dummy constructor to ensure ACF is only setup once.
+		 *
+		 * @date    23/06/12
+		 * @since   5.0.0
+		 *
+		 * @return  void
+		 */
+		public function __construct() {
+			// Do nothing.
+		}
+
+		/**
+		 * Sets up the ACF plugin.
+		 *
+		 * @date    28/09/13
+		 * @since   5.0.0
+		 *
+		 * @return  void
+		 */
+		public function initialize() {
+
+			// Define constants.
+			$this->define( 'ACF', true );
+			$this->define( 'ACF_PATH', plugin_dir_path( __FILE__ ) );
+			$this->define( 'ACF_BASENAME', plugin_basename( __FILE__ ) );
+			$this->define( 'ACF_VERSION', $this->version );
+			$this->define( 'ACF_MAJOR_VERSION', 6 );
+			$this->define( 'ACF_FIELD_API_VERSION', 5 );
+			$this->define( 'ACF_UPGRADE_VERSION', '5.5.0' ); // Highest version with an upgrade routine. See upgrades.php.
+
+			// Define settings.
+			$this->settings = array(
+				'name'                   => __( 'Advanced Custom Fields', 'acf' ),
+				'slug'                   => dirname( ACF_BASENAME ),
+				'version'                => ACF_VERSION,
+				'basename'               => ACF_BASENAME,
+				'path'                   => ACF_PATH,
+				'file'                   => __FILE__,
+				'url'                    => plugin_dir_url( __FILE__ ),
+				'show_admin'             => true,
+				'show_updates'           => true,
+				'stripslashes'           => false,
+				'local'                  => true,
+				'json'                   => true,
+				'save_json'              => '',
+				'load_json'              => array(),
+				'default_language'       => '',
+				'current_language'       => '',
+				'capability'             => 'manage_options',
+				'uploader'               => 'wp',
+				'autoload'               => false,
+				'l10n'                   => true,
+				'l10n_textdomain'        => '',
+				'google_api_key'         => '',
+				'google_api_client'      => '',
+				'enqueue_google_maps'    => true,
+				'enqueue_select2'        => true,
+				'enqueue_datepicker'     => true,
+				'enqueue_datetimepicker' => true,
+				'select2_version'        => 4,
+				'row_index_offset'       => 1,
+				'remove_wp_meta_box'     => true,
+				'rest_api_enabled'       => true,
+				'rest_api_format'        => 'light',
+				'rest_api_embed_links'   => true,
+				'preload_blocks'         => true,
+				'enable_shortcode'       => true,
+			);
+
+			// Include utility functions.
+			include_once ACF_PATH . 'includes/acf-utility-functions.php';
+
+			// Include previous API functions.
+			acf_include( 'includes/api/api-helpers.php' );
+			acf_include( 'includes/api/api-template.php' );
+			acf_include( 'includes/api/api-term.php' );
+
+			// Include classes.
+			acf_include( 'includes/class-acf-data.php' );
+			acf_include( 'includes/fields/class-acf-field.php' );
+			acf_include( 'includes/locations/abstract-acf-legacy-location.php' );
+			acf_include( 'includes/locations/abstract-acf-location.php' );
+
+			// Include functions.
+			acf_include( 'includes/acf-helper-functions.php' );
+			acf_include( 'includes/acf-hook-functions.php' );
+			acf_include( 'includes/acf-field-functions.php' );
+			acf_include( 'includes/acf-field-group-functions.php' );
+			acf_include( 'includes/acf-form-functions.php' );
+			acf_include( 'includes/acf-meta-functions.php' );
+			acf_include( 'includes/acf-post-functions.php' );
+			acf_include( 'includes/acf-user-functions.php' );
+			acf_include( 'includes/acf-value-functions.php' );
+			acf_include( 'includes/acf-input-functions.php' );
+			acf_include( 'includes/acf-wp-functions.php' );
+
+			// Include core.
+			acf_include( 'includes/fields.php' );
+			acf_include( 'includes/locations.php' );
+			acf_include( 'includes/assets.php' );
+			acf_include( 'includes/compatibility.php' );
+			acf_include( 'includes/deprecated.php' );
+			acf_include( 'includes/l10n.php' );
+			acf_include( 'includes/local-fields.php' );
+			acf_include( 'includes/local-meta.php' );
+			acf_include( 'includes/local-json.php' );
+			acf_include( 'includes/loop.php' );
+			acf_include( 'includes/media.php' );
+			acf_include( 'includes/revisions.php' );
+			acf_include( 'includes/updates.php' );
+			acf_include( 'includes/upgrades.php' );
+			acf_include( 'includes/validation.php' );
+			acf_include( 'includes/rest-api.php' );
+
+			// Include ajax.
+			acf_include( 'includes/ajax/class-acf-ajax.php' );
+			acf_include( 'includes/ajax/class-acf-ajax-check-screen.php' );
+			acf_include( 'includes/ajax/class-acf-ajax-user-setting.php' );
+			acf_include( 'includes/ajax/class-acf-ajax-upgrade.php' );
+			acf_include( 'includes/ajax/class-acf-ajax-query.php' );
+			acf_include( 'includes/ajax/class-acf-ajax-query-users.php' );
+			acf_include( 'includes/ajax/class-acf-ajax-local-json-diff.php' );
+
+			// Include forms.
+			acf_include( 'includes/forms/form-attachment.php' );
+			acf_include( 'includes/forms/form-comment.php' );
+			acf_include( 'includes/forms/form-customizer.php' );
+			acf_include( 'includes/forms/form-front.php' );
+			acf_include( 'includes/forms/form-nav-menu.php' );
+			acf_include( 'includes/forms/form-post.php' );
+			acf_include( 'includes/forms/form-gutenberg.php' );
+			acf_include( 'includes/forms/form-taxonomy.php' );
+			acf_include( 'includes/forms/form-user.php' );
+			acf_include( 'includes/forms/form-widget.php' );
+
+			// Include admin.
+			if ( is_admin() ) {
+				acf_include( 'includes/admin/admin.php' );
+				acf_include( 'includes/admin/admin-field-group.php' );
+				acf_include( 'includes/admin/admin-field-groups.php' );
+				acf_include( 'includes/admin/admin-notices.php' );
+				acf_include( 'includes/admin/admin-tools.php' );
+				acf_include( 'includes/admin/admin-upgrade.php' );
+			}
+
+			// Include legacy.
+			acf_include( 'includes/legacy/legacy-locations.php' );
+
+			// Include PRO.
+			acf_include( 'pro/acf-pro.php' );
+
+			// Add actions.
+			add_action( 'init', array( $this, 'init' ), 5 );
+			add_action( 'init', array( $this, 'register_post_types' ), 5 );
+			add_action( 'init', array( $this, 'register_post_status' ), 5 );
+			add_action( 'activated_plugin', array( $this, 'deactivate_other_instances' ) );
+			add_action( 'pre_current_active_plugins', array( $this, 'plugin_deactivated_notice' ) );
+
+			// Add filters.
+			add_filter( 'posts_where', array( $this, 'posts_where' ), 10, 2 );
+		}
+
+		/**
+		 * Completes the setup process on "init" of earlier.
+		 *
+		 * @date    28/09/13
+		 * @since   5.0.0
+		 *
+		 * @return  void
+		 */
+		public function init() {
+
+			// Bail early if called directly from functions.php or plugin file.
+			if ( ! did_action( 'plugins_loaded' ) ) {
+				return;
+			}
+
+			// This function may be called directly from template functions. Bail early if already did this.
+			if ( acf_did( 'init' ) ) {
+				return;
+			}
+
+			// Update url setting. Allows other plugins to modify the URL (force SSL).
+			acf_update_setting( 'url', plugin_dir_url( __FILE__ ) );
+
+			// Load textdomain file.
+			acf_load_textdomain();
+
+			// Include 3rd party compatiblity.
+			acf_include( 'includes/third-party.php' );
+
+			// Include wpml support.
+			if ( defined( 'ICL_SITEPRESS_VERSION' ) ) {
+				acf_include( 'includes/wpml.php' );
+			}
+
+			// Include fields.
+			acf_include( 'includes/fields/class-acf-field-text.php' );
+			acf_include( 'includes/fields/class-acf-field-textarea.php' );
+			acf_include( 'includes/fields/class-acf-field-number.php' );
+			acf_include( 'includes/fields/class-acf-field-range.php' );
+			acf_include( 'includes/fields/class-acf-field-email.php' );
+			acf_include( 'includes/fields/class-acf-field-url.php' );
+			acf_include( 'includes/fields/class-acf-field-password.php' );
+			acf_include( 'includes/fields/class-acf-field-image.php' );
+			acf_include( 'includes/fields/class-acf-field-file.php' );
+			acf_include( 'includes/fields/class-acf-field-wysiwyg.php' );
+			acf_include( 'includes/fields/class-acf-field-oembed.php' );
+			acf_include( 'includes/fields/class-acf-field-select.php' );
+			acf_include( 'includes/fields/class-acf-field-checkbox.php' );
+			acf_include( 'includes/fields/class-acf-field-radio.php' );
+			acf_include( 'includes/fields/class-acf-field-button-group.php' );
+			acf_include( 'includes/fields/class-acf-field-true_false.php' );
+			acf_include( 'includes/fields/class-acf-field-link.php' );
+			acf_include( 'includes/fields/class-acf-field-post_object.php' );
+			acf_include( 'includes/fields/class-acf-field-page_link.php' );
+			acf_include( 'includes/fields/class-acf-field-relationship.php' );
+			acf_include( 'includes/fields/class-acf-field-taxonomy.php' );
+			acf_include( 'includes/fields/class-acf-field-user.php' );
+			acf_include( 'includes/fields/class-acf-field-google-map.php' );
+			acf_include( 'includes/fields/class-acf-field-date_picker.php' );
+			acf_include( 'includes/fields/class-acf-field-date_time_picker.php' );
+			acf_include( 'includes/fields/class-acf-field-time_picker.php' );
+			acf_include( 'includes/fields/class-acf-field-color_picker.php' );
+			acf_include( 'includes/fields/class-acf-field-message.php' );
+			acf_include( 'includes/fields/class-acf-field-accordion.php' );
+			acf_include( 'includes/fields/class-acf-field-tab.php' );
+			acf_include( 'includes/fields/class-acf-field-group.php' );
+
+			/**
+			 * Fires after field types have been included.
+			 *
+			 * @date    28/09/13
+			 * @since   5.0.0
+			 *
+			 * @param   int ACF_FIELD_API_VERSION The field API version.
+			 */
+			do_action( 'acf/include_field_types', ACF_FIELD_API_VERSION );
+
+			// Include locations.
+			acf_include( 'includes/locations/class-acf-location-post-type.php' );
+			acf_include( 'includes/locations/class-acf-location-post-template.php' );
+			acf_include( 'includes/locations/class-acf-location-post-status.php' );
+			acf_include( 'includes/locations/class-acf-location-post-format.php' );
+			acf_include( 'includes/locations/class-acf-location-post-category.php' );
+			acf_include( 'includes/locations/class-acf-location-post-taxonomy.php' );
+			acf_include( 'includes/locations/class-acf-location-post.php' );
+			acf_include( 'includes/locations/class-acf-location-page-template.php' );
+			acf_include( 'includes/locations/class-acf-location-page-type.php' );
+			acf_include( 'includes/locations/class-acf-location-page-parent.php' );
+			acf_include( 'includes/locations/class-acf-location-page.php' );
+			acf_include( 'includes/locations/class-acf-location-current-user.php' );
+			acf_include( 'includes/locations/class-acf-location-current-user-role.php' );
+			acf_include( 'includes/locations/class-acf-location-user-form.php' );
+			acf_include( 'includes/locations/class-acf-location-user-role.php' );
+			acf_include( 'includes/locations/class-acf-location-taxonomy.php' );
+			acf_include( 'includes/locations/class-acf-location-attachment.php' );
+			acf_include( 'includes/locations/class-acf-location-comment.php' );
+			acf_include( 'includes/locations/class-acf-location-widget.php' );
+			acf_include( 'includes/locations/class-acf-location-nav-menu.php' );
+			acf_include( 'includes/locations/class-acf-location-nav-menu-item.php' );
+
+			/**
+			 * Fires after location types have been included.
+			 *
+			 * @date    28/09/13
+			 * @since   5.0.0
+			 *
+			 * @param   int ACF_FIELD_API_VERSION The field API version.
+			 */
+			do_action( 'acf/include_location_rules', ACF_FIELD_API_VERSION );
+
+			/**
+			 * Fires during initialization. Used to add local fields.
+			 *
+			 * @date    28/09/13
+			 * @since   5.0.0
+			 *
+			 * @param   int ACF_FIELD_API_VERSION The field API version.
+			 */
+			do_action( 'acf/include_fields', ACF_FIELD_API_VERSION );
+
+			/**
+			 * Fires after ACF is completely "initialized".
+			 *
+			 * @date    28/09/13
+			 * @since   5.0.0
+			 *
+			 * @param   int ACF_MAJOR_VERSION The major version of ACF.
+			 */
+			do_action( 'acf/init', ACF_MAJOR_VERSION );
+		}
+
+		/**
+		 * Registers the ACF post types.
+		 *
+		 * @date    22/10/2015
+		 * @since   5.3.2
+		 *
+		 * @return  void
+		 */
+		public function register_post_types() {
+
+			// Vars.
+			$cap = acf_get_setting( 'capability' );
+
+			// Register the Field Group post type.
+			register_post_type(
+				'acf-field-group',
+				array(
+					'labels'          => array(
+						'name'               => __( 'Field Groups', 'acf' ),
+						'singular_name'      => __( 'Field Group', 'acf' ),
+						'add_new'            => __( 'Add New', 'acf' ),
+						'add_new_item'       => __( 'Add New Field Group', 'acf' ),
+						'edit_item'          => __( 'Edit Field Group', 'acf' ),
+						'new_item'           => __( 'New Field Group', 'acf' ),
+						'view_item'          => __( 'View Field Group', 'acf' ),
+						'search_items'       => __( 'Search Field Groups', 'acf' ),
+						'not_found'          => __( 'No Field Groups found', 'acf' ),
+						'not_found_in_trash' => __( 'No Field Groups found in Trash', 'acf' ),
+					),
+					'public'          => false,
+					'hierarchical'    => true,
+					'show_ui'         => true,
+					'show_in_menu'    => false,
+					'_builtin'        => false,
+					'capability_type' => 'post',
+					'capabilities'    => array(
+						'edit_post'    => $cap,
+						'delete_post'  => $cap,
+						'edit_posts'   => $cap,
+						'delete_posts' => $cap,
+					),
+					'supports'        => false,
+					'rewrite'         => false,
+					'query_var'       => false,
+				)
+			);
+
+			// Register the Field post type.
+			register_post_type(
+				'acf-field',
+				array(
+					'labels'          => array(
+						'name'               => __( 'Fields', 'acf' ),
+						'singular_name'      => __( 'Field', 'acf' ),
+						'add_new'            => __( 'Add New', 'acf' ),
+						'add_new_item'       => __( 'Add New Field', 'acf' ),
+						'edit_item'          => __( 'Edit Field', 'acf' ),
+						'new_item'           => __( 'New Field', 'acf' ),
+						'view_item'          => __( 'View Field', 'acf' ),
+						'search_items'       => __( 'Search Fields', 'acf' ),
+						'not_found'          => __( 'No Fields found', 'acf' ),
+						'not_found_in_trash' => __( 'No Fields found in Trash', 'acf' ),
+					),
+					'public'          => false,
+					'hierarchical'    => true,
+					'show_ui'         => false,
+					'show_in_menu'    => false,
+					'_builtin'        => false,
+					'capability_type' => 'post',
+					'capabilities'    => array(
+						'edit_post'    => $cap,
+						'delete_post'  => $cap,
+						'edit_posts'   => $cap,
+						'delete_posts' => $cap,
+					),
+					'supports'        => array( 'title' ),
+					'rewrite'         => false,
+					'query_var'       => false,
+				)
+			);
+		}
+
+		/**
+		 * Registers the ACF post statuses.
+		 *
+		 * @date    22/10/2015
+		 * @since   5.3.2
+		 *
+		 * @return  void
+		 */
+		public function register_post_status() {
+
+			// Register the Inactive post status.
+			register_post_status(
+				'acf-disabled',
+				array(
+					'label'                     => _x( 'Inactive', 'post status', 'acf' ),
+					'public'                    => true,
+					'exclude_from_search'       => false,
+					'show_in_admin_all_list'    => true,
+					'show_in_admin_status_list' => true,
+					/* translators: counts for inactive field groups */
+					'label_count'               => _n_noop( 'Inactive <span class="count">(%s)</span>', 'Inactive <span class="count">(%s)</span>', 'acf' ),
+				)
+			);
+		}
+
+		/**
+		 * Checks if another version of ACF/ACF PRO is active and deactivates it.
+		 * Hooked on `activated_plugin` so other plugin is deactivated when current plugin is activated.
+		 *
+		 * @param string $plugin The plugin being activated.
+		 */
+		public function deactivate_other_instances( $plugin ) {
+			if ( ! in_array( $plugin, array( 'advanced-custom-fields/acf.php', 'advanced-custom-fields-pro/acf.php' ), true ) ) {
+				return;
+			}
+
+			$plugin_to_deactivate  = 'advanced-custom-fields/acf.php';
+			$deactivated_notice_id = '1';
+
+			// If we just activated the free version, deactivate the pro version.
+			if ( $plugin === $plugin_to_deactivate ) {
+				$plugin_to_deactivate  = 'advanced-custom-fields-pro/acf.php';
+				$deactivated_notice_id = '2';
+			}
+
+			if ( is_multisite() && is_network_admin() ) {
+				$active_plugins = (array) get_site_option( 'active_sitewide_plugins', array() );
+				$active_plugins = array_keys( $active_plugins );
+			} else {
+				$active_plugins = (array) get_option( 'active_plugins', array() );
+			}
+
+			foreach ( $active_plugins as $plugin_basename ) {
+				if ( $plugin_to_deactivate === $plugin_basename ) {
+					set_transient( 'acf_deactivated_notice_id', $deactivated_notice_id, 1 * HOUR_IN_SECONDS );
+					deactivate_plugins( $plugin_basename );
+					return;
+				}
+			}
+		}
+
+		/**
+		 * Displays a notice when either ACF or ACF PRO is automatically deactivated.
+		 */
+		public function plugin_deactivated_notice() {
+			$deactivated_notice_id = (int) get_transient( 'acf_deactivated_notice_id' );
+			if ( ! in_array( $deactivated_notice_id, array( 1, 2 ), true ) ) {
+				return;
+			}
+
+			$message = __( "Advanced Custom Fields and Advanced Custom Fields PRO should not be active at the same time. We've automatically deactivated Advanced Custom Fields.", 'acf' );
+			if ( 2 === $deactivated_notice_id ) {
+				$message = __( "Advanced Custom Fields and Advanced Custom Fields PRO should not be active at the same time. We've automatically deactivated Advanced Custom Fields PRO.", 'acf' );
+			}
+
+			?>
+			<div class="updated" style="border-left: 4px solid #ffba00;">
+				<p><?php echo esc_html( $message ); ?></p>
+			</div>
+			<?php
+
+			delete_transient( 'acf_deactivated_notice_id' );
+		}
+
+		/**
+		 * Filters the $where clause allowing for custom WP_Query args.
+		 *
+		 * @date    31/8/19
+		 * @since   5.8.1
+		 *
+		 * @param   string   $where The WHERE clause.
+		 * @param   WP_Query $wp_query The query object.
+		 * @return  WP_Query $wp_query The query object.
+		 */
+		public function posts_where( $where, $wp_query ) {
+			global $wpdb;
+
+			$field_key  = $wp_query->get( 'acf_field_key' );
+			$field_name = $wp_query->get( 'acf_field_name' );
+			$group_key  = $wp_query->get( 'acf_group_key' );
+
+			// Add custom "acf_field_key" arg.
+			if ( $field_key ) {
+				$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_name = %s", $field_key );
+			}
+
+			// Add custom "acf_field_name" arg.
+			if ( $field_name ) {
+				$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_excerpt = %s", $field_name );
+			}
+
+			// Add custom "acf_group_key" arg.
+			if ( $group_key ) {
+				$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_name = %s", $group_key );
+			}
+
+			// Return.
+			return $where;
+		}
+
+		/**
+		 * Defines a constant if doesnt already exist.
+		 *
+		 * @date    3/5/17
+		 * @since   5.5.13
+		 *
+		 * @param   string $name The constant name.
+		 * @param   mixed  $value The constant value.
+		 * @return  void
+		 */
+		public function define( $name, $value = true ) {
+			if ( ! defined( $name ) ) {
+				define( $name, $value );
+			}
+		}
+
+		/**
+		 * Returns true if a setting exists for this name.
+		 *
+		 * @date    2/2/18
+		 * @since   5.6.5
+		 *
+		 * @param   string $name The setting name.
+		 * @return  boolean
+		 */
+		public function has_setting( $name ) {
+			return isset( $this->settings[ $name ] );
+		}
+
+		/**
+		 * Returns a setting or null if doesn't exist.
+		 *
+		 * @date    28/09/13
+		 * @since   5.0.0
+		 *
+		 * @param   string $name The setting name.
+		 * @return  mixed
+		 */
+		public function get_setting( $name ) {
+			return isset( $this->settings[ $name ] ) ? $this->settings[ $name ] : null;
+		}
+
+		/**
+		 * Updates a setting for the given name and value.
+		 *
+		 * @date    28/09/13
+		 * @since   5.0.0
+		 *
+		 * @param   string $name The setting name.
+		 * @param   mixed  $value The setting value.
+		 * @return  true
+		 */
+		public function update_setting( $name, $value ) {
+			$this->settings[ $name ] = $value;
+			return true;
+		}
+
+		/**
+		 * Returns data or null if doesn't exist.
+		 *
+		 * @date    28/09/13
+		 * @since   5.0.0
+		 *
+		 * @param   string $name The data name.
+		 * @return  mixed
+		 */
+		public function get_data( $name ) {
+			return isset( $this->data[ $name ] ) ? $this->data[ $name ] : null;
+		}
+
+		/**
+		 * Sets data for the given name and value.
+		 *
+		 * @date    28/09/13
+		 * @since   5.0.0
+		 *
+		 * @param   string $name The data name.
+		 * @param   mixed  $value The data value.
+		 * @return  void
+		 */
+		public function set_data( $name, $value ) {
+			$this->data[ $name ] = $value;
+		}
+
+		/**
+		 * Returns an instance or null if doesn't exist.
+		 *
+		 * @date    13/2/18
+		 * @since   5.6.9
+		 *
+		 * @param   string $class The instance class name.
+		 * @return  object
+		 */
+		public function get_instance( $class ) {
+			$name = strtolower( $class );
+			return isset( $this->instances[ $name ] ) ? $this->instances[ $name ] : null;
+		}
+
+		/**
+		 * Creates and stores an instance of the given class.
+		 *
+		 * @date    13/2/18
+		 * @since   5.6.9
+		 *
+		 * @param   string $class The instance class name.
+		 * @return  object
+		 */
+		public function new_instance( $class ) {
+			$instance                 = new $class();
+			$name                     = strtolower( $class );
+			$this->instances[ $name ] = $instance;
+			return $instance;
+		}
+
+		/**
+		 * Magic __isset method for backwards compatibility.
+		 *
+		 * @date    24/4/20
+		 * @since   5.9.0
+		 *
+		 * @param   string $key Key name.
+		 * @return  bool
+		 */
+		public function __isset( $key ) {
+			return in_array( $key, array( 'locations', 'json' ), true );
+		}
+
+		/**
+		 * Magic __get method for backwards compatibility.
+		 *
+		 * @date    24/4/20
+		 * @since   5.9.0
+		 *
+		 * @param   string $key Key name.
+		 * @return  mixed
+		 */
+		public function __get( $key ) {
+			switch ( $key ) {
+				case 'locations':
+					return acf_get_instance( 'ACF_Legacy_Locations' );
+				case 'json':
+					return acf_get_instance( 'ACF_Local_JSON' );
+			}
+			return null;
+		}
+	}
+
+	/**
+	 * The main function responsible for returning the one true acf Instance to functions everywhere.
+	 * Use this function like you would a global variable, except without needing to declare the global.
+	 *
+	 * Example: <?php $acf = acf(); ?>
+	 *
+	 * @date    4/09/13
+	 * @since   4.3.0
+	 *
+	 * @return  ACF
+	 */
+	function acf() {
+		global $acf;
+
+		// Instantiate only once.
+		if ( ! isset( $acf ) ) {
+			$acf = new ACF();
+			$acf->initialize();
+		}
+		return $acf;
+	}
+
+	// Instantiate.
+	acf();
+
+} // class_exists check

+ 321 - 0
inc/acf/assets/build/css/acf-dark.css

@@ -0,0 +1,321 @@
+/*!***************************************************************************************************************************************************************************************************************!*\
+  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/advanced-custom-fields-pro/assets/src/sass/acf-dark.scss ***!
+  \***************************************************************************************************************************************************************************************************************/
+/*--------------------------------------------------------------------------------------------
+*
+*  Dark mode
+*
+*  WordPress plugin: https://en-au.wordpress.org/plugins/dark-mode/
+*  Github Documentation: https://github.com/danieltj27/Dark-Mode/wiki/Help:-Plugin-Compatibility-Guide
+*
+*--------------------------------------------------------------------------------------------*/
+/*---------------------------------------------------------------------------------------------
+*
+*  Global
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-box {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+}
+.acf-box .title,
+.acf-box .footer {
+  border-color: #23282d;
+}
+.acf-box h2 {
+  color: #bbc8d4;
+}
+.acf-box table, .acf-box tbody, .acf-box tr {
+  background: transparent !important;
+}
+
+.acf-thead {
+  color: #bbc8d4;
+  border-color: #191f25;
+}
+
+.acf-tfoot {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+
+.acf-table.-clear,
+.acf-table.-clear tr {
+  background: transparent !important;
+}
+
+.acf-loading-overlay {
+  background: rgba(0, 0, 0, 0.5);
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Fields
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-fields > .acf-field {
+  border-color: #23282d;
+}
+
+.acf-fields.-left > .acf-field:before {
+  background: rgba(0, 0, 0, 0.1);
+  border-color: #23282d;
+}
+
+.acf-fields.-border {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+}
+
+.acf-field[data-width] + .acf-field[data-width] {
+  border-color: #23282d;
+}
+
+.acf-input-prepend,
+.acf-input-append {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+}
+
+.acf-fields > .acf-tab-wrap {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+}
+.acf-fields > .acf-tab-wrap .acf-tab-group {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+.acf-fields > .acf-tab-wrap .acf-tab-group li a {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+.acf-fields > .acf-tab-wrap .acf-tab-group li a:hover {
+  background-color: #2d3136;
+  border-color: #23282d;
+  color: #bbc8d4;
+}
+.acf-fields > .acf-tab-wrap .acf-tab-group li.active a {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+}
+
+.acf-fields.-sidebar:before {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+
+.acf-fields.-sidebar.-left:before {
+  background-color: #2d3136;
+  border-color: #23282d;
+  background: #23282d;
+}
+.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group li a {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group li.active a {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+
+.acf-file-uploader .show-if-value {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+}
+.acf-file-uploader .show-if-value .file-icon {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+
+.acf-oembed {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+.acf-oembed .title {
+  background-color: #50626f;
+  border-color: #191f25;
+  color: #fff;
+}
+
+.acf-gallery {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+.acf-gallery .acf-gallery-main {
+  background: #23282d;
+}
+.acf-gallery .acf-gallery-attachment .margin {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+.acf-gallery .acf-gallery-side {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+.acf-gallery .acf-gallery-side .acf-gallery-side-info {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+.acf-gallery .acf-gallery-toolbar {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+
+.acf-button-group label:not(.selected) {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+
+.acf-switch:not(.-on) {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+.acf-switch:not(.-on) .acf-switch-slider {
+  background-color: #50626f;
+  border-color: #191f25;
+  color: #fff;
+}
+
+.acf-link .link-wrap {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+
+.acf-relationship .filters {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+}
+.acf-relationship .selection {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+.acf-relationship .selection .choices,
+.acf-relationship .selection .choices-list,
+.acf-relationship .selection .values {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+
+.acf-taxonomy-field .categorychecklist-holder {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+
+.acf-google-map {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+.acf-google-map .title {
+  background-color: #50626f;
+  border-color: #191f25;
+  color: #fff;
+}
+
+.acf-accordion {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+}
+
+.acf-field.acf-accordion .acf-accordion-content > .acf-fields {
+  border-color: #191f25;
+}
+
+.acf-flexible-content .layout {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+}
+.acf-flexible-content .layout .acf-fc-layout-handle {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+.acf-flexible-content .layout .acf-fc-layout-handle .acf-fc-layout-order {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+}
+
+#wpbody .acf-table {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+#wpbody .acf-table > tbody > tr,
+#wpbody .acf-table > thead > tr {
+  background: transparent;
+}
+#wpbody .acf-table > tbody > tr > td,
+#wpbody .acf-table > tbody > tr > th,
+#wpbody .acf-table > thead > tr > td,
+#wpbody .acf-table > thead > tr > th {
+  border-color: #191f25;
+}
+
+.acf-field select optgroup, .acf-field select optgroup:nth-child(2n) {
+  background: #50626f;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Field Group
+*
+*---------------------------------------------------------------------------------------------*/
+#acf-field-group-fields .acf-field-list-wrap {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+}
+#acf-field-group-fields .acf-field-list .no-fields-message {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+}
+#acf-field-group-fields .acf-field-object {
+  background-color: #32373c;
+  border-color: #191f25;
+  color: #bbc8d4;
+  border-color: #23282d;
+}
+#acf-field-group-fields .acf-field-object table, #acf-field-group-fields .acf-field-object tbody, #acf-field-group-fields .acf-field-object tr, #acf-field-group-fields .acf-field-object td, #acf-field-group-fields .acf-field-object th {
+  background: transparent;
+  border-color: #23282d;
+}
+#acf-field-group-fields .acf-field-object .acf-field .acf-label {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+#acf-field-group-fields .acf-field-object.ui-sortable-helper {
+  border-color: #191f25;
+  box-shadow: none;
+}
+#acf-field-group-fields .acf-field-object.ui-sortable-placeholder {
+  background-color: #2d3136;
+  border-color: #23282d;
+  box-shadow: none;
+}
+#acf-field-group-fields .acf-field-object + .acf-field-object-tab::before,
+#acf-field-group-fields .acf-field-object + .acf-field-object-accordion::before {
+  background-color: #2d3136;
+  border-color: #23282d;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Admin: Tools
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-meta-box-wrap .acf-fields {
+  background-color: #50626f;
+  border-color: #191f25;
+  color: #fff;
+  background: transparent;
+}
+
+/*# sourceMappingURL=acf-dark.css.map*/

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/css/acf-dark.css.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/css/acf-dark.min.css


+ 2489 - 0
inc/acf/assets/build/css/acf-field-group.css

@@ -0,0 +1,2489 @@
+/*!**********************************************************************************************************************************************************************************************************************!*\
+  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/advanced-custom-fields-pro/assets/src/sass/acf-field-group.scss ***!
+  \**********************************************************************************************************************************************************************************************************************/
+@charset "UTF-8";
+/*--------------------------------------------------------------------------------------------
+*
+*	Vars
+*
+*--------------------------------------------------------------------------------------------*/
+/* colors */
+/* acf-field */
+/* responsive */
+/*--------------------------------------------------------------------------------------------
+*
+*	ACF 6 ↓
+*
+*--------------------------------------------------------------------------------------------*/
+/*--------------------------------------------------------------------------------------------
+*
+*  Mixins
+*
+*--------------------------------------------------------------------------------------------*/
+/*--------------------------------------------------------------------------------------------
+*
+*	Field Group
+*
+*--------------------------------------------------------------------------------------------*/
+#acf-field-group-fields > .inside,
+#acf-field-group-locations > .inside,
+#acf-field-group-options > .inside {
+  padding: 0;
+  margin: 0;
+}
+
+.postbox .handle-order-higher,
+.postbox .handle-order-lower {
+  display: none;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Postbox: Publish
+*
+*----------------------------------------------------------------------------*/
+#minor-publishing-actions,
+#misc-publishing-actions #visibility,
+#misc-publishing-actions .edit-timestamp {
+  display: none;
+}
+
+#minor-publishing {
+  border-bottom: 0 none;
+}
+
+#misc-pub-section {
+  border-bottom: 0 none;
+}
+
+#misc-publishing-actions .misc-pub-section {
+  border-bottom-color: #F5F5F5;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Postbox: Fields
+*
+*----------------------------------------------------------------------------*/
+#acf-field-group-fields {
+  border: 0 none;
+  /* links */
+  /* Field type */
+  /* table header */
+  /* show keys */
+  /* hide tabs */
+  /* fields */
+}
+#acf-field-group-fields .inside {
+  border-top-width: 0;
+  border-top-style: none;
+}
+#acf-field-group-fields a {
+  text-decoration: none;
+}
+#acf-field-group-fields .li-field-type .field-type-icon {
+  margin-right: 8px;
+}
+@media screen and (max-width: 600px) {
+  #acf-field-group-fields .li-field-type .field-type-icon {
+    display: none;
+  }
+}
+#acf-field-group-fields .li-field-order {
+  width: 64px;
+  justify-content: center;
+}
+@media screen and (max-width: 880px) {
+  #acf-field-group-fields .li-field-order {
+    width: 32px;
+  }
+}
+#acf-field-group-fields .li-field-label {
+  width: calc(50% - 64px);
+}
+#acf-field-group-fields .li-field-name {
+  width: 25%;
+  word-break: break-word;
+}
+#acf-field-group-fields .li-field-key {
+  display: none;
+}
+#acf-field-group-fields .li-field-type {
+  width: 25%;
+}
+#acf-field-group-fields.show-field-keys .li-field-label {
+  width: calc(35% - 64px);
+}
+#acf-field-group-fields.show-field-keys .li-field-name {
+  width: 15%;
+}
+#acf-field-group-fields.show-field-keys .li-field-key {
+  width: 25%;
+  display: flex;
+}
+#acf-field-group-fields.show-field-keys .li-field-type {
+  width: 25%;
+}
+#acf-field-group-fields.hide-tabs .acf-field-settings-tab-bar {
+  display: none;
+}
+#acf-field-group-fields.hide-tabs .acf-field-settings-main {
+  padding: 0;
+}
+#acf-field-group-fields.hide-tabs .acf-field-settings-main.acf-field-settings-main-general {
+  padding-top: 32px;
+}
+#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field {
+  margin-bottom: 32px;
+}
+#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field-setting-wrapper {
+  padding-top: 0;
+  border-top: none;
+}
+#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field-settings-split .acf-field {
+  border-bottom-width: 1px;
+  border-bottom-style: solid;
+  border-bottom-color: #EAECF0;
+}
+#acf-field-group-fields.hide-tabs .acf-field-settings-main .acf-field-setting-first_day {
+  padding-top: 0;
+  border-top: none;
+}
+#acf-field-group-fields.hide-tabs .acf-field-settings-footer {
+  margin-top: 32px;
+}
+#acf-field-group-fields .acf-field-list-wrap {
+  border: #ccd0d4 solid 1px;
+}
+#acf-field-group-fields .acf-field-list {
+  background: #f5f5f5;
+  margin-top: -1px;
+  /* no fields */
+  /* empty */
+}
+#acf-field-group-fields .acf-field-list .acf-tbody > .li-field-name,
+#acf-field-group-fields .acf-field-list .acf-tbody > .li-field-key {
+  align-items: flex-start;
+}
+#acf-field-group-fields .acf-field-list .copyable:not(.copy-unsupported) {
+  cursor: pointer;
+  display: inline-flex;
+  align-items: center;
+}
+#acf-field-group-fields .acf-field-list .copyable:not(.copy-unsupported):hover:after {
+  content: "";
+  display: block;
+  padding-left: 5px;
+  display: inline-flex;
+  width: 12px;
+  height: 12px;
+  background-color: #667085;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  text-indent: 500%;
+  white-space: nowrap;
+  overflow: hidden;
+  -webkit-mask-image: url("../../images/icons/icon-copy.svg");
+  mask-image: url("../../images/icons/icon-copy.svg");
+  background-size: cover;
+}
+#acf-field-group-fields .acf-field-list .copyable:not(.copy-unsupported).copied:hover:after {
+  -webkit-mask-image: url("../../images/icons/icon-check-circle-solid.svg");
+  mask-image: url("../../images/icons/icon-check-circle-solid.svg");
+  background-color: #49ad52;
+}
+#acf-field-group-fields .acf-field-list .no-fields-message {
+  padding: 15px 15px;
+  background: #fff;
+  display: none;
+}
+#acf-field-group-fields .acf-field-list.-empty .no-fields-message {
+  display: block;
+}
+.acf-admin-3-8 #acf-field-group-fields .acf-field-list-wrap {
+  border-color: #dfdfdf;
+}
+
+.rtl #acf-field-group-fields .li-field-type .field-type-icon {
+  margin-left: 8px;
+  margin-right: 0;
+}
+
+/* field object */
+.acf-field-object {
+  border-top: #eeeeee solid 1px;
+  background: #fff;
+  /* sortable */
+  /* meta */
+  /* handle */
+  /* open */
+  /*
+  	// debug
+  	&[data-save="meta"] {
+  		> .handle {
+  			border-left: #ffb700 solid 5px !important;
+  		}
+  	}
+
+  	&[data-save="settings"] {
+  		> .handle {
+  			border-left: #0ec563 solid 5px !important;
+  		}
+  	}
+  */
+  /* hover */
+  /* settings */
+  /* conditional logic */
+}
+.acf-field-object.ui-sortable-helper {
+  overflow: hidden !important;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #A5D2E7 !important;
+  border-radius: 8px;
+  filter: drop-shadow(0px 10px 20px rgba(16, 24, 40, 0.14)) drop-shadow(0px 1px 3px rgba(16, 24, 40, 0.1));
+}
+.acf-field-object.ui-sortable-helper:before {
+  display: none !important;
+}
+.acf-field-object.ui-sortable-placeholder {
+  box-shadow: 0 -1px 0 0 #DFDFDF;
+  visibility: visible !important;
+  background: #F9F9F9;
+  border-top-color: transparent;
+  min-height: 54px;
+}
+.acf-field-object.ui-sortable-placeholder:after, .acf-field-object.ui-sortable-placeholder:before {
+  visibility: hidden;
+}
+.acf-field-object > .meta {
+  display: none;
+}
+.acf-field-object > .handle a {
+  -webkit-transition: none;
+  -moz-transition: none;
+  -o-transition: none;
+  transition: none;
+}
+.acf-field-object > .handle li {
+  word-wrap: break-word;
+}
+.acf-field-object > .handle strong {
+  display: block;
+  padding-bottom: 0;
+  font-size: 14px;
+  line-height: 14px;
+  min-height: 14px;
+}
+.acf-field-object > .handle .row-options {
+  display: block;
+  opacity: 0;
+  margin-top: 5px;
+}
+@media screen and (max-width: 880px) {
+  .acf-field-object > .handle .row-options {
+    opacity: 1;
+    margin-bottom: 0;
+  }
+}
+.acf-field-object > .handle .row-options a {
+  margin-right: 4px;
+}
+.acf-field-object > .handle .row-options a:hover {
+  color: #044767;
+}
+.acf-field-object > .handle .row-options a.delete-field {
+  color: #a00;
+}
+.acf-field-object > .handle .row-options a.delete-field:hover {
+  color: #f00;
+}
+.acf-field-object > .handle .row-options.active {
+  visibility: visible;
+}
+.acf-field-object.open + .acf-field-object {
+  border-top-color: #E1E1E1;
+}
+.acf-field-object.open > .handle {
+  background: #2a9bd9;
+  border: #2696d3 solid 1px;
+  text-shadow: #268FBB 0 1px 0;
+  color: #fff;
+  position: relative;
+  margin: 0 -1px 0 -1px;
+}
+.acf-field-object.open > .handle a {
+  color: #fff !important;
+}
+.acf-field-object.open > .handle a:hover {
+  text-decoration: underline !important;
+}
+.acf-field-object:hover > .handle .row-options, .acf-field-object.-hover > .handle .row-options, .acf-field-object:focus-within > .handle .row-options {
+  opacity: 1;
+  margin-bottom: 0;
+}
+.acf-field-object > .settings {
+  display: none;
+  width: 100%;
+}
+.acf-field-object > .settings > .acf-table {
+  border: none;
+}
+.acf-field-object .rule-groups {
+  margin-top: 20px;
+}
+
+/*----------------------------------------------------------------------------
+*
+* Postbox: Locations
+*
+*----------------------------------------------------------------------------*/
+.rule-groups h4 {
+  margin: 3px 0;
+}
+.rule-groups .rule-group {
+  margin: 0 0 5px;
+}
+.rule-groups .rule-group h4 {
+  margin: 0 0 3px;
+}
+.rule-groups .rule-group td.param {
+  width: 35%;
+}
+.rule-groups .rule-group td.operator {
+  width: 20%;
+}
+.rule-groups .rule-group td.add {
+  width: 40px;
+}
+.rule-groups .rule-group td.remove {
+  width: 28px;
+  vertical-align: middle;
+}
+.rule-groups .rule-group td.remove a {
+  width: 22px;
+  height: 22px;
+  visibility: hidden;
+}
+.rule-groups .rule-group td.remove a:before {
+  position: relative;
+  top: -2px;
+  font-size: 16px;
+}
+.rule-groups .rule-group tr:hover td.remove a {
+  visibility: visible;
+}
+.rule-groups .rule-group select:empty {
+  background: #f8f8f8;
+}
+.rule-groups:not(.rule-groups-multiple) .rule-group:first-child tr:first-child td.remove a {
+  /* Don't allow user to delete the only rule group */
+  visibility: hidden !important;
+}
+
+/*----------------------------------------------------------------------------
+*
+*	Options
+*
+*----------------------------------------------------------------------------*/
+#acf-field-group-options tr[data-name=hide_on_screen] li {
+  float: left;
+  width: 33%;
+}
+
+@media (max-width: 1100px) {
+  #acf-field-group-options tr[data-name=hide_on_screen] li {
+    width: 50%;
+  }
+}
+/*----------------------------------------------------------------------------
+*
+*	Conditional Logic
+*
+*----------------------------------------------------------------------------*/
+table.conditional-logic-rules {
+  background: transparent;
+  border: 0 none;
+  border-radius: 0;
+}
+
+table.conditional-logic-rules tbody td {
+  background: transparent;
+  border: 0 none !important;
+  padding: 5px 2px !important;
+}
+
+/*----------------------------------------------------------------------------
+*
+*	Field: Tab
+*
+*----------------------------------------------------------------------------*/
+.acf-field-object-tab .acf-field-setting-name,
+.acf-field-object-tab .acf-field-setting-instructions,
+.acf-field-object-tab .acf-field-setting-required,
+.acf-field-object-tab .acf-field-setting-warning,
+.acf-field-object-tab .acf-field-setting-wrapper {
+  display: none;
+}
+.acf-field-object-tab .li-field-name {
+  visibility: hidden;
+}
+.acf-field-object-tab p:first-child {
+  margin: 0.5em 0;
+}
+.acf-field-object-tab li.acf-settings-type-presentation,
+.acf-field-object-tab .acf-field-settings-main-presentation {
+  display: none !important;
+}
+
+/*----------------------------------------------------------------------------
+*
+*	Field: Accordion
+*
+*----------------------------------------------------------------------------*/
+.acf-field-object-accordion .acf-field-setting-name,
+.acf-field-object-accordion .acf-field-setting-instructions,
+.acf-field-object-accordion .acf-field-setting-required,
+.acf-field-object-accordion .acf-field-setting-warning,
+.acf-field-object-accordion .acf-field-setting-wrapper {
+  display: none;
+}
+.acf-field-object-accordion .li-field-name {
+  visibility: hidden;
+}
+.acf-field-object-accordion p:first-child {
+  margin: 0.5em 0;
+}
+.acf-field-object-accordion .acf-field-setting-instructions {
+  display: block;
+}
+
+/*----------------------------------------------------------------------------
+*
+*	Field: Message
+*
+*----------------------------------------------------------------------------*/
+.acf-field-object-message tr[data-name=name],
+.acf-field-object-message tr[data-name=instructions],
+.acf-field-object-message tr[data-name=required] {
+  display: none !important;
+}
+
+.acf-field-object-message .li-field-name {
+  visibility: hidden;
+}
+
+.acf-field-object-message textarea {
+  height: 175px !important;
+}
+
+/*----------------------------------------------------------------------------
+*
+*	Field: Separator
+*
+*----------------------------------------------------------------------------*/
+.acf-field-object-separator tr[data-name=name],
+.acf-field-object-separator tr[data-name=instructions],
+.acf-field-object-separator tr[data-name=required] {
+  display: none !important;
+}
+
+/*----------------------------------------------------------------------------
+*
+*	Field: Date Picker
+*
+*----------------------------------------------------------------------------*/
+.acf-field-object-date-picker .acf-radio-list li,
+.acf-field-object-time-picker .acf-radio-list li,
+.acf-field-object-date-time-picker .acf-radio-list li {
+  line-height: 25px;
+}
+.acf-field-object-date-picker .acf-radio-list span,
+.acf-field-object-time-picker .acf-radio-list span,
+.acf-field-object-date-time-picker .acf-radio-list span {
+  display: inline-block;
+  min-width: 10em;
+}
+.acf-field-object-date-picker .acf-radio-list input[type=text],
+.acf-field-object-time-picker .acf-radio-list input[type=text],
+.acf-field-object-date-time-picker .acf-radio-list input[type=text] {
+  width: 100px;
+}
+
+.acf-field-object-date-time-picker .acf-radio-list span {
+  min-width: 15em;
+}
+.acf-field-object-date-time-picker .acf-radio-list input[type=text] {
+  width: 200px;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Slug
+*
+*--------------------------------------------------------------------------------------------*/
+#slugdiv .inside {
+  padding: 12px;
+  margin: 0;
+}
+#slugdiv input[type=text] {
+  width: 100%;
+  height: 28px;
+  font-size: 14px;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	RTL
+*
+*--------------------------------------------------------------------------------------------*/
+html[dir=rtl] .acf-field-object.open > .handle {
+  margin: 0;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Device
+*
+*----------------------------------------------------------------------------*/
+@media only screen and (max-width: 850px) {
+  tr.acf-field,
+  td.acf-label,
+  td.acf-input {
+    display: block !important;
+    width: auto !important;
+    border: 0 none !important;
+  }
+  tr.acf-field {
+    border-top: #ededed solid 1px !important;
+    margin-bottom: 0 !important;
+  }
+  td.acf-label {
+    background: transparent !important;
+    padding-bottom: 0 !important;
+  }
+}
+/*----------------------------------------------------------------------------
+*
+*  Subtle background on accordion & tab fields to separate them from others
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group #acf-field-group-fields .acf-field-object-tab,
+.post-type-acf-field-group #acf-field-group-fields .acf-field-object-accordion {
+  background-color: #F9FAFB;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Global
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group #wpcontent {
+  line-height: 140%;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Links
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group a {
+  color: #0783BE;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Headings
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-h1, .post-type-acf-field-group h1,
+.acf-headerbar h1 {
+  font-size: 21px;
+  font-weight: 400;
+}
+
+.acf-h2, .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner h2, .acf-page-title, .post-type-acf-field-group h2,
+.acf-headerbar h2 {
+  font-size: 18px;
+  font-weight: 400;
+}
+
+.acf-h3, .post-type-acf-field-group .acf-field-settings-fc_head label, .post-type-acf-field-group #acf-popup .acf-popup-box .title h1,
+.post-type-acf-field-group #acf-popup .acf-popup-box .title h2,
+.post-type-acf-field-group #acf-popup .acf-popup-box .title h3,
+.post-type-acf-field-group #acf-popup .acf-popup-box .title h4, .post-type-acf-field-group h3,
+.acf-headerbar h3 {
+  font-size: 16px;
+  font-weight: 400;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Paragraphs
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .p1 {
+  font-size: 15px;
+}
+.post-type-acf-field-group .p2, .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p {
+  font-size: 14px;
+}
+.post-type-acf-field-group .p3 {
+  font-size: 13.5px;
+}
+.post-type-acf-field-group .p4, .post-type-acf-field-group .acf-field-list .acf-sortable-handle, .acf-field-list .post-type-acf-field-group .acf-sortable-handle, .post-type-acf-field-group .acf-field-object .handle li.li-field-label a.edit-field, .post-type-acf-field-group .acf-field-object .handle li, .post-type-acf-field-group .acf-thead li, .post-type-acf-field-group .acf-input .select2-container.-acf .select2-selection__rendered, .post-type-acf-field-group .button, .post-type-acf-field-group input[type=text],
+.post-type-acf-field-group input[type=search],
+.post-type-acf-field-group input[type=number],
+.post-type-acf-field-group textarea,
+.post-type-acf-field-group select {
+  font-size: 13px;
+}
+.post-type-acf-field-group .p5, .post-type-acf-field-group .acf-field-setting-display_format .acf-radio-list li label code, .acf-field-setting-display_format .acf-radio-list li label .post-type-acf-field-group code,
+.post-type-acf-field-group .acf-field-setting-return_format .acf-radio-list li label code,
+.acf-field-setting-return_format .acf-radio-list li label .post-type-acf-field-group code, .post-type-acf-field-group .acf-field-group-settings-footer .acf-created-on, .acf-field-group-settings-footer .post-type-acf-field-group .acf-created-on, .post-type-acf-field-group .acf-fields .acf-field-settings-tab-bar li a, .acf-fields .acf-field-settings-tab-bar li .post-type-acf-field-group a,
+.post-type-acf-field-group .acf-fields .acf-tab-wrap .acf-tab-group li a,
+.acf-fields .acf-tab-wrap .acf-tab-group li .post-type-acf-field-group a {
+  font-size: 12.5px;
+}
+.post-type-acf-field-group .p6, .post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p.acf-small, .post-type-acf-field-group .acf-field-object .handle li.li-field-label .row-options a, .post-type-acf-field-group .acf-small {
+  font-size: 12px;
+}
+.post-type-acf-field-group .p7 {
+  font-size: 11.5px;
+}
+.post-type-acf-field-group .p8 {
+  font-size: 11px;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Page titles
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-page-title {
+  color: #344054;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Hide old / native WP titles from pages
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .acf-settings-wrap h1,
+.post-type-acf-field-group #acf-admin-tools h1 {
+  display: none;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Small
+*
+*---------------------------------------------------------------------------------------------*/
+/*---------------------------------------------------------------------------------------------
+*
+*  Link focus style
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group a:focus {
+  box-shadow: none;
+  outline: none;
+}
+
+.post-type-acf-field-group a:focus-visible {
+  box-shadow: 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(79, 148, 212, 0.8);
+  outline: 1px solid transparent;
+}
+
+.post-type-acf-field-group {
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  All Inputs
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Read only text inputs
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Number fields
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Textarea
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Select
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Radio Button & Checkbox base styling
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Radio Buttons
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Checkboxes
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Radio Buttons & Checkbox lists
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  ACF Switch
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  File input button
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Action Buttons
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Edit field group header
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Select2 inputs
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  ACF label
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Tooltip for field name field setting (result of a fix for keyboard navigation)
+  *
+  *---------------------------------------------------------------------------------------------*/
+}
+.post-type-acf-field-group input[type=text],
+.post-type-acf-field-group input[type=search],
+.post-type-acf-field-group input[type=number],
+.post-type-acf-field-group textarea,
+.post-type-acf-field-group select {
+  box-sizing: border-box;
+  height: 40px;
+  padding-right: 12px;
+  padding-left: 12px;
+  background-color: #fff;
+  border-color: #D0D5DD;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+  border-radius: 6px;
+  color: #344054;
+}
+.post-type-acf-field-group input[type=text]:focus,
+.post-type-acf-field-group input[type=search]:focus,
+.post-type-acf-field-group input[type=number]:focus,
+.post-type-acf-field-group textarea:focus,
+.post-type-acf-field-group select:focus {
+  outline: 3px solid #EBF5FA;
+  border-color: #399CCB;
+}
+.post-type-acf-field-group input[type=text]:disabled,
+.post-type-acf-field-group input[type=search]:disabled,
+.post-type-acf-field-group input[type=number]:disabled,
+.post-type-acf-field-group textarea:disabled,
+.post-type-acf-field-group select:disabled {
+  background-color: #F9FAFB;
+  color: #808a9e;
+}
+.post-type-acf-field-group input[type=text]::placeholder,
+.post-type-acf-field-group input[type=search]::placeholder,
+.post-type-acf-field-group input[type=number]::placeholder,
+.post-type-acf-field-group textarea::placeholder,
+.post-type-acf-field-group select::placeholder {
+  color: #98A2B3;
+}
+.post-type-acf-field-group input[type=text]:read-only {
+  background-color: #F9FAFB;
+  color: #98A2B3;
+}
+.post-type-acf-field-group .acf-field.acf-field-number .acf-label,
+.post-type-acf-field-group .acf-field.acf-field-number .acf-input input[type=number] {
+  max-width: 180px;
+}
+.post-type-acf-field-group textarea {
+  box-sizing: border-box;
+  padding-top: 10px;
+  padding-bottom: 10px;
+  height: 80px;
+  min-height: 56px;
+}
+.post-type-acf-field-group select {
+  min-width: 160px;
+  max-width: 100%;
+  padding-right: 40px;
+  padding-left: 12px;
+  background-image: url("../../images/icons/icon-chevron-down.svg");
+  background-position: right 10px top 50%;
+  background-size: 20px;
+}
+.post-type-acf-field-group select:hover, .post-type-acf-field-group select:focus {
+  color: #0783BE;
+}
+.post-type-acf-field-group select::before {
+  content: "";
+  display: block;
+  position: absolute;
+  top: 5px;
+  left: 5px;
+  width: 20px;
+  height: 20px;
+  background-color: red;
+}
+.post-type-acf-field-group.rtl select {
+  padding-right: 12px;
+  padding-left: 40px;
+  background-position: left 10px top 50%;
+}
+.post-type-acf-field-group input[type=radio],
+.post-type-acf-field-group input[type=checkbox] {
+  box-sizing: border-box;
+  width: 16px;
+  height: 16px;
+  padding: 0;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #98A2B3;
+  background: #fff;
+  box-shadow: none;
+}
+.post-type-acf-field-group input[type=radio]:hover,
+.post-type-acf-field-group input[type=checkbox]:hover {
+  background-color: #EBF5FA;
+  border-color: #0783BE;
+}
+.post-type-acf-field-group input[type=radio]:checked, .post-type-acf-field-group input[type=radio]:focus-visible,
+.post-type-acf-field-group input[type=checkbox]:checked,
+.post-type-acf-field-group input[type=checkbox]:focus-visible {
+  background-color: #EBF5FA;
+  border-color: #0783BE;
+}
+.post-type-acf-field-group input[type=radio]:checked:before, .post-type-acf-field-group input[type=radio]:focus-visible:before,
+.post-type-acf-field-group input[type=checkbox]:checked:before,
+.post-type-acf-field-group input[type=checkbox]:focus-visible:before {
+  content: "";
+  position: relative;
+  top: -1px;
+  left: -1px;
+  width: 16px;
+  height: 16px;
+  margin: 0;
+  padding: 0;
+  background-color: transparent;
+  background-size: cover;
+  background-repeat: no-repeat;
+  background-position: center;
+}
+.post-type-acf-field-group input[type=radio]:active,
+.post-type-acf-field-group input[type=checkbox]:active {
+  box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 0px 0px rgba(255, 54, 54, 0.25);
+}
+.post-type-acf-field-group input[type=radio]:disabled,
+.post-type-acf-field-group input[type=checkbox]:disabled {
+  background-color: #F9FAFB;
+  border-color: #D0D5DD;
+}
+.post-type-acf-field-group.rtl input[type=radio]:checked:before, .post-type-acf-field-group.rtl input[type=radio]:focus-visible:before,
+.post-type-acf-field-group.rtl input[type=checkbox]:checked:before,
+.post-type-acf-field-group.rtl input[type=checkbox]:focus-visible:before {
+  left: 1px;
+}
+.post-type-acf-field-group input[type=radio]:checked:before, .post-type-acf-field-group input[type=radio]:focus:before {
+  background-image: url("../../images/field-states/radio-active.svg");
+}
+.post-type-acf-field-group input[type=checkbox]:checked:before, .post-type-acf-field-group input[type=checkbox]:focus:before {
+  background-image: url("../../images/field-states/checkbox-active.svg");
+}
+.post-type-acf-field-group .acf-radio-list li input[type=radio],
+.post-type-acf-field-group .acf-radio-list li input[type=checkbox],
+.post-type-acf-field-group .acf-checkbox-list li input[type=radio],
+.post-type-acf-field-group .acf-checkbox-list li input[type=checkbox] {
+  margin-right: 6px;
+}
+.post-type-acf-field-group .acf-radio-list.acf-bl li,
+.post-type-acf-field-group .acf-checkbox-list.acf-bl li {
+  margin-bottom: 8px;
+}
+.post-type-acf-field-group .acf-radio-list.acf-bl li:last-of-type,
+.post-type-acf-field-group .acf-checkbox-list.acf-bl li:last-of-type {
+  margin-bottom: 0;
+}
+.post-type-acf-field-group .acf-radio-list label,
+.post-type-acf-field-group .acf-checkbox-list label {
+  display: flex;
+  align-items: center;
+  align-content: center;
+}
+.post-type-acf-field-group .acf-switch {
+  width: 42px;
+  height: 24px;
+  border: none;
+  background-color: #D0D5DD;
+  border-radius: 12px;
+}
+.post-type-acf-field-group .acf-switch:hover {
+  background-color: #98A2B3;
+}
+.post-type-acf-field-group .acf-switch:active {
+  box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 0px 0px rgba(255, 54, 54, 0.25);
+}
+.post-type-acf-field-group .acf-switch.-on {
+  background-color: #0783BE;
+}
+.post-type-acf-field-group .acf-switch.-on:hover {
+  background-color: #066998;
+}
+.post-type-acf-field-group .acf-switch.-on .acf-switch-slider {
+  left: 20px;
+}
+.post-type-acf-field-group .acf-switch .acf-switch-off,
+.post-type-acf-field-group .acf-switch .acf-switch-on {
+  visibility: hidden;
+}
+.post-type-acf-field-group .acf-switch .acf-switch-slider {
+  width: 20px;
+  height: 20px;
+  border: none;
+  border-radius: 100px;
+  box-shadow: 0px 1px 3px rgba(16, 24, 40, 0.1), 0px 1px 2px rgba(16, 24, 40, 0.06);
+}
+.post-type-acf-field-group .acf-field-true-false {
+  display: flex;
+  align-items: flex-start;
+}
+.post-type-acf-field-group .acf-field-true-false .acf-label {
+  order: 2;
+  display: block;
+  align-items: center;
+  margin-top: 2px;
+  margin-bottom: 0;
+  margin-left: 12px;
+}
+.post-type-acf-field-group .acf-field-true-false .acf-label label {
+  margin-bottom: 0;
+}
+.post-type-acf-field-group .acf-field-true-false .acf-label .acf-tip {
+  margin-left: 12px;
+}
+.post-type-acf-field-group .acf-field-true-false .acf-label .description {
+  display: block;
+  margin-top: 2px;
+  margin-left: 0;
+}
+.post-type-acf-field-group.rtl .acf-field-true-false .acf-label {
+  margin-right: 12px;
+  margin-left: 0;
+}
+.post-type-acf-field-group.rtl .acf-field-true-false .acf-tip {
+  margin-right: 12px;
+  margin-left: 0;
+}
+.post-type-acf-field-group input::file-selector-button {
+  box-sizing: border-box;
+  min-height: 40px;
+  margin-right: 16px;
+  padding-top: 8px;
+  padding-right: 16px;
+  padding-bottom: 8px;
+  padding-left: 16px;
+  background-color: transparent;
+  color: #0783BE !important;
+  border-radius: 6px;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #0783BE;
+  text-decoration: none;
+}
+.post-type-acf-field-group input::file-selector-button:hover {
+  border-color: #066998;
+  cursor: pointer;
+  color: #066998 !important;
+}
+.post-type-acf-field-group .button {
+  display: inline-flex;
+  align-items: center;
+  height: 40px;
+  padding-right: 16px;
+  padding-left: 16px;
+  background-color: transparent;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #0783BE;
+  border-radius: 6px;
+  color: #0783BE;
+}
+.post-type-acf-field-group .button:hover {
+  background-color: #f3f9fc;
+  border-color: #0783BE;
+  color: #0783BE;
+}
+.post-type-acf-field-group .button:focus {
+  background-color: #f3f9fc;
+  outline: 3px solid #EBF5FA;
+  color: #0783BE;
+}
+.post-type-acf-field-group .edit-field-group-header {
+  display: block !important;
+}
+.post-type-acf-field-group .acf-input .select2-container.-acf .select2-selection {
+  border: none;
+  line-height: 1;
+}
+.post-type-acf-field-group .acf-input .select2-container.-acf .select2-selection__rendered {
+  box-sizing: border-box;
+  padding-right: 0;
+  padding-left: 0;
+  background-color: #fff;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #D0D5DD;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+  border-radius: 6px;
+  color: #344054;
+}
+.post-type-acf-field-group .acf-input .select2-container--focus {
+  outline: 3px solid #EBF5FA;
+  border-color: #399CCB;
+  border-radius: 6px;
+}
+.post-type-acf-field-group .acf-input .select2-container--focus .select2-selection__rendered {
+  border-color: #399CCB !important;
+}
+.post-type-acf-field-group .acf-input .select2-container--focus.select2-container--below.select2-container--open .select2-selection__rendered {
+  border-bottom-right-radius: 0 !important;
+  border-bottom-left-radius: 0 !important;
+}
+.post-type-acf-field-group .acf-input .select2-container--focus.select2-container--above.select2-container--open .select2-selection__rendered {
+  border-top-right-radius: 0 !important;
+  border-top-left-radius: 0 !important;
+}
+.post-type-acf-field-group .acf-input .select2-container .select2-search--inline .select2-search__field {
+  margin: 0;
+  padding-left: 6px;
+}
+.post-type-acf-field-group .acf-input .select2-container .select2-search--inline .select2-search__field:focus {
+  outline: none;
+  border: none;
+}
+.post-type-acf-field-group .acf-input .select2-container--default .select2-selection--multiple .select2-selection__rendered {
+  padding-top: 0;
+  padding-right: 6px;
+  padding-bottom: 0;
+  padding-left: 6px;
+}
+.post-type-acf-field-group .acf-input .select2-selection__clear {
+  width: 18px;
+  height: 18px;
+  margin-top: 12px;
+  margin-right: 0;
+  text-indent: 100%;
+  white-space: nowrap;
+  overflow: hidden;
+}
+.post-type-acf-field-group .acf-input .select2-selection__clear:before {
+  content: "";
+  display: block;
+  width: 14px;
+  height: 14px;
+  top: 0;
+  left: 0;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  -webkit-mask-image: url("../../images/icons/icon-close.svg");
+  mask-image: url("../../images/icons/icon-close.svg");
+  background-color: #98A2B3;
+}
+.post-type-acf-field-group .acf-input .select2-selection__clear:hover::before {
+  background-color: #1D2939;
+}
+.post-type-acf-field-group .acf-label {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+.post-type-acf-field-group .acf-label .acf-icon-help {
+  width: 18px;
+  height: 18px;
+  background-color: #98A2B3;
+}
+.post-type-acf-field-group .acf-label label {
+  margin-bottom: 0;
+}
+.post-type-acf-field-group .acf-label .description {
+  margin-top: 2px;
+}
+.post-type-acf-field-group .acf-field-setting-name .acf-tip {
+  position: absolute;
+  top: 0;
+  left: 654px;
+  color: #98A2B3;
+}
+.post-type-acf-field-group .acf-field-setting-name .acf-tip .acf-icon-help {
+  width: 18px;
+  height: 18px;
+}
+
+.rtl.post-type-acf-field-group .acf-field-setting-name .acf-tip {
+  left: auto;
+  right: 654px;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Container sizes
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group .metabox-holder.columns-1 #acf-field-group-fields,
+.post-type-acf-field-group .metabox-holder.columns-1 #acf-field-group-options,
+.post-type-acf-field-group .metabox-holder.columns-1 .meta-box-sortables.ui-sortable,
+.post-type-acf-field-group .metabox-holder.columns-1 .notice {
+  max-width: 1440px;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Max width for notices in 1 column edit field group layout
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group.columns-1 .notice {
+  max-width: 1440px;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Widen edit field group headerbar for 2 column layout
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group.columns-2 .acf-headerbar .acf-headerbar-inner {
+  max-width: 100%;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Post stuff
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group #poststuff {
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 0;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Table
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap {
+  overflow: hidden;
+  border: none;
+  border-radius: 0 0 8px 8px;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty {
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty .acf-thead,
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty .acf-tfoot {
+  display: none;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap.-empty .no-fields-message {
+  min-height: 280px;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Table header
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group .acf-thead {
+  background-color: #F9FAFB;
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+  border-bottom-width: 1px;
+  border-bottom-style: solid;
+  border-bottom-color: #EAECF0;
+}
+.post-type-acf-field-group .acf-thead li {
+  display: flex;
+  align-items: center;
+  min-height: 48px;
+  padding-top: 0;
+  padding-bottom: 0;
+  color: #344054;
+  font-weight: 500;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Table body
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group .acf-field-object {
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+}
+.post-type-acf-field-group .acf-field-object:hover .acf-sortable-handle:before {
+  display: inline-flex;
+}
+.post-type-acf-field-group .acf-field-object.acf-field-is-endpoint:before {
+  display: block;
+  content: "";
+  height: 2px;
+  width: 100%;
+  background: #D0D5DD;
+  margin-top: -1px;
+}
+.post-type-acf-field-group .acf-field-object.acf-field-is-endpoint.acf-field-object-accordion:before {
+  display: none;
+}
+.post-type-acf-field-group .acf-field-object.acf-field-is-endpoint.acf-field-object-accordion:after {
+  display: block;
+  content: "";
+  height: 2px;
+  width: 100%;
+  background: #D0D5DD;
+  z-index: 500;
+}
+.post-type-acf-field-group .acf-field-object:hover {
+  background-color: #f7fbfd;
+}
+.post-type-acf-field-group .acf-field-object.open {
+  background-color: #fff;
+  border-top-color: #A5D2E7;
+}
+.post-type-acf-field-group .acf-field-object.open .handle {
+  background-color: #D8EBF5;
+  border: none;
+  text-shadow: none;
+}
+.post-type-acf-field-group .acf-field-object.open .handle a {
+  color: #0783BE !important;
+}
+.post-type-acf-field-group .acf-field-object.open .handle a.delete-field {
+  color: #a00 !important;
+}
+.post-type-acf-field-group .acf-field-object ul.acf-hl {
+  display: flex;
+  align-items: stretch;
+}
+.post-type-acf-field-group .acf-field-object .handle li {
+  display: flex;
+  align-items: top;
+  flex-wrap: wrap;
+  min-height: 60px;
+  color: #344054;
+}
+.post-type-acf-field-group .acf-field-object .handle li.li-field-label {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: flex-start;
+  align-content: flex-start;
+  align-items: flex-start;
+  width: auto;
+}
+.post-type-acf-field-group .acf-field-object .handle li.li-field-label strong {
+  font-weight: 500;
+}
+.post-type-acf-field-group .acf-field-object .handle li.li-field-label .row-options {
+  width: 100%;
+}
+/*----------------------------------------------------------------------------
+*
+*  Table footer
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group .acf-tfoot {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+  min-height: 80px;
+  box-sizing: border-box;
+  padding-top: 8px;
+  padding-right: 24px;
+  padding-bottom: 8px;
+  padding-left: 24px;
+  background-color: #fff;
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+}
+.post-type-acf-field-group .acf-tfoot .acf-fr {
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 0;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Edit field settings
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group .acf-field-object .settings {
+  box-sizing: border-box;
+  padding-top: 0;
+  padding-bottom: 0;
+  background-color: #fff;
+  border-left-width: 4px;
+  border-left-style: solid;
+  border-left-color: #6BB5D8;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Main field settings container
+*
+*----------------------------------------------------------------------------*/
+.acf-field-settings-main {
+  padding-top: 32px;
+  padding-right: 0;
+  padding-bottom: 32px;
+  padding-left: 0;
+}
+.acf-field-settings-main .acf-field:last-of-type {
+  margin-bottom: 0;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Field label
+*
+*----------------------------------------------------------------------------*/
+.acf-field-settings .acf-label {
+  display: block;
+  justify-content: space-between;
+  align-items: center;
+  align-content: center;
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 6px;
+  margin-left: 0;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Single field
+*
+*----------------------------------------------------------------------------*/
+.acf-field-settings .acf-field {
+  box-sizing: border-box;
+  width: 100%;
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 32px;
+  margin-left: 0;
+  padding-top: 0;
+  padding-right: 72px;
+  padding-bottom: 0;
+  padding-left: 72px;
+}
+@media screen and (max-width: 600px) {
+  .acf-field-settings .acf-field {
+    padding-right: 12px;
+    padding-left: 12px;
+  }
+}
+.acf-field-settings .acf-field .acf-label,
+.acf-field-settings .acf-field .acf-input {
+  max-width: 600px;
+}
+.acf-field-settings .acf-field .acf-label.acf-input-sub,
+.acf-field-settings .acf-field .acf-input.acf-input-sub {
+  max-width: 100%;
+}
+.acf-field-settings .acf-field .acf-input-wrap {
+  overflow: visible;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Field separators
+*
+*----------------------------------------------------------------------------*/
+.acf-field-settings .acf-field.acf-field-setting-label,
+.acf-field-settings .acf-field-setting-wrapper {
+  padding-top: 24px;
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+}
+
+.acf-field-settings .acf-field-setting-wrapper {
+  margin-top: 24px;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Edit fields footer
+*
+*----------------------------------------------------------------------------*/
+.acf-field-settings .acf-field-settings-footer {
+  display: flex;
+  align-items: center;
+  min-height: 72px;
+  box-sizing: border-box;
+  width: 100%;
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 72px;
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+}
+@media screen and (max-width: 600px) {
+  .acf-field-settings .acf-field-settings-footer {
+    padding-left: 12px;
+  }
+}
+
+.rtl .acf-field-settings .acf-field-settings-footer {
+  padding-top: 0;
+  padding-right: 72px;
+  padding-bottom: 0;
+  padding-left: 0;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Tabs
+*
+*----------------------------------------------------------------------------*/
+.acf-fields .acf-tab-wrap {
+  background: #F9FAFB;
+  border-bottom-color: #1D2939;
+}
+.acf-fields .acf-tab-wrap .acf-tab-group {
+  padding-right: 24px;
+  padding-left: 24px;
+  border-top-width: 0;
+  border-bottom-width: 1px;
+  border-bottom-style: solid;
+  border-bottom-color: #EAECF0;
+}
+.acf-fields .acf-field-settings-tab-bar,
+.acf-fields .acf-tab-wrap .acf-tab-group {
+  display: flex;
+  align-items: stretch;
+  min-height: 48px;
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 24px;
+  margin-top: 0;
+  margin-bottom: 0;
+  border-bottom-width: 1px;
+  border-bottom-style: solid;
+  border-bottom-color: #EAECF0;
+}
+.acf-fields .acf-field-settings-tab-bar li,
+.acf-fields .acf-tab-wrap .acf-tab-group li {
+  display: flex;
+  align-items: center;
+  margin-top: 0;
+  margin-right: 24px;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding: 0;
+}
+.acf-fields .acf-field-settings-tab-bar li a,
+.acf-fields .acf-tab-wrap .acf-tab-group li a {
+  box-sizing: border-box;
+  display: inline-flex;
+  align-items: center;
+  height: 100%;
+  padding-top: 3px;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 0;
+  background: none;
+  border-top: none;
+  border-right: none;
+  border-bottom-width: 3px;
+  border-bottom-style: solid;
+  border-bottom-color: transparent;
+  border-left: none;
+  color: #667085;
+  font-weight: normal;
+}
+.acf-fields .acf-field-settings-tab-bar li a:hover,
+.acf-fields .acf-tab-wrap .acf-tab-group li a:hover {
+  color: #1D2939;
+}
+.acf-fields .acf-field-settings-tab-bar li a:hover,
+.acf-fields .acf-tab-wrap .acf-tab-group li a:hover {
+  background-color: transparent;
+}
+.acf-fields .acf-field-settings-tab-bar li.active a,
+.acf-fields .acf-tab-wrap .acf-tab-group li.active a {
+  background: none;
+  border-bottom-color: #0783BE;
+  color: #1D2939;
+}
+
+#acf-field-group-options .acf-fields .acf-tab-wrap .acf-tab-group li.active a {
+  padding-top: 2px;
+}
+
+.acf-field-editor .acf-field-settings-tab-bar {
+  padding-left: 72px;
+}
+@media screen and (max-width: 600px) {
+  .acf-field-editor .acf-field-settings-tab-bar {
+    padding-left: 12px;
+  }
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Field group settings
+*
+*----------------------------------------------------------------------------*/
+#acf-field-group-options .field-group-settings-tab {
+  padding-top: 24px;
+  padding-right: 24px;
+  padding-bottom: 24px;
+  padding-left: 24px;
+}
+#acf-field-group-options .field-group-settings-tab .acf-field:last-of-type {
+  padding: 0;
+}
+#acf-field-group-options .acf-field {
+  border: none;
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 24px;
+  padding-left: 0;
+}
+#acf-field-group-options .field-group-setting-split-container {
+  display: flex;
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 0;
+}
+#acf-field-group-options .field-group-setting-split-container .field-group-setting-split {
+  box-sizing: border-box;
+  padding-top: 24px;
+  padding-right: 24px;
+  padding-bottom: 24px;
+  padding-left: 24px;
+}
+#acf-field-group-options .field-group-setting-split-container .field-group-setting-split:nth-child(1) {
+  flex: 1 0 auto;
+}
+#acf-field-group-options .field-group-setting-split-container .field-group-setting-split:nth-child(2n) {
+  flex: 1 0 auto;
+  max-width: 320px;
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 32px;
+  padding-right: 32px;
+  padding-left: 32px;
+  border-left-width: 1px;
+  border-left-style: solid;
+  border-left-color: #EAECF0;
+}
+#acf-field-group-options .acf-field[data-name=description] {
+  max-width: 600px;
+}
+#acf-field-group-options .acf-button-group {
+  display: inline-flex;
+}
+
+.rtl #acf-field-group-options .field-group-setting-split-container .field-group-setting-split:nth-child(2n) {
+  margin-right: 32px;
+  margin-left: 0;
+  border-left: none;
+  border-right-width: 1px;
+  border-right-style: solid;
+  border-right-color: #EAECF0;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Reorder handles
+*
+*----------------------------------------------------------------------------*/
+.acf-field-list .li-field-order {
+  padding: 0;
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  justify-content: center;
+  align-content: stretch;
+  align-items: stretch;
+  background-color: transparent;
+}
+.acf-field-list .acf-sortable-handle {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  justify-content: center;
+  align-content: flex-start;
+  align-items: flex-start;
+  width: 100%;
+  height: 100%;
+  position: relative;
+  padding-top: 11px;
+  padding-bottom: 8px;
+  background-color: transparent;
+  border: none;
+  border-radius: 0;
+}
+.acf-field-list .acf-sortable-handle:hover {
+  cursor: grab;
+}
+.acf-field-list .acf-sortable-handle:before {
+  content: "";
+  display: none;
+  position: absolute;
+  top: 16px;
+  left: 8px;
+  width: 16px;
+  height: 16px;
+  width: 12px;
+  height: 12px;
+  background-color: #98A2B3;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  text-indent: 500%;
+  white-space: nowrap;
+  overflow: hidden;
+  -webkit-mask-image: url("../../images/icons/icon-draggable.svg");
+  mask-image: url("../../images/icons/icon-draggable.svg");
+}
+
+.rtl .acf-field-list .acf-sortable-handle:before {
+  left: 0;
+  right: 8px;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Expand / collapse field icon
+*
+*----------------------------------------------------------------------------*/
+.acf-field-object .li-field-label {
+  position: relative;
+  padding-left: 40px;
+}
+.acf-field-object .li-field-label:before {
+  content: "";
+  display: block;
+  position: absolute;
+  left: 6px;
+  display: inline-flex;
+  width: 18px;
+  height: 18px;
+  margin-top: -2px;
+  background-color: #667085;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  text-indent: 500%;
+  white-space: nowrap;
+  overflow: hidden;
+  -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg");
+  mask-image: url("../../images/icons/icon-chevron-down.svg");
+}
+.acf-field-object .li-field-label:hover:before {
+  cursor: pointer;
+}
+
+.rtl .acf-field-object .li-field-label {
+  padding-left: 0;
+  padding-right: 40px;
+}
+.rtl .acf-field-object .li-field-label:before {
+  left: 0;
+  right: 6px;
+  -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg");
+  mask-image: url("../../images/icons/icon-chevron-down.svg");
+}
+.rtl .acf-field-object.open .li-field-label:before {
+  -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg");
+  mask-image: url("../../images/icons/icon-chevron-down.svg");
+}
+.rtl .acf-field-object.open .acf-input-sub .li-field-label:before {
+  -webkit-mask-image: url("../../images/icons/icon-chevron-right.svg");
+  mask-image: url("../../images/icons/icon-chevron-right.svg");
+}
+.rtl .acf-field-object.open .acf-input-sub .acf-field-object.open .li-field-label:before {
+  -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg");
+  mask-image: url("../../images/icons/icon-chevron-down.svg");
+}
+
+.acf-thead .li-field-label {
+  padding-left: 40px;
+}
+.rtl .acf-thead .li-field-label {
+  padding-left: 0;
+  padding-right: 40px;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Conditional logic layout
+*
+*----------------------------------------------------------------------------*/
+.acf-field-settings-main-conditional-logic .acf-conditional-toggle {
+  display: flex;
+  padding-right: 72px;
+  padding-left: 72px;
+}
+@media screen and (max-width: 600px) {
+  .acf-field-settings-main-conditional-logic .acf-conditional-toggle {
+    padding-left: 12px;
+  }
+}
+.acf-field-settings-main-conditional-logic .acf-field {
+  flex-wrap: wrap;
+  margin-bottom: 0;
+  padding-right: 0;
+  padding-left: 0;
+}
+.acf-field-settings-main-conditional-logic .acf-field .rule-groups {
+  flex: 0 1 100%;
+  order: 3;
+  margin-top: 32px;
+  padding-top: 32px;
+  padding-right: 72px;
+  padding-left: 72px;
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+}
+@media screen and (max-width: 600px) {
+  .acf-field-settings-main-conditional-logic .acf-field .rule-groups {
+    padding-left: 12px;
+  }
+  .acf-field-settings-main-conditional-logic .acf-field .rule-groups table.acf-table tbody tr {
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: flex-start;
+    align-content: flex-start;
+    align-items: flex-start;
+  }
+  .acf-field-settings-main-conditional-logic .acf-field .rule-groups table.acf-table tbody tr td {
+    flex: 1 1 100%;
+  }
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Prefix & append styling
+*
+*----------------------------------------------------------------------------*/
+.acf-input .acf-input-prepend,
+.acf-input .acf-input-append {
+  display: inline-flex;
+  align-items: center;
+  height: 100%;
+  min-height: 40px;
+  padding-right: 12px;
+  padding-left: 12px;
+  background-color: #F9FAFB;
+  border-color: #D0D5DD;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+  color: #667085;
+}
+.acf-input .acf-input-prepend {
+  border-radius: 6px 0 0 6px;
+}
+.acf-input .acf-input-append {
+  border-radius: 0 6px 6px 0;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  ACF input wrap
+*
+*----------------------------------------------------------------------------*/
+.acf-input-wrap {
+  display: flex;
+}
+
+.acf-field-settings-main-presentation .acf-input-wrap {
+  display: flex;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Empty state
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message {
+  display: flex;
+  justify-content: center;
+  padding-top: 48px;
+  padding-bottom: 48px;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+  align-content: center;
+  align-items: flex-start;
+  text-align: center;
+  max-width: 400px;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner img,
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner h2,
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p {
+  flex: 1 0 100%;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner h2 {
+  margin-top: 32px;
+  margin-bottom: 0;
+  padding: 0;
+  color: #344054;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p {
+  margin-top: 12px;
+  margin-bottom: 0;
+  padding: 0;
+  color: #667085;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner p.acf-small {
+  margin-top: 32px;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner img {
+  max-width: 284px;
+  margin-bottom: 0;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list.-empty .no-fields-message .no-fields-message-inner .acf-btn {
+  margin-top: 32px;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Hide add title prompt label
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group .acf-headerbar #title-prompt-text {
+  display: none;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Modal styling
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group #acf-popup .acf-popup-box {
+  min-width: 480px;
+}
+.post-type-acf-field-group #acf-popup .acf-popup-box .title {
+  display: flex;
+  align-items: center;
+  align-content: center;
+  justify-content: space-between;
+  min-height: 64px;
+  box-sizing: border-box;
+  margin: 0;
+  padding-right: 24px;
+  padding-left: 24px;
+  border-bottom-width: 1px;
+  border-bottom-style: solid;
+  border-bottom-color: #EAECF0;
+}
+.post-type-acf-field-group #acf-popup .acf-popup-box .title h1,
+.post-type-acf-field-group #acf-popup .acf-popup-box .title h2,
+.post-type-acf-field-group #acf-popup .acf-popup-box .title h3,
+.post-type-acf-field-group #acf-popup .acf-popup-box .title h4 {
+  padding-left: 0;
+  color: #344054;
+}
+.post-type-acf-field-group #acf-popup .acf-popup-box .title .acf-icon {
+  display: block;
+  position: relative;
+  top: auto;
+  right: auto;
+  width: 22px;
+  height: 22px;
+  background-color: transparent;
+  color: transparent;
+}
+.post-type-acf-field-group #acf-popup .acf-popup-box .title .acf-icon:before {
+  display: inline-flex;
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 22px;
+  height: 22px;
+  background-color: #667085;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  text-indent: 500%;
+  white-space: nowrap;
+  overflow: hidden;
+  -webkit-mask-image: url("../../images/icons/icon-close-circle.svg");
+  mask-image: url("../../images/icons/icon-close-circle.svg");
+}
+.post-type-acf-field-group #acf-popup .acf-popup-box .title .acf-icon:hover:before {
+  background-color: #0783BE;
+}
+.post-type-acf-field-group #acf-popup .acf-popup-box .inner {
+  box-sizing: border-box;
+  margin: 0;
+  padding-top: 24px;
+  padding-right: 24px;
+  padding-bottom: 24px;
+  padding-left: 24px;
+  border-top: none;
+}
+.post-type-acf-field-group #acf-popup .acf-popup-box .inner p {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+.post-type-acf-field-group #acf-popup .acf-popup-box #acf-move-field-form .acf-field-select {
+  margin-top: 0;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Hide original #post-body-content from edit field group page
+*
+*----------------------------------------------------------------------------*/
+.acf-admin-single-field-group #post-body-content {
+  display: none;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Settings section footer
+*
+*----------------------------------------------------------------------------*/
+.acf-field-group-settings-footer {
+  display: flex;
+  justify-content: space-between;
+  align-content: stretch;
+  align-items: center;
+  position: relative;
+  min-height: 88px;
+  margin-right: -24px;
+  margin-bottom: -24px;
+  margin-left: -24px;
+  padding-right: 24px;
+  padding-left: 24px;
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+}
+.acf-field-group-settings-footer .acf-created-on {
+  display: inline-flex;
+  justify-content: flex-start;
+  align-content: stretch;
+  align-items: center;
+  color: #667085;
+}
+.acf-field-group-settings-footer .acf-created-on:before {
+  content: "";
+  display: inline-block;
+  width: 20px;
+  height: 20px;
+  margin-right: 8px;
+  background-color: #98A2B3;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  -webkit-mask-image: url("../../images/icons/icon-time.svg");
+  mask-image: url("../../images/icons/icon-time.svg");
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Conditional logic enabled badge
+*
+*----------------------------------------------------------------------------*/
+.conditional-logic-badge {
+  display: none;
+}
+.conditional-logic-badge.is-enabled {
+  display: inline-block;
+  width: 6px;
+  height: 6px;
+  overflow: hidden;
+  margin-left: 8px;
+  background-color: rgba(82, 170, 89, 0.4);
+  border-width: 1px;
+  border-style: solid;
+  border-color: #52AA59;
+  border-radius: 100px;
+  text-indent: 100%;
+  white-space: nowrap;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Split field settings
+*
+*----------------------------------------------------------------------------*/
+.acf-field-settings-split {
+  display: flex;
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+}
+.acf-field-settings-split .acf-field {
+  margin: 0;
+  padding-top: 32px;
+  padding-bottom: 32px;
+}
+.acf-field-settings-split .acf-field:nth-child(2n) {
+  border-left-width: 1px;
+  border-left-style: solid;
+  border-left-color: #EAECF0;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Display & return format
+*
+*----------------------------------------------------------------------------*/
+.acf-field-setting-display_format .acf-label,
+.acf-field-setting-return_format .acf-label {
+  margin-bottom: 6px;
+}
+.acf-field-setting-display_format .acf-radio-list li,
+.acf-field-setting-return_format .acf-radio-list li {
+  display: flex;
+}
+.acf-field-setting-display_format .acf-radio-list li label,
+.acf-field-setting-return_format .acf-radio-list li label {
+  display: inline-flex;
+  width: 100%;
+}
+.acf-field-setting-display_format .acf-radio-list li label span,
+.acf-field-setting-return_format .acf-radio-list li label span {
+  flex: 1 1 auto;
+}
+.acf-field-setting-display_format .acf-radio-list li label code,
+.acf-field-setting-return_format .acf-radio-list li label code {
+  padding-right: 8px;
+  padding-left: 8px;
+  background-color: #F2F4F7;
+  border-radius: 4px;
+  color: #475467;
+}
+.acf-field-setting-display_format .acf-radio-list li input[type=text],
+.acf-field-setting-return_format .acf-radio-list li input[type=text] {
+  height: 32px;
+}
+
+.acf-field-settings .acf-field-setting-first_day {
+  padding-top: 32px;
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Image and Gallery fields
+*
+*----------------------------------------------------------------------------*/
+.acf-field-object-image .acf-hl[data-cols="3"] > li,
+.acf-field-object-gallery .acf-hl[data-cols="3"] > li {
+  width: auto;
+}
+
+/*----------------------------------------------------------------------------
+*
+* Appended fields fields
+*
+*----------------------------------------------------------------------------*/
+.acf-field-settings .acf-field-appended {
+  overflow: auto;
+}
+.acf-field-settings .acf-field-appended .acf-input {
+  float: left;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Flexible widths for image minimum / maximum size fields
+*
+*----------------------------------------------------------------------------*/
+.acf-field-settings .acf-field.acf-field-setting-min_width .acf-input,
+.acf-field-settings .acf-field.acf-field-setting-max_width .acf-input {
+  max-width: none;
+}
+.acf-field-settings .acf-field.acf-field-setting-min_width .acf-input-wrap input[type=text],
+.acf-field-settings .acf-field.acf-field-setting-max_width .acf-input-wrap input[type=text] {
+  max-width: 81px;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Temporary fix to hide pagination setting for repeaters used as subfields.
+*
+*----------------------------------------------------------------------------*/
+.post-type-acf-field-group .acf-field-object-flexible-content .acf-field-setting-pagination {
+  display: none;
+}
+.post-type-acf-field-group .acf-field-object-repeater .acf-field-object-repeater .acf-field-setting-pagination {
+  display: none;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Flexible content field width
+*
+*----------------------------------------------------------------------------*/
+.acf-admin-single-field-group .acf-field-object-flexible-content .acf-is-subfields .acf-field-object .acf-label,
+.acf-admin-single-field-group .acf-field-object-flexible-content .acf-is-subfields .acf-field-object .acf-input {
+  max-width: 600px;
+}
+
+/*----------------------------------------------------------------------------
+*
+*  Fix default value checkbox focus state
+*
+*----------------------------------------------------------------------------*/
+.acf-admin-single-field-group .acf-field.acf-field-true-false.acf-field-setting-default_value .acf-true-false {
+  border: none;
+}
+.acf-admin-single-field-group .acf-field.acf-field-true-false.acf-field-setting-default_value .acf-true-false input[type=checkbox] {
+  margin-right: 0;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Sub-fields layout
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub {
+  max-width: 100%;
+  overflow: hidden;
+  border-radius: 8px;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #dbdfe5;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-sub-field-list-header {
+  display: flex;
+  justify-content: space-between;
+  align-content: stretch;
+  align-items: center;
+  min-height: 64px;
+  padding-right: 24px;
+  padding-left: 24px;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-list-wrap {
+  box-shadow: none;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-hl.acf-tfoot {
+  min-height: 64px;
+  align-items: center;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input.acf-input-sub {
+  max-width: 100%;
+  margin-right: 0;
+  margin-left: 0;
+}
+
+.post-type-acf-field-group .acf-input-sub .acf-field-object .acf-sortable-handle {
+  width: 100%;
+  height: 100%;
+}
+
+.post-type-acf-field-group .acf-field-object:hover .acf-input-sub .acf-sortable-handle:before {
+  display: none;
+}
+
+.post-type-acf-field-group .acf-field-object:hover .acf-input-sub .acf-field-list .acf-field-object:hover .acf-sortable-handle:before {
+  display: block;
+}
+
+.post-type-acf-field-group .acf-field-object .acf-is-subfields .acf-thead .li-field-label:before {
+  display: none;
+}
+
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object.open {
+  border-top-color: #dbdfe5;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Flexible content field
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group i.acf-icon.-duplicate.duplicate-layout {
+  margin: 0 auto !important;
+  background-color: #667085;
+  color: #667085;
+}
+.post-type-acf-field-group i.acf-icon.acf-icon-trash.delete-layout {
+  margin: 0 auto !important;
+  background-color: #667085;
+  color: #667085;
+}
+.post-type-acf-field-group button.acf-btn.acf-btn-tertiary.acf-field-setting-fc-duplicate, .post-type-acf-field-group button.acf-btn.acf-btn-tertiary.acf-field-setting-fc-delete {
+  background-color: #ffffff !important;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+  border-radius: 6px;
+  width: 32px;
+  height: 32px !important;
+  min-height: 32px;
+  padding: 0;
+}
+.post-type-acf-field-group button.add-layout.acf-btn.acf-btn-primary.add-field,
+.post-type-acf-field-group .acf-sub-field-list-header a.acf-btn.acf-btn-secondary.add-field,
+.post-type-acf-field-group .acf-field-list-wrap.acf-is-subfields a.acf-btn.acf-btn-secondary.add-field {
+  height: 32px !important;
+  min-height: 32px;
+  margin-left: 5px;
+}
+.post-type-acf-field-group .acf-field.acf-field-setting-fc_layout {
+  background-color: #ffffff;
+  margin-bottom: 16px;
+}
+.post-type-acf-field-group .acf-field-setting-fc_layout {
+  overflow: hidden;
+  width: calc(100% - 144px);
+  margin-right: 72px;
+  margin-left: 72px;
+  padding-right: 0;
+  padding-left: 0;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #dbdfe5;
+  border-radius: 8px;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+}
+.post-type-acf-field-group .acf-field-setting-fc_layout .acf-field-layout-settings.open {
+  background-color: #ffffff;
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+}
+@media screen and (max-width: 768px) {
+  .post-type-acf-field-group .acf-field-setting-fc_layout {
+    width: calc(100% - 16px);
+    margin-right: 8px;
+    margin-left: 8px;
+  }
+}
+.post-type-acf-field-group .acf-field-setting-fc_layout .acf-input-sub {
+  max-width: 100%;
+  margin-right: 0;
+  margin-left: 0;
+}
+.post-type-acf-field-group .acf-field-setting-fc_layout .acf-label,
+.post-type-acf-field-group .acf-field-setting-fc_layout .acf-input {
+  max-width: 100% !important;
+}
+.post-type-acf-field-group .acf-field-setting-fc_layout .acf-input-sub {
+  margin-right: 32px;
+  margin-bottom: 32px;
+  margin-left: 32px;
+}
+.post-type-acf-field-group .acf-field-setting-fc_layout .acf-fc-meta {
+  max-width: 100%;
+  padding-top: 24px;
+  padding-right: 32px;
+  padding-left: 32px;
+}
+.post-type-acf-field-group .acf-field-settings-fc_head {
+  background-color: #F9FAFB;
+  border-radius: 8px 8px 0px 0px;
+  display: flex;
+  min-height: 64px;
+  margin-bottom: 0px;
+  padding-right: 24px;
+}
+.post-type-acf-field-group .acf-field-settings-fc_head .acf-fc_draggable {
+  min-height: 64px;
+  padding-left: 24px;
+  display: flex;
+}
+.post-type-acf-field-group .acf-field-settings-fc_head span.toggle-indicator {
+  pointer-events: none;
+  margin-top: 7px;
+}
+.post-type-acf-field-group .acf-field-settings-fc_head label {
+  display: inline-flex;
+  align-items: center;
+}
+.post-type-acf-field-group .acf-field-settings-fc_head label:before {
+  content: "";
+  display: inline-block;
+  width: 20px;
+  height: 20px;
+  margin-right: 8px;
+  background-color: #98A2B3;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+}
+.rtl.post-type-acf-field-group .acf-field-settings-fc_head label:before {
+  padding-right: 10px;
+}
+
+.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions {
+  display: flex;
+  align-items: center;
+}
+.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions .acf-fc-add-layout {
+  margin-left: 10px;
+}
+.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions .acf-fc-add-layout .add-field {
+  margin-left: 0px !important;
+}
+.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions li {
+  margin-right: 4px;
+}
+.post-type-acf-field-group .acf-field-settings-fc_head .acf-fl-actions li:last-of-type {
+  margin-right: 0;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Field open / closed icon state
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .acf-field-object.open > .handle > .acf-tbody > .li-field-label::before {
+  -webkit-mask-image: url("../../images/icons/icon-chevron-up.svg");
+  mask-image: url("../../images/icons/icon-chevron-up.svg");
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Different coloured levels (current 5 supported)
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object .handle {
+  background-color: transparent;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object .handle:hover {
+  background-color: #f9f2fb;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object.open .handle {
+  background-color: #f5eaf9;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-field-object .settings {
+  border-left-color: #BF7DD7;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object .handle {
+  background-color: transparent;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object .handle:hover {
+  background-color: #ebf7f4;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object.open .handle {
+  background-color: #e3f4f0;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-field-object .settings {
+  border-left-color: #7CCDB9;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle {
+  background-color: transparent;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle:hover {
+  background-color: #fcf5f2;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object.open .handle {
+  background-color: #fbeee9;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .settings {
+  border-left-color: #E29473;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle {
+  background-color: transparent;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .handle:hover {
+  background-color: #fafbfb;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object.open .handle {
+  background-color: #f4f6f7;
+}
+.post-type-acf-field-group #acf-field-group-fields .acf-field-list-wrap .acf-input-sub .acf-input-sub .acf-input-sub .acf-input-sub .acf-field-object .settings {
+  border-left-color: #A3B1B9;
+}
+
+/*# sourceMappingURL=acf-field-group.css.map*/

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/css/acf-field-group.css.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/css/acf-field-group.min.css


+ 4536 - 0
inc/acf/assets/build/css/acf-global.css

@@ -0,0 +1,4536 @@
+/*!*****************************************************************************************************************************************************************************************************************!*\
+  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/advanced-custom-fields-pro/assets/src/sass/acf-global.scss ***!
+  \*****************************************************************************************************************************************************************************************************************/
+@charset "UTF-8";
+/*--------------------------------------------------------------------------------------------
+*
+*	Vars
+*
+*--------------------------------------------------------------------------------------------*/
+/* colors */
+/* acf-field */
+/* responsive */
+/*--------------------------------------------------------------------------------------------
+*
+*	ACF 6 ↓
+*
+*--------------------------------------------------------------------------------------------*/
+/*--------------------------------------------------------------------------------------------
+*
+*  Mixins
+*
+*--------------------------------------------------------------------------------------------*/
+/*--------------------------------------------------------------------------------------------
+*
+*  Global
+*
+*--------------------------------------------------------------------------------------------*/
+/* Horizontal List */
+.acf-hl {
+  padding: 0;
+  margin: 0;
+  list-style: none;
+  display: block;
+  position: relative;
+}
+
+.acf-hl > li {
+  float: left;
+  display: block;
+  margin: 0;
+  padding: 0;
+}
+
+.acf-hl > li.acf-fr {
+  float: right;
+}
+
+/* Horizontal List: Clearfix */
+.acf-hl:before, .acf-hl:after,
+.acf-bl:before, .acf-bl:after,
+.acf-cf:before, .acf-cf:after {
+  content: "";
+  display: block;
+  line-height: 0;
+}
+
+.acf-hl:after,
+.acf-bl:after,
+.acf-cf:after {
+  clear: both;
+}
+
+/* Block List */
+.acf-bl {
+  padding: 0;
+  margin: 0;
+  list-style: none;
+  display: block;
+  position: relative;
+}
+
+.acf-bl > li {
+  display: block;
+  margin: 0;
+  padding: 0;
+  float: none;
+}
+
+/* Visibility */
+.acf-hidden {
+  display: none !important;
+}
+
+.acf-empty {
+  display: table-cell !important;
+}
+.acf-empty * {
+  display: none !important;
+}
+
+/* Float */
+.acf-fl {
+  float: left;
+}
+
+.acf-fr {
+  float: right;
+}
+
+.acf-fn {
+  float: none;
+}
+
+/* Align */
+.acf-al {
+  text-align: left;
+}
+
+.acf-ar {
+  text-align: right;
+}
+
+.acf-ac {
+  text-align: center;
+}
+
+/* loading */
+.acf-loading,
+.acf-spinner {
+  display: inline-block;
+  height: 20px;
+  width: 20px;
+  vertical-align: text-top;
+  background: transparent url(../../images/spinner.gif) no-repeat 50% 50%;
+}
+
+/* spinner */
+.acf-spinner {
+  display: none;
+}
+
+.acf-spinner.is-active {
+  display: inline-block;
+}
+
+/* WP < 4.2 */
+.spinner.is-active {
+  display: inline-block;
+}
+
+/* required */
+.acf-required {
+  color: #f00;
+}
+
+/* show on hover */
+.acf-soh .acf-soh-target {
+  -webkit-transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s;
+  -moz-transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s;
+  -o-transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s;
+  transition: opacity 0.25s 0s ease-in-out, visibility 0s linear 0.25s;
+  visibility: hidden;
+  opacity: 0;
+}
+
+.acf-soh:hover .acf-soh-target {
+  -webkit-transition-delay: 0s;
+  -moz-transition-delay: 0s;
+  -o-transition-delay: 0s;
+  transition-delay: 0s;
+  visibility: visible;
+  opacity: 1;
+}
+
+/* show if value */
+.show-if-value {
+  display: none;
+}
+
+.hide-if-value {
+  display: block;
+}
+
+.has-value .show-if-value {
+  display: block;
+}
+
+.has-value .hide-if-value {
+  display: none;
+}
+
+/* select2 WP animation fix */
+.select2-search-choice-close {
+  -webkit-transition: none;
+  -moz-transition: none;
+  -o-transition: none;
+  transition: none;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  tooltip
+*
+*---------------------------------------------------------------------------------------------*/
+/* tooltip */
+.acf-tooltip {
+  background: #1D2939;
+  border-radius: 6px;
+  color: #D0D5DD;
+  padding-top: 8px;
+  padding-right: 12px;
+  padding-bottom: 10px;
+  padding-left: 12px;
+  position: absolute;
+  z-index: 900000;
+  max-width: 280px;
+  box-shadow: 0px 12px 16px -4px rgba(16, 24, 40, 0.08), 0px 4px 6px -2px rgba(16, 24, 40, 0.03);
+  /* tip */
+  /* positions */
+}
+.acf-tooltip:before {
+  border: solid;
+  border-color: transparent;
+  border-width: 6px;
+  content: "";
+  position: absolute;
+}
+.acf-tooltip.top {
+  margin-top: -8px;
+}
+.acf-tooltip.top:before {
+  top: 100%;
+  left: 50%;
+  margin-left: -6px;
+  border-top-color: #2F353E;
+  border-bottom-width: 0;
+}
+.acf-tooltip.right {
+  margin-left: 8px;
+}
+.acf-tooltip.right:before {
+  top: 50%;
+  margin-top: -6px;
+  right: 100%;
+  border-right-color: #2F353E;
+  border-left-width: 0;
+}
+.acf-tooltip.bottom {
+  margin-top: 8px;
+}
+.acf-tooltip.bottom:before {
+  bottom: 100%;
+  left: 50%;
+  margin-left: -6px;
+  border-bottom-color: #2F353E;
+  border-top-width: 0;
+}
+.acf-tooltip.left {
+  margin-left: -8px;
+}
+.acf-tooltip.left:before {
+  top: 50%;
+  margin-top: -6px;
+  left: 100%;
+  border-left-color: #2F353E;
+  border-right-width: 0;
+}
+.acf-tooltip .acf-overlay {
+  z-index: -1;
+}
+
+/* confirm */
+.acf-tooltip.-confirm {
+  z-index: 900001;
+}
+.acf-tooltip.-confirm a {
+  text-decoration: none;
+  color: #9ea3a8;
+}
+.acf-tooltip.-confirm a:hover {
+  text-decoration: underline;
+}
+.acf-tooltip.-confirm a[data-event=confirm] {
+  color: #F55E4F;
+}
+
+.acf-overlay {
+  position: fixed;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  cursor: default;
+}
+
+.acf-tooltip-target {
+  position: relative;
+  z-index: 900002;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  loading
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-loading-overlay {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  cursor: default;
+  z-index: 99;
+  background: rgba(249, 249, 249, 0.5);
+}
+.acf-loading-overlay i {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	acf-icon
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-icon {
+  display: inline-block;
+  height: 28px;
+  width: 28px;
+  border: transparent solid 1px;
+  border-radius: 100%;
+  font-size: 20px;
+  line-height: 21px;
+  text-align: center;
+  text-decoration: none;
+  vertical-align: top;
+  box-sizing: border-box;
+}
+.acf-icon:before {
+  font-family: dashicons;
+  display: inline-block;
+  line-height: 1;
+  font-weight: 400;
+  font-style: normal;
+  speak: none;
+  text-decoration: inherit;
+  text-transform: none;
+  text-rendering: auto;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+  width: 1em;
+  height: 1em;
+  vertical-align: middle;
+  text-align: center;
+}
+
+.acf-icon.-plus:before {
+  content: "\f543";
+}
+
+.acf-icon.-minus:before {
+  content: "\f460";
+}
+
+.acf-icon.-cancel:before {
+  content: "\f335";
+  margin: -1px 0 0 -1px;
+}
+
+.acf-icon.-pencil:before {
+  content: "\f464";
+}
+
+.acf-icon.-location:before {
+  content: "\f230";
+}
+
+.acf-icon.-up:before {
+  content: "\f343";
+  margin-top: -0.1em;
+}
+
+.acf-icon.-down:before {
+  content: "\f347";
+  margin-top: 0.1em;
+}
+
+.acf-icon.-left:before {
+  content: "\f341";
+  margin-left: -0.1em;
+}
+
+.acf-icon.-right:before {
+  content: "\f345";
+  margin-left: 0.1em;
+}
+
+.acf-icon.-sync:before {
+  content: "\f463";
+}
+
+.acf-icon.-globe:before {
+  content: "\f319";
+  margin-top: 0.1em;
+  margin-left: 0.1em;
+}
+
+.acf-icon.-picture:before {
+  content: "\f128";
+}
+
+.acf-icon.-check:before {
+  content: "\f147";
+  margin-left: -0.1em;
+}
+
+.acf-icon.-dot-3:before {
+  content: "\f533";
+  margin-top: -0.1em;
+}
+
+.acf-icon.-arrow-combo:before {
+  content: "\f156";
+}
+
+.acf-icon.-arrow-up:before {
+  content: "\f142";
+  margin-left: -0.1em;
+}
+
+.acf-icon.-arrow-down:before {
+  content: "\f140";
+  margin-left: -0.1em;
+}
+
+.acf-icon.-search:before {
+  content: "\f179";
+}
+
+.acf-icon.-link-ext:before {
+  content: "\f504";
+}
+
+.acf-icon.-duplicate {
+  position: relative;
+}
+.acf-icon.-duplicate:before, .acf-icon.-duplicate:after {
+  display: block;
+  box-sizing: border-box;
+  width: 46%;
+  height: 46%;
+  position: absolute;
+  top: 33%;
+  left: 23%;
+}
+.acf-icon.-duplicate:before {
+  margin: -1px 0 0 1px;
+  box-shadow: 2px -2px 0px 0px currentColor;
+}
+.acf-icon.-duplicate:after {
+  border: solid 2px currentColor;
+}
+
+.acf-icon.-trash {
+  position: relative;
+}
+.acf-icon.-trash:before, .acf-icon.-trash:after {
+  content: "";
+  display: block;
+  box-sizing: border-box;
+  width: 46%;
+  height: 46%;
+  position: absolute;
+  top: 33%;
+  left: 23%;
+}
+.acf-icon.-trash:before {
+  margin: -1px 0 0 1px;
+  box-shadow: 2px -2px 0px 0px currentColor;
+}
+.acf-icon.-trash:after {
+  border: solid 2px currentColor;
+}
+
+.acf-icon.-collapse:before {
+  content: "\f142";
+  margin-left: -0.1em;
+}
+
+.-collapsed .acf-icon.-collapse:before {
+  content: "\f140";
+  margin-left: -0.1em;
+}
+
+span.acf-icon {
+  color: #555d66;
+  border-color: #b5bcc2;
+  background-color: #fff;
+}
+
+a.acf-icon {
+  color: #555d66;
+  border-color: #b5bcc2;
+  background-color: #fff;
+  position: relative;
+  transition: none;
+  cursor: pointer;
+}
+a.acf-icon:hover {
+  background: #f3f5f6;
+  border-color: #0071a1;
+  color: #0071a1;
+}
+a.acf-icon.-minus:hover, a.acf-icon.-cancel:hover {
+  background: #f7efef;
+  border-color: #a10000;
+  color: #dc3232;
+}
+a.acf-icon:active, a.acf-icon:focus {
+  outline: none;
+  box-shadow: none;
+}
+
+.acf-icon.-clear {
+  border-color: transparent;
+  background: transparent;
+  color: #444;
+}
+
+.acf-icon.light {
+  border-color: transparent;
+  background: #F5F5F5;
+  color: #23282d;
+}
+
+.acf-icon.dark {
+  border-color: transparent !important;
+  background: #23282D;
+  color: #eee;
+}
+
+a.acf-icon.dark:hover {
+  background: #191E23;
+  color: #00b9eb;
+}
+a.acf-icon.dark.-minus:hover, a.acf-icon.dark.-cancel:hover {
+  color: #D54E21;
+}
+
+.acf-icon.grey {
+  border-color: transparent !important;
+  background: #b4b9be;
+  color: #fff !important;
+}
+.acf-icon.grey:hover {
+  background: #00A0D2;
+  color: #fff;
+}
+.acf-icon.grey.-minus:hover, .acf-icon.grey.-cancel:hover {
+  background: #32373C;
+}
+
+.acf-icon.small,
+.acf-icon.-small {
+  width: 20px;
+  height: 20px;
+  line-height: 14px;
+  font-size: 14px;
+}
+.acf-icon.small.-duplicate:before, .acf-icon.small.-duplicate:after,
+.acf-icon.-small.-duplicate:before,
+.acf-icon.-small.-duplicate:after {
+  opacity: 0.8;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	acf-box
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-box {
+  background: #FFFFFF;
+  border: 1px solid #ccd0d4;
+  position: relative;
+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
+  /* title */
+  /* footer */
+}
+.acf-box .title {
+  border-bottom: 1px solid #ccd0d4;
+  margin: 0;
+  padding: 15px;
+}
+.acf-box .title h3 {
+  display: flex;
+  align-items: center;
+  font-size: 14px;
+  line-height: 1em;
+  margin: 0;
+  padding: 0;
+}
+.acf-box .inner {
+  padding: 15px;
+}
+.acf-box h2 {
+  color: #333333;
+  font-size: 26px;
+  line-height: 1.25em;
+  margin: 0.25em 0 0.75em;
+  padding: 0;
+}
+.acf-box h3 {
+  margin: 1.5em 0 0;
+}
+.acf-box p {
+  margin-top: 0.5em;
+}
+.acf-box a {
+  text-decoration: none;
+}
+.acf-box i.dashicons-external {
+  margin-top: -1px;
+}
+.acf-box .footer {
+  border-top: 1px solid #ccd0d4;
+  padding: 12px;
+  font-size: 13px;
+  line-height: 1.5;
+}
+.acf-box .footer p {
+  margin: 0;
+}
+.acf-admin-3-8 .acf-box {
+  border-color: #E5E5E5;
+}
+.acf-admin-3-8 .acf-box .title,
+.acf-admin-3-8 .acf-box .footer {
+  border-color: #E5E5E5;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	acf-notice
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-notice {
+  position: relative;
+  display: block;
+  color: #fff;
+  margin: 5px 0 15px;
+  padding: 3px 12px;
+  background: #2a9bd9;
+  border-left: #1f7db1 solid 3px;
+}
+.acf-notice p {
+  font-size: 13px;
+  line-height: 1.5;
+  margin: 0.5em 0;
+  text-shadow: none;
+  color: inherit;
+}
+.acf-notice .acf-notice-dismiss {
+  position: absolute;
+  top: 9px;
+  right: 12px;
+  background: transparent !important;
+  color: inherit !important;
+  border-color: #fff !important;
+  opacity: 0.75;
+}
+.acf-notice .acf-notice-dismiss:hover {
+  opacity: 1;
+}
+.acf-notice.-dismiss {
+  padding-right: 40px;
+}
+.acf-notice.-error {
+  background: #d94f4f;
+  border-color: #c92c2c;
+}
+.acf-notice.-success {
+  background: #49ad52;
+  border-color: #3a8941;
+}
+.acf-notice.-warning {
+  background: #fd8d3b;
+  border-color: #fc7009;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	acf-table
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-table {
+  border: #ccd0d4 solid 1px;
+  background: #fff;
+  border-spacing: 0;
+  border-radius: 0;
+  table-layout: auto;
+  padding: 0;
+  margin: 0;
+  width: 100%;
+  clear: both;
+  box-sizing: content-box;
+  /* defaults */
+  /* thead */
+  /* tbody */
+  /* -clear */
+}
+.acf-table > tbody > tr > th, .acf-table > tbody > tr > td,
+.acf-table > thead > tr > th,
+.acf-table > thead > tr > td {
+  padding: 8px;
+  vertical-align: top;
+  background: #fff;
+  text-align: left;
+  border-style: solid;
+  font-weight: normal;
+}
+.acf-table > tbody > tr > th,
+.acf-table > thead > tr > th {
+  position: relative;
+  color: #333333;
+}
+.acf-table > thead > tr > th {
+  border-color: #d5d9dd;
+  border-width: 0 0 1px 1px;
+}
+.acf-table > thead > tr > th:first-child {
+  border-left-width: 0;
+}
+.acf-table > tbody > tr {
+  z-index: 1;
+}
+.acf-table > tbody > tr > td {
+  border-color: #eeeeee;
+  border-width: 1px 0 0 1px;
+}
+.acf-table > tbody > tr > td:first-child {
+  border-left-width: 0;
+}
+.acf-table > tbody > tr:first-child > td {
+  border-top-width: 0;
+}
+.acf-table.-clear {
+  border: 0 none;
+}
+.acf-table.-clear > tbody > tr > td, .acf-table.-clear > tbody > tr > th,
+.acf-table.-clear > thead > tr > td,
+.acf-table.-clear > thead > tr > th {
+  border: 0 none;
+  padding: 4px;
+}
+
+/* remove tr */
+.acf-remove-element {
+  -webkit-transition: all 0.25s ease-out;
+  -moz-transition: all 0.25s ease-out;
+  -o-transition: all 0.25s ease-out;
+  transition: all 0.25s ease-out;
+  transform: translate(50px, 0);
+  opacity: 0;
+}
+
+/* fade-up */
+.acf-fade-up {
+  -webkit-transition: all 0.25s ease-out;
+  -moz-transition: all 0.25s ease-out;
+  -o-transition: all 0.25s ease-out;
+  transition: all 0.25s ease-out;
+  transform: translate(0, -10px);
+  opacity: 0;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Fake table
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-thead,
+.acf-tbody,
+.acf-tfoot {
+  width: 100%;
+  padding: 0;
+  margin: 0;
+}
+.acf-thead > li,
+.acf-tbody > li,
+.acf-tfoot > li {
+  box-sizing: border-box;
+  padding-top: 14px;
+  font-size: 12px;
+  line-height: 14px;
+}
+
+.acf-thead {
+  border-bottom: #ccd0d4 solid 1px;
+  color: #23282d;
+}
+.acf-thead > li {
+  font-size: 14px;
+  line-height: 1.4;
+  font-weight: bold;
+}
+.acf-admin-3-8 .acf-thead {
+  border-color: #dfdfdf;
+}
+
+.acf-tfoot {
+  background: #f5f5f5;
+  border-top: #d5d9dd solid 1px;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Settings
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-settings-wrap #poststuff {
+  padding-top: 15px;
+}
+.acf-settings-wrap .acf-box {
+  margin: 20px 0;
+}
+.acf-settings-wrap table {
+  margin: 0;
+}
+.acf-settings-wrap table .button {
+  vertical-align: middle;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	acf-popup
+*
+*--------------------------------------------------------------------------------------------*/
+#acf-popup {
+  position: fixed;
+  z-index: 900000;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  text-align: center;
+}
+#acf-popup .bg {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 0;
+  background: rgba(0, 0, 0, 0.25);
+}
+#acf-popup:before {
+  content: "";
+  display: inline-block;
+  height: 100%;
+  vertical-align: middle;
+}
+#acf-popup .acf-popup-box {
+  display: inline-block;
+  vertical-align: middle;
+  z-index: 1;
+  min-width: 300px;
+  min-height: 160px;
+  border-color: #aaaaaa;
+  box-shadow: 0 5px 30px -5px rgba(0, 0, 0, 0.25);
+  text-align: left;
+}
+html[dir=rtl] #acf-popup .acf-popup-box {
+  text-align: right;
+}
+#acf-popup .acf-popup-box .title {
+  min-height: 15px;
+  line-height: 15px;
+}
+#acf-popup .acf-popup-box .title .acf-icon {
+  position: absolute;
+  top: 10px;
+  right: 10px;
+}
+html[dir=rtl] #acf-popup .acf-popup-box .title .acf-icon {
+  right: auto;
+  left: 10px;
+}
+#acf-popup .acf-popup-box .inner {
+  min-height: 50px;
+  padding: 0;
+  margin: 15px;
+}
+#acf-popup .acf-popup-box .loading {
+  position: absolute;
+  top: 45px;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 2;
+  background: rgba(0, 0, 0, 0.1);
+  display: none;
+}
+#acf-popup .acf-popup-box .loading i {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+}
+
+.acf-submit {
+  margin-bottom: 0;
+  line-height: 28px;
+}
+.acf-submit span {
+  float: right;
+  color: #999;
+}
+.acf-submit span.-error {
+  color: #dd4232;
+}
+.acf-submit .button {
+  margin-right: 5px;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	upgrade notice
+*
+*--------------------------------------------------------------------------------------------*/
+#acf-upgrade-notice {
+  position: relative;
+  background: #fff;
+  padding: 20px;
+}
+#acf-upgrade-notice:after {
+  display: block;
+  clear: both;
+  content: "";
+}
+#acf-upgrade-notice .col-content {
+  float: left;
+  width: 55%;
+  padding-left: 90px;
+}
+#acf-upgrade-notice .notice-container {
+  display: flex;
+  justify-content: space-between;
+  align-items: flex-start;
+  align-content: flex-start;
+}
+#acf-upgrade-notice .col-actions {
+  float: right;
+  text-align: center;
+}
+#acf-upgrade-notice img {
+  float: left;
+  width: 64px;
+  height: 64px;
+  margin: 0 0 0 -90px;
+}
+#acf-upgrade-notice h2 {
+  display: inline-block;
+  font-size: 16px;
+  margin: 2px 0 6.5px;
+}
+#acf-upgrade-notice p {
+  padding: 0;
+  margin: 0;
+}
+#acf-upgrade-notice .button:before {
+  margin-top: 11px;
+}
+@media screen and (max-width: 640px) {
+  #acf-upgrade-notice .col-content,
+  #acf-upgrade-notice .col-actions {
+    float: none;
+    padding-left: 90px;
+    width: auto;
+    text-align: left;
+  }
+}
+
+#acf-upgrade-notice:has(.notice-container)::before, #acf-upgrade-notice:has(.notice-container)::after {
+  display: none;
+}
+
+#acf-upgrade-notice:has(.notice-container) {
+  padding-left: 20px !important;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Welcome
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-wrap h1 {
+  margin-top: 0;
+  padding-top: 20px;
+}
+.acf-wrap .about-text {
+  margin-top: 0.5em;
+  min-height: 50px;
+}
+.acf-wrap .about-headline-callout {
+  font-size: 2.4em;
+  font-weight: 300;
+  line-height: 1.3;
+  margin: 1.1em 0 0.2em;
+  text-align: center;
+}
+.acf-wrap .feature-section {
+  padding: 40px 0;
+}
+.acf-wrap .feature-section h2 {
+  margin-top: 20px;
+}
+.acf-wrap .changelog {
+  list-style: disc;
+  padding-left: 15px;
+}
+.acf-wrap .changelog li {
+  margin: 0 0 0.75em;
+}
+.acf-wrap .acf-three-col {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+}
+.acf-wrap .acf-three-col > div {
+  flex: 1;
+  align-self: flex-start;
+  min-width: 31%;
+  max-width: 31%;
+}
+@media screen and (max-width: 880px) {
+  .acf-wrap .acf-three-col > div {
+    min-width: 48%;
+  }
+}
+@media screen and (max-width: 640px) {
+  .acf-wrap .acf-three-col > div {
+    min-width: 100%;
+  }
+}
+.acf-wrap .acf-three-col h3 .badge {
+  display: inline-block;
+  vertical-align: top;
+  border-radius: 5px;
+  background: #fc9700;
+  color: #fff;
+  font-weight: normal;
+  font-size: 12px;
+  padding: 2px 5px;
+}
+.acf-wrap .acf-three-col img + h3 {
+  margin-top: 0.5em;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	acf-hl cols
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-hl[data-cols] {
+  margin-left: -10px;
+  margin-right: -10px;
+}
+.acf-hl[data-cols] > li {
+  padding: 0 6px 0 10px;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+
+/* sizes */
+.acf-hl[data-cols="2"] > li {
+  width: 50%;
+}
+
+.acf-hl[data-cols="3"] > li {
+  width: 33.333%;
+}
+
+.acf-hl[data-cols="4"] > li {
+  width: 25%;
+}
+
+/* mobile */
+@media screen and (max-width: 640px) {
+  .acf-hl[data-cols] {
+    flex-wrap: wrap;
+    justify-content: flex-start;
+    align-content: flex-start;
+    align-items: flex-start;
+    margin-left: 0;
+    margin-right: 0;
+    margin-top: -10px;
+  }
+  .acf-hl[data-cols] > li {
+    flex: 1 1 100%;
+    width: 100% !important;
+    padding: 10px 0 0;
+  }
+}
+/*--------------------------------------------------------------------------------------------
+*
+*	misc
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-actions {
+  text-align: right;
+  z-index: 1;
+  /* hover */
+  /* rtl */
+}
+.acf-actions.-hover {
+  position: absolute;
+  display: none;
+  top: 0;
+  right: 0;
+  padding: 5px;
+}
+html[dir=rtl] .acf-actions.-hover {
+  right: auto;
+  left: 0;
+}
+
+/* ul compatibility */
+ul.acf-actions li {
+  float: right;
+  margin-left: 4px;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	RTL
+*
+*--------------------------------------------------------------------------------------------*/
+html[dir=rtl] .acf-fl {
+  float: right;
+}
+
+html[dir=rtl] .acf-fr {
+  float: left;
+}
+
+html[dir=rtl] .acf-hl > li {
+  float: right;
+}
+
+html[dir=rtl] .acf-hl > li.acf-fr {
+  float: left;
+}
+
+html[dir=rtl] .acf-icon.logo {
+  left: 0;
+  right: auto;
+}
+
+html[dir=rtl] .acf-table thead th {
+  text-align: right;
+  border-right-width: 1px;
+  border-left-width: 0px;
+}
+
+html[dir=rtl] .acf-table > tbody > tr > td {
+  text-align: right;
+  border-right-width: 1px;
+  border-left-width: 0px;
+}
+
+html[dir=rtl] .acf-table > thead > tr > th:first-child,
+html[dir=rtl] .acf-table > tbody > tr > td:first-child {
+  border-right-width: 0;
+}
+
+html[dir=rtl] .acf-table > tbody > tr > td.order + td {
+  border-right-color: #e1e1e1;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  acf-postbox-columns
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-postbox-columns {
+  position: relative;
+  margin-top: -11px;
+  margin-bottom: -12px;
+  margin-left: -12px;
+  margin-right: 268px;
+}
+.acf-postbox-columns:after {
+  display: block;
+  clear: both;
+  content: "";
+}
+.acf-postbox-columns .acf-postbox-main,
+.acf-postbox-columns .acf-postbox-side {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  padding: 0 12px 12px;
+}
+.acf-postbox-columns .acf-postbox-main {
+  float: left;
+  width: 100%;
+}
+.acf-postbox-columns .acf-postbox-side {
+  float: right;
+  width: 280px;
+  margin-right: -280px;
+}
+.acf-postbox-columns .acf-postbox-side:before {
+  content: "";
+  display: block;
+  position: absolute;
+  width: 1px;
+  height: 100%;
+  top: 0;
+  right: 0;
+  background: #d5d9dd;
+}
+.acf-admin-3-8 .acf-postbox-columns .acf-postbox-side:before {
+  background: #dfdfdf;
+}
+
+/* mobile */
+@media only screen and (max-width: 850px) {
+  .acf-postbox-columns {
+    margin: 0;
+  }
+  .acf-postbox-columns .acf-postbox-main,
+  .acf-postbox-columns .acf-postbox-side {
+    float: none;
+    width: auto;
+    margin: 0;
+    padding: 0;
+  }
+  .acf-postbox-columns .acf-postbox-side {
+    margin-top: 1em;
+  }
+  .acf-postbox-columns .acf-postbox-side:before {
+    display: none;
+  }
+}
+/*---------------------------------------------------------------------------------------------
+*
+*  acf-panel
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-panel {
+  margin-top: -1px;
+  border-top: 1px solid #d5d9dd;
+  border-bottom: 1px solid #d5d9dd;
+  /* open */
+  /* inside postbox */
+  /* fields */
+}
+.acf-panel .acf-panel-title {
+  margin: 0;
+  padding: 12px;
+  font-weight: bold;
+  cursor: pointer;
+  font-size: inherit;
+}
+.acf-panel .acf-panel-title i {
+  float: right;
+}
+.acf-panel .acf-panel-inside {
+  margin: 0;
+  padding: 0 12px 12px;
+  display: none;
+}
+.acf-panel.-open .acf-panel-inside {
+  display: block;
+}
+.postbox .acf-panel {
+  margin-left: -12px;
+  margin-right: -12px;
+}
+.acf-panel .acf-field {
+  margin: 20px 0 0;
+}
+.acf-panel .acf-field .acf-label label {
+  color: #555d66;
+  font-weight: normal;
+}
+.acf-panel .acf-field:first-child {
+  margin-top: 0;
+}
+.acf-admin-3-8 .acf-panel {
+  border-color: #dfdfdf;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Admin Tools
+*
+*---------------------------------------------------------------------------------------------*/
+#acf-admin-tools .notice {
+  margin-top: 10px;
+}
+#acf-admin-tools .acf-meta-box-wrap {
+  /* acf-fields */
+}
+#acf-admin-tools .acf-meta-box-wrap .inside {
+  border-top: none;
+}
+#acf-admin-tools .acf-meta-box-wrap .acf-fields {
+  margin-bottom: 24px;
+  border: none;
+  background: #fff;
+  border-radius: 0;
+}
+#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-field {
+  padding: 0;
+}
+#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-label {
+  margin-bottom: 16px;
+}
+#acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-input {
+  padding-top: 16px;
+  padding-right: 16px;
+  padding-bottom: 16px;
+  padding-left: 16px;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #D0D5DD;
+  border-radius: 6px;
+}
+
+.acf-meta-box-wrap .postbox {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.acf-meta-box-wrap .postbox .inside {
+  margin-bottom: 0;
+}
+.acf-meta-box-wrap .postbox .hndle {
+  font-size: 14px;
+  padding: 8px 12px;
+  margin: 0;
+  line-height: 1.4;
+  position: relative;
+  z-index: 1;
+  cursor: default;
+}
+.acf-meta-box-wrap .postbox .handlediv,
+.acf-meta-box-wrap .postbox .handle-order-higher,
+.acf-meta-box-wrap .postbox .handle-order-lower {
+  display: none;
+}
+
+/* grid */
+.acf-meta-box-wrap.-grid {
+  margin-left: 8px;
+  margin-right: 8px;
+}
+.acf-meta-box-wrap.-grid .postbox {
+  float: left;
+  clear: left;
+  width: 50%;
+  margin: 0 0 16px;
+}
+.acf-meta-box-wrap.-grid .postbox:nth-child(odd) {
+  margin-left: -8px;
+}
+.acf-meta-box-wrap.-grid .postbox:nth-child(even) {
+  float: right;
+  clear: right;
+  margin-right: -8px;
+}
+
+/* mobile */
+@media only screen and (max-width: 850px) {
+  .acf-meta-box-wrap.-grid {
+    margin-left: 0;
+    margin-right: 0;
+  }
+  .acf-meta-box-wrap.-grid .postbox {
+    margin-left: 0 !important;
+    margin-right: 0 !important;
+    width: 100%;
+  }
+}
+/* export tool */
+#acf-admin-tool-export {
+  /* panel: selection */
+}
+#acf-admin-tool-export p {
+  max-width: 800px;
+}
+#acf-admin-tool-export ul {
+  column-width: 200px;
+}
+#acf-admin-tool-export .acf-postbox-side .button {
+  margin: 0;
+  width: 100%;
+}
+#acf-admin-tool-export textarea {
+  display: block;
+  width: 100%;
+  min-height: 500px;
+  background: #F9FAFB;
+  border-color: #D0D5DD;
+  box-shadow: none;
+  padding: 7px;
+  border-radius: 6px;
+}
+#acf-admin-tool-export .acf-panel-selection .acf-label {
+  display: none;
+}
+
+.acf-css-tooltip {
+  position: relative;
+}
+.acf-css-tooltip:before {
+  content: attr(aria-label);
+  display: none;
+  position: absolute;
+  z-index: 999;
+  bottom: 100%;
+  left: 50%;
+  transform: translate(-50%, -8px);
+  background: #191e23;
+  border-radius: 2px;
+  padding: 5px 10px;
+  color: #fff;
+  font-size: 12px;
+  line-height: 1.4em;
+  white-space: pre;
+}
+.acf-css-tooltip:after {
+  content: "";
+  display: none;
+  position: absolute;
+  z-index: 998;
+  bottom: 100%;
+  left: 50%;
+  transform: translate(-50%, 4px);
+  border: solid 6px transparent;
+  border-top-color: #191e23;
+}
+.acf-css-tooltip:hover:before, .acf-css-tooltip:hover:after, .acf-css-tooltip:focus:before, .acf-css-tooltip:focus:after {
+  display: block;
+}
+
+.acf-diff .acf-diff-title {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  height: 40px;
+  padding: 14px 16px;
+  background: #f3f3f3;
+  border-bottom: #dddddd solid 1px;
+}
+.acf-diff .acf-diff-title strong {
+  font-size: 14px;
+  display: block;
+}
+.acf-diff .acf-diff-title .acf-diff-title-left,
+.acf-diff .acf-diff-title .acf-diff-title-right {
+  width: 50%;
+  float: left;
+}
+.acf-diff .acf-diff-content {
+  position: absolute;
+  top: 70px;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  overflow: auto;
+}
+.acf-diff table.diff {
+  border-spacing: 0;
+}
+.acf-diff table.diff col.diffsplit.middle {
+  width: 0;
+}
+.acf-diff table.diff td, .acf-diff table.diff th {
+  padding-top: 0.25em;
+  padding-bottom: 0.25em;
+}
+.acf-diff table.diff tr td:nth-child(2) {
+  width: auto;
+}
+.acf-diff table.diff td:nth-child(3) {
+  border-left: #dddddd solid 1px;
+}
+@media screen and (max-width: 600px) {
+  .acf-diff .acf-diff-title {
+    height: 70px;
+  }
+  .acf-diff .acf-diff-content {
+    top: 100px;
+  }
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Modal
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-modal {
+  position: fixed;
+  top: 30px;
+  left: 30px;
+  right: 30px;
+  bottom: 30px;
+  z-index: 160000;
+  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.7);
+  background: #fcfcfc;
+}
+.acf-modal .acf-modal-title,
+.acf-modal .acf-modal-content,
+.acf-modal .acf-modal-toolbar {
+  box-sizing: border-box;
+  position: absolute;
+  left: 0;
+  right: 0;
+}
+.acf-modal .acf-modal-title {
+  height: 50px;
+  top: 0;
+  border-bottom: 1px solid #ddd;
+}
+.acf-modal .acf-modal-title h2 {
+  margin: 0;
+  padding: 0 16px;
+  line-height: 50px;
+}
+.acf-modal .acf-modal-title .acf-modal-close {
+  position: absolute;
+  top: 0;
+  right: 0;
+  height: 50px;
+  width: 50px;
+  border: none;
+  border-left: 1px solid #ddd;
+  background: transparent;
+  cursor: pointer;
+  color: #666;
+}
+.acf-modal .acf-modal-title .acf-modal-close:hover {
+  color: #00a0d2;
+}
+.acf-modal .acf-modal-content {
+  top: 50px;
+  bottom: 60px;
+  background: #fff;
+  overflow: auto;
+  padding: 16px;
+}
+.acf-modal .acf-modal-feedback {
+  position: absolute;
+  top: 50%;
+  margin: -10px 0;
+  left: 0;
+  right: 0;
+  text-align: center;
+  opacity: 0.75;
+}
+.acf-modal .acf-modal-feedback.error {
+  opacity: 1;
+  color: #b52727;
+}
+.acf-modal .acf-modal-toolbar {
+  height: 60px;
+  bottom: 0;
+  padding: 15px 16px;
+  border-top: 1px solid #ddd;
+}
+.acf-modal .acf-modal-toolbar .button {
+  float: right;
+}
+@media only screen and (max-width: 640px) {
+  .acf-modal {
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+  }
+}
+
+.acf-modal-backdrop {
+  position: fixed;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: #000;
+  opacity: 0.7;
+  z-index: 159900;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Retina
+*
+*---------------------------------------------------------------------------------------------*/
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {
+  .acf-loading,
+  .acf-spinner {
+    background-image: url(../../images/spinner@2x.gif);
+    background-size: 20px 20px;
+  }
+}
+/*--------------------------------------------------------------------------------------------
+*
+*  Wrap
+*
+*--------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .wrap {
+  margin-top: 48px;
+  margin-right: 32px;
+  margin-bottom: 0;
+  margin-left: 12px;
+}
+@media screen and (max-width: 768px) {
+  .post-type-acf-field-group .wrap {
+    margin-right: 8px;
+    margin-left: 8px;
+  }
+}
+.post-type-acf-field-group.rtl .wrap {
+  margin-right: 12px;
+  margin-left: 32px;
+}
+@media screen and (max-width: 768px) {
+  .post-type-acf-field-group.rtl .wrap {
+    margin-right: 8px;
+    margin-left: 8px;
+  }
+}
+@media screen and (max-width: 768px) {
+  .post-type-acf-field-group #wpcontent {
+    padding-left: 0;
+  }
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Admin Postbox & ACF Postbox
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .postbox,
+.post-type-acf-field-group .acf-box {
+  border: none;
+  border-radius: 8px;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+}
+.post-type-acf-field-group .postbox .inside,
+.post-type-acf-field-group .acf-box .inside {
+  padding-top: 24px;
+  padding-right: 24px;
+  padding-bottom: 24px;
+  padding-left: 24px;
+}
+.post-type-acf-field-group .postbox .acf-postbox-inner,
+.post-type-acf-field-group .acf-box .acf-postbox-inner {
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding-top: 24px;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 0;
+}
+.post-type-acf-field-group .postbox .inner,
+.post-type-acf-field-group .postbox .inside,
+.post-type-acf-field-group .acf-box .inner,
+.post-type-acf-field-group .acf-box .inside {
+  margin-top: 0 !important;
+  margin-right: 0 !important;
+  margin-bottom: 0 !important;
+  margin-left: 0 !important;
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+}
+.post-type-acf-field-group .postbox .postbox-header,
+.post-type-acf-field-group .postbox .title,
+.post-type-acf-field-group .acf-box .postbox-header,
+.post-type-acf-field-group .acf-box .title {
+  display: flex;
+  align-items: center;
+  box-sizing: border-box;
+  min-height: 64px;
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding-top: 0;
+  padding-right: 24px;
+  padding-bottom: 0;
+  padding-left: 24px;
+  border-bottom-width: 0;
+  border-bottom-style: none;
+}
+.post-type-acf-field-group .postbox .postbox-header h2,
+.post-type-acf-field-group .postbox .postbox-header h3,
+.post-type-acf-field-group .postbox .title h2,
+.post-type-acf-field-group .postbox .title h3,
+.post-type-acf-field-group .acf-box .postbox-header h2,
+.post-type-acf-field-group .acf-box .postbox-header h3,
+.post-type-acf-field-group .acf-box .title h2,
+.post-type-acf-field-group .acf-box .title h3 {
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 0;
+  color: #344054;
+}
+.post-type-acf-field-group .postbox .hndle,
+.post-type-acf-field-group .acf-box .hndle {
+  padding-top: 0;
+  padding-right: 24px;
+  padding-bottom: 0;
+  padding-left: 24px;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Custom ACF postbox header
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-postbox-header {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  box-sizing: border-box;
+  min-height: 64px;
+  margin-top: -24px;
+  margin-right: -24px;
+  margin-bottom: 0;
+  margin-left: -24px;
+  padding-top: 0;
+  padding-right: 24px;
+  padding-bottom: 0;
+  padding-left: 24px;
+  border-bottom-width: 1px;
+  border-bottom-style: solid;
+  border-bottom-color: #EAECF0;
+}
+.acf-postbox-header h2.acf-postbox-title {
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding-top: 0;
+  padding-right: 24px;
+  padding-bottom: 0;
+  padding-left: 0;
+  color: #344054;
+}
+.rtl .acf-postbox-header h2.acf-postbox-title {
+  padding-right: 0;
+  padding-left: 24px;
+}
+.acf-postbox-header .acf-icon {
+  background-color: #98A2B3;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Screen options button & screen meta container
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group #screen-meta-links {
+  margin-right: 32px;
+}
+.post-type-acf-field-group #screen-meta-links .show-settings {
+  border-color: #D0D5DD;
+}
+@media screen and (max-width: 768px) {
+  .post-type-acf-field-group #screen-meta-links {
+    margin-right: 16px;
+    margin-bottom: 0;
+  }
+}
+.post-type-acf-field-group.rtl #screen-meta-links {
+  margin-right: 0;
+  margin-left: 32px;
+}
+@media screen and (max-width: 768px) {
+  .post-type-acf-field-group.rtl #screen-meta-links {
+    margin-right: 0;
+    margin-left: 16px;
+  }
+}
+.post-type-acf-field-group #screen-meta {
+  border-color: #D0D5DD;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Postbox headings
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group #poststuff .postbox-header h2,
+.post-type-acf-field-group #poststuff .postbox-header h3 {
+  justify-content: flex-start;
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 0;
+  color: #344054 !important;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+* Postbox drag state
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group.is-dragging-metaboxes .metabox-holder .postbox-container .meta-box-sortables {
+  box-sizing: border-box;
+  padding: 2px;
+  outline: none;
+  background-image: repeating-linear-gradient(0deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px), repeating-linear-gradient(90deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px), repeating-linear-gradient(180deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px), repeating-linear-gradient(270deg, #667085, #667085 5px, transparent 5px, transparent 10px, #667085 10px);
+  background-size: 1.5px 100%, 100% 1.5px, 1.5px 100%, 100% 1.5px;
+  background-position: 0 0, 0 0, 100% 0, 0 100%;
+  background-repeat: no-repeat;
+  border-radius: 8px;
+}
+.post-type-acf-field-group .ui-sortable-placeholder {
+  border: none;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*  Search summary
+*
+*--------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .subtitle {
+  display: inline-flex;
+  align-items: center;
+  height: 24px;
+  margin: 0;
+  padding-top: 4px;
+  padding-right: 12px;
+  padding-bottom: 4px;
+  padding-left: 12px;
+  background-color: #EBF5FA;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #A5D2E7;
+  border-radius: 6px;
+}
+.post-type-acf-field-group .subtitle strong {
+  margin-left: 5px;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*  Action strip
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-actions-strip {
+  display: flex;
+}
+.acf-actions-strip .acf-btn {
+  margin-right: 8px;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*  Notices
+*
+*--------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .notice,
+.post-type-acf-field-group #lost-connection-notice {
+  position: relative;
+  box-sizing: border-box;
+  min-height: 48px;
+  margin-top: 0 !important;
+  margin-right: 0 !important;
+  margin-bottom: 16px !important;
+  margin-left: 0 !important;
+  padding-top: 13px !important;
+  padding-right: 16px !important;
+  padding-bottom: 12px !important;
+  padding-left: 50px !important;
+  background-color: #E7EFF9;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #9DBAEE;
+  border-radius: 8px;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+  color: #344054;
+}
+.post-type-acf-field-group .notice.update-nag,
+.post-type-acf-field-group #lost-connection-notice.update-nag {
+  display: block;
+  position: relative;
+  width: calc(100% - 44px);
+  margin-top: 48px !important;
+  margin-right: 44px !important;
+  margin-bottom: -32px !important;
+  margin-left: 12px !important;
+}
+.post-type-acf-field-group .notice .button,
+.post-type-acf-field-group #lost-connection-notice .button {
+  height: auto;
+  margin-left: 8px;
+  padding: 0;
+  border: none;
+}
+.post-type-acf-field-group .notice > div,
+.post-type-acf-field-group #lost-connection-notice > div {
+  margin-top: 0;
+  margin-bottom: 0;
+}
+.post-type-acf-field-group .notice p,
+.post-type-acf-field-group #lost-connection-notice p {
+  flex: 1 0 auto;
+  margin: 0;
+  padding: 0;
+}
+.post-type-acf-field-group .notice p.help,
+.post-type-acf-field-group #lost-connection-notice p.help {
+  margin-top: 0;
+  padding-top: 0;
+  color: rgba(52, 64, 84, 0.7);
+}
+.post-type-acf-field-group .notice .notice-dismiss,
+.post-type-acf-field-group #lost-connection-notice .notice-dismiss {
+  position: absolute;
+  top: 4px;
+  right: 8px;
+}
+.post-type-acf-field-group .notice .notice-dismiss:before,
+.post-type-acf-field-group #lost-connection-notice .notice-dismiss:before {
+  content: "";
+  display: block;
+  position: relative;
+  z-index: 600;
+  width: 20px;
+  height: 20px;
+  background-color: #667085;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  -webkit-mask-image: url("../../images/icons/icon-close.svg");
+  mask-image: url("../../images/icons/icon-close.svg");
+}
+.post-type-acf-field-group .notice .notice-dismiss:hover::before,
+.post-type-acf-field-group #lost-connection-notice .notice-dismiss:hover::before {
+  background-color: #344054;
+}
+.post-type-acf-field-group .notice:before,
+.post-type-acf-field-group #lost-connection-notice:before {
+  content: "";
+  display: block;
+  position: absolute;
+  top: 15px;
+  left: 18px;
+  z-index: 600;
+  width: 16px;
+  height: 16px;
+  margin-right: 8px;
+  background-color: #fff;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  -webkit-mask-image: url("../../images/icons/icon-info-solid.svg");
+  mask-image: url("../../images/icons/icon-info-solid.svg");
+}
+.post-type-acf-field-group .notice:after,
+.post-type-acf-field-group #lost-connection-notice:after {
+  content: "";
+  display: block;
+  position: absolute;
+  top: 9px;
+  left: 12px;
+  z-index: 500;
+  width: 28px;
+  height: 28px;
+  background-color: #2D69DA;
+  border-radius: 6px;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+}
+.post-type-acf-field-group .notice .local-restore,
+.post-type-acf-field-group #lost-connection-notice .local-restore {
+  align-items: center;
+  margin-top: -6px;
+  margin-bottom: 0;
+}
+.post-type-acf-field-group .notice.is-dismissible {
+  padding-right: 56px;
+}
+.post-type-acf-field-group .notice.notice-success {
+  background-color: #EDF7EF;
+  border-color: #B6DEB9;
+}
+.post-type-acf-field-group .notice.notice-success:before {
+  -webkit-mask-image: url("../../images/icons/icon-check-circle-solid.svg");
+  mask-image: url("../../images/icons/icon-check-circle-solid.svg");
+}
+.post-type-acf-field-group .notice.notice-success:after {
+  background-color: #52AA59;
+}
+.post-type-acf-field-group .notice.notice-error,
+.post-type-acf-field-group #lost-connection-notice {
+  background-color: #F7EEEB;
+  border-color: #F1B6B3;
+}
+.post-type-acf-field-group .notice.notice-error:before,
+.post-type-acf-field-group #lost-connection-notice:before {
+  -webkit-mask-image: url("../../images/icons/icon-warning.svg");
+  mask-image: url("../../images/icons/icon-warning.svg");
+}
+.post-type-acf-field-group .notice.notice-error:after,
+.post-type-acf-field-group #lost-connection-notice:after {
+  background-color: #D13737;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Global
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group #wpcontent {
+  line-height: 140%;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Links
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group a {
+  color: #0783BE;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Headings
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-h1, .post-type-acf-field-group h1,
+.acf-headerbar h1 {
+  font-size: 21px;
+  font-weight: 400;
+}
+
+.acf-h2, .acf-no-field-groups-wrapper .acf-no-field-groups-inner h2, .acf-page-title, .post-type-acf-field-group h2,
+.acf-headerbar h2 {
+  font-size: 18px;
+  font-weight: 400;
+}
+
+.acf-h3, .post-type-acf-field-group h3,
+.acf-headerbar h3, .post-type-acf-field-group .postbox .postbox-header h2,
+.post-type-acf-field-group .postbox .postbox-header h3,
+.post-type-acf-field-group .postbox .title h2,
+.post-type-acf-field-group .postbox .title h3,
+.post-type-acf-field-group .acf-box .postbox-header h2,
+.post-type-acf-field-group .acf-box .postbox-header h3,
+.post-type-acf-field-group .acf-box .title h2,
+.post-type-acf-field-group .acf-box .title h3, .acf-postbox-header h2.acf-postbox-title, .post-type-acf-field-group #poststuff .postbox-header h2,
+.post-type-acf-field-group #poststuff .postbox-header h3 {
+  font-size: 16px;
+  font-weight: 400;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Paragraphs
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .p1, .post-type-acf-field-group #acf-field-group-pro-features h1, #acf-field-group-pro-features .post-type-acf-field-group h1 {
+  font-size: 15px;
+}
+.post-type-acf-field-group .p2, .post-type-acf-field-group .acf-no-field-groups-wrapper .acf-no-field-groups-inner p, .acf-no-field-groups-wrapper .acf-no-field-groups-inner .post-type-acf-field-group p, .post-type-acf-field-group #acf-admin-tools .acf-meta-box-wrap .acf-fields .acf-label, #acf-admin-tools .acf-meta-box-wrap .acf-fields .post-type-acf-field-group .acf-label {
+  font-size: 14px;
+}
+.post-type-acf-field-group .p3, .post-type-acf-field-group .acf-admin-field-groups .wp-list-table .post-state, .acf-admin-field-groups .wp-list-table .post-type-acf-field-group .post-state, .post-type-acf-field-group .subtitle {
+  font-size: 13.5px;
+}
+.post-type-acf-field-group .p4, .post-type-acf-field-group .acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn p, .acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn .post-type-acf-field-group p, .post-type-acf-field-group #acf-update-information .form-table th, #acf-update-information .form-table .post-type-acf-field-group th,
+.post-type-acf-field-group #acf-update-information .form-table td,
+#acf-update-information .form-table .post-type-acf-field-group td, .post-type-acf-field-group #acf-admin-tools.tool-export .acf-panel h3, #acf-admin-tools.tool-export .acf-panel .post-type-acf-field-group h3, .post-type-acf-field-group .acf-btn.acf-btn-sm, .post-type-acf-field-group .acf-admin-toolbar .acf-tab, .acf-admin-toolbar .post-type-acf-field-group .acf-tab, .post-type-acf-field-group .acf-admin-field-groups .subsubsub li, .acf-admin-field-groups .subsubsub .post-type-acf-field-group li, .post-type-acf-field-group .acf-admin-field-groups .wp-list-table tbody th, .acf-admin-field-groups .wp-list-table tbody .post-type-acf-field-group th,
+.post-type-acf-field-group .acf-admin-field-groups .wp-list-table tbody td,
+.acf-admin-field-groups .wp-list-table tbody .post-type-acf-field-group td, .post-type-acf-field-group .acf-admin-field-groups .wp-list-table thead th, .acf-admin-field-groups .wp-list-table thead .post-type-acf-field-group th, .post-type-acf-field-group .acf-admin-field-groups .wp-list-table thead td, .acf-admin-field-groups .wp-list-table thead .post-type-acf-field-group td,
+.post-type-acf-field-group .acf-admin-field-groups .wp-list-table tfoot th,
+.acf-admin-field-groups .wp-list-table tfoot .post-type-acf-field-group th, .post-type-acf-field-group .acf-admin-field-groups .wp-list-table tfoot td, .acf-admin-field-groups .wp-list-table tfoot .post-type-acf-field-group td, .post-type-acf-field-group .acf-input .select2-container.-acf .select2-selection__rendered, .post-type-acf-field-group .button, .post-type-acf-field-group input[type=text],
+.post-type-acf-field-group input[type=search],
+.post-type-acf-field-group input[type=number],
+.post-type-acf-field-group textarea,
+.post-type-acf-field-group select {
+  font-size: 13px;
+}
+.post-type-acf-field-group .p5, .post-type-acf-field-group .acf-admin-field-groups .row-actions, .acf-admin-field-groups .post-type-acf-field-group .row-actions, .post-type-acf-field-group .notice .button,
+.post-type-acf-field-group #lost-connection-notice .button {
+  font-size: 12.5px;
+}
+.post-type-acf-field-group .p6, .post-type-acf-field-group #acf-update-information .acf-update-changelog p em, #acf-update-information .acf-update-changelog p .post-type-acf-field-group em, .post-type-acf-field-group .acf-no-field-groups-wrapper .acf-no-field-groups-inner p.acf-small, .acf-no-field-groups-wrapper .acf-no-field-groups-inner .post-type-acf-field-group p.acf-small, .post-type-acf-field-group .acf-admin-field-groups .row-actions, .acf-admin-field-groups .post-type-acf-field-group .row-actions, .post-type-acf-field-group .acf-small {
+  font-size: 12px;
+}
+.post-type-acf-field-group .p7, .post-type-acf-field-group .acf-tooltip, .post-type-acf-field-group .notice p.help,
+.post-type-acf-field-group #lost-connection-notice p.help {
+  font-size: 11.5px;
+}
+.post-type-acf-field-group .p8 {
+  font-size: 11px;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Page titles
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-page-title {
+  color: #344054;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Hide old / native WP titles from pages
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .acf-settings-wrap h1,
+.post-type-acf-field-group #acf-admin-tools h1 {
+  display: none;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Small
+*
+*---------------------------------------------------------------------------------------------*/
+/*---------------------------------------------------------------------------------------------
+*
+*  Link focus style
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group a:focus {
+  box-shadow: none;
+  outline: none;
+}
+
+.post-type-acf-field-group a:focus-visible {
+  box-shadow: 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(79, 148, 212, 0.8);
+  outline: 1px solid transparent;
+}
+
+.post-type-acf-field-group {
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  All Inputs
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Read only text inputs
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Number fields
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Textarea
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Select
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Radio Button & Checkbox base styling
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Radio Buttons
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Checkboxes
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Radio Buttons & Checkbox lists
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  ACF Switch
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  File input button
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Action Buttons
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Edit field group header
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Select2 inputs
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  ACF label
+  *
+  *---------------------------------------------------------------------------------------------*/
+  /*---------------------------------------------------------------------------------------------
+  *
+  *  Tooltip for field name field setting (result of a fix for keyboard navigation)
+  *
+  *---------------------------------------------------------------------------------------------*/
+}
+.post-type-acf-field-group input[type=text],
+.post-type-acf-field-group input[type=search],
+.post-type-acf-field-group input[type=number],
+.post-type-acf-field-group textarea,
+.post-type-acf-field-group select {
+  box-sizing: border-box;
+  height: 40px;
+  padding-right: 12px;
+  padding-left: 12px;
+  background-color: #fff;
+  border-color: #D0D5DD;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+  border-radius: 6px;
+  color: #344054;
+}
+.post-type-acf-field-group input[type=text]:focus,
+.post-type-acf-field-group input[type=search]:focus,
+.post-type-acf-field-group input[type=number]:focus,
+.post-type-acf-field-group textarea:focus,
+.post-type-acf-field-group select:focus {
+  outline: 3px solid #EBF5FA;
+  border-color: #399CCB;
+}
+.post-type-acf-field-group input[type=text]:disabled,
+.post-type-acf-field-group input[type=search]:disabled,
+.post-type-acf-field-group input[type=number]:disabled,
+.post-type-acf-field-group textarea:disabled,
+.post-type-acf-field-group select:disabled {
+  background-color: #F9FAFB;
+  color: #808a9e;
+}
+.post-type-acf-field-group input[type=text]::placeholder,
+.post-type-acf-field-group input[type=search]::placeholder,
+.post-type-acf-field-group input[type=number]::placeholder,
+.post-type-acf-field-group textarea::placeholder,
+.post-type-acf-field-group select::placeholder {
+  color: #98A2B3;
+}
+.post-type-acf-field-group input[type=text]:read-only {
+  background-color: #F9FAFB;
+  color: #98A2B3;
+}
+.post-type-acf-field-group .acf-field.acf-field-number .acf-label,
+.post-type-acf-field-group .acf-field.acf-field-number .acf-input input[type=number] {
+  max-width: 180px;
+}
+.post-type-acf-field-group textarea {
+  box-sizing: border-box;
+  padding-top: 10px;
+  padding-bottom: 10px;
+  height: 80px;
+  min-height: 56px;
+}
+.post-type-acf-field-group select {
+  min-width: 160px;
+  max-width: 100%;
+  padding-right: 40px;
+  padding-left: 12px;
+  background-image: url("../../images/icons/icon-chevron-down.svg");
+  background-position: right 10px top 50%;
+  background-size: 20px;
+}
+.post-type-acf-field-group select:hover, .post-type-acf-field-group select:focus {
+  color: #0783BE;
+}
+.post-type-acf-field-group select::before {
+  content: "";
+  display: block;
+  position: absolute;
+  top: 5px;
+  left: 5px;
+  width: 20px;
+  height: 20px;
+  background-color: red;
+}
+.post-type-acf-field-group.rtl select {
+  padding-right: 12px;
+  padding-left: 40px;
+  background-position: left 10px top 50%;
+}
+.post-type-acf-field-group input[type=radio],
+.post-type-acf-field-group input[type=checkbox] {
+  box-sizing: border-box;
+  width: 16px;
+  height: 16px;
+  padding: 0;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #98A2B3;
+  background: #fff;
+  box-shadow: none;
+}
+.post-type-acf-field-group input[type=radio]:hover,
+.post-type-acf-field-group input[type=checkbox]:hover {
+  background-color: #EBF5FA;
+  border-color: #0783BE;
+}
+.post-type-acf-field-group input[type=radio]:checked, .post-type-acf-field-group input[type=radio]:focus-visible,
+.post-type-acf-field-group input[type=checkbox]:checked,
+.post-type-acf-field-group input[type=checkbox]:focus-visible {
+  background-color: #EBF5FA;
+  border-color: #0783BE;
+}
+.post-type-acf-field-group input[type=radio]:checked:before, .post-type-acf-field-group input[type=radio]:focus-visible:before,
+.post-type-acf-field-group input[type=checkbox]:checked:before,
+.post-type-acf-field-group input[type=checkbox]:focus-visible:before {
+  content: "";
+  position: relative;
+  top: -1px;
+  left: -1px;
+  width: 16px;
+  height: 16px;
+  margin: 0;
+  padding: 0;
+  background-color: transparent;
+  background-size: cover;
+  background-repeat: no-repeat;
+  background-position: center;
+}
+.post-type-acf-field-group input[type=radio]:active,
+.post-type-acf-field-group input[type=checkbox]:active {
+  box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 0px 0px rgba(255, 54, 54, 0.25);
+}
+.post-type-acf-field-group input[type=radio]:disabled,
+.post-type-acf-field-group input[type=checkbox]:disabled {
+  background-color: #F9FAFB;
+  border-color: #D0D5DD;
+}
+.post-type-acf-field-group.rtl input[type=radio]:checked:before, .post-type-acf-field-group.rtl input[type=radio]:focus-visible:before,
+.post-type-acf-field-group.rtl input[type=checkbox]:checked:before,
+.post-type-acf-field-group.rtl input[type=checkbox]:focus-visible:before {
+  left: 1px;
+}
+.post-type-acf-field-group input[type=radio]:checked:before, .post-type-acf-field-group input[type=radio]:focus:before {
+  background-image: url("../../images/field-states/radio-active.svg");
+}
+.post-type-acf-field-group input[type=checkbox]:checked:before, .post-type-acf-field-group input[type=checkbox]:focus:before {
+  background-image: url("../../images/field-states/checkbox-active.svg");
+}
+.post-type-acf-field-group .acf-radio-list li input[type=radio],
+.post-type-acf-field-group .acf-radio-list li input[type=checkbox],
+.post-type-acf-field-group .acf-checkbox-list li input[type=radio],
+.post-type-acf-field-group .acf-checkbox-list li input[type=checkbox] {
+  margin-right: 6px;
+}
+.post-type-acf-field-group .acf-radio-list.acf-bl li,
+.post-type-acf-field-group .acf-checkbox-list.acf-bl li {
+  margin-bottom: 8px;
+}
+.post-type-acf-field-group .acf-radio-list.acf-bl li:last-of-type,
+.post-type-acf-field-group .acf-checkbox-list.acf-bl li:last-of-type {
+  margin-bottom: 0;
+}
+.post-type-acf-field-group .acf-radio-list label,
+.post-type-acf-field-group .acf-checkbox-list label {
+  display: flex;
+  align-items: center;
+  align-content: center;
+}
+.post-type-acf-field-group .acf-switch {
+  width: 42px;
+  height: 24px;
+  border: none;
+  background-color: #D0D5DD;
+  border-radius: 12px;
+}
+.post-type-acf-field-group .acf-switch:hover {
+  background-color: #98A2B3;
+}
+.post-type-acf-field-group .acf-switch:active {
+  box-shadow: 0px 0px 0px 3px #EBF5FA, 0px 0px 0px rgba(255, 54, 54, 0.25);
+}
+.post-type-acf-field-group .acf-switch.-on {
+  background-color: #0783BE;
+}
+.post-type-acf-field-group .acf-switch.-on:hover {
+  background-color: #066998;
+}
+.post-type-acf-field-group .acf-switch.-on .acf-switch-slider {
+  left: 20px;
+}
+.post-type-acf-field-group .acf-switch .acf-switch-off,
+.post-type-acf-field-group .acf-switch .acf-switch-on {
+  visibility: hidden;
+}
+.post-type-acf-field-group .acf-switch .acf-switch-slider {
+  width: 20px;
+  height: 20px;
+  border: none;
+  border-radius: 100px;
+  box-shadow: 0px 1px 3px rgba(16, 24, 40, 0.1), 0px 1px 2px rgba(16, 24, 40, 0.06);
+}
+.post-type-acf-field-group .acf-field-true-false {
+  display: flex;
+  align-items: flex-start;
+}
+.post-type-acf-field-group .acf-field-true-false .acf-label {
+  order: 2;
+  display: block;
+  align-items: center;
+  margin-top: 2px;
+  margin-bottom: 0;
+  margin-left: 12px;
+}
+.post-type-acf-field-group .acf-field-true-false .acf-label label {
+  margin-bottom: 0;
+}
+.post-type-acf-field-group .acf-field-true-false .acf-label .acf-tip {
+  margin-left: 12px;
+}
+.post-type-acf-field-group .acf-field-true-false .acf-label .description {
+  display: block;
+  margin-top: 2px;
+  margin-left: 0;
+}
+.post-type-acf-field-group.rtl .acf-field-true-false .acf-label {
+  margin-right: 12px;
+  margin-left: 0;
+}
+.post-type-acf-field-group.rtl .acf-field-true-false .acf-tip {
+  margin-right: 12px;
+  margin-left: 0;
+}
+.post-type-acf-field-group input::file-selector-button {
+  box-sizing: border-box;
+  min-height: 40px;
+  margin-right: 16px;
+  padding-top: 8px;
+  padding-right: 16px;
+  padding-bottom: 8px;
+  padding-left: 16px;
+  background-color: transparent;
+  color: #0783BE !important;
+  border-radius: 6px;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #0783BE;
+  text-decoration: none;
+}
+.post-type-acf-field-group input::file-selector-button:hover {
+  border-color: #066998;
+  cursor: pointer;
+  color: #066998 !important;
+}
+.post-type-acf-field-group .button {
+  display: inline-flex;
+  align-items: center;
+  height: 40px;
+  padding-right: 16px;
+  padding-left: 16px;
+  background-color: transparent;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #0783BE;
+  border-radius: 6px;
+  color: #0783BE;
+}
+.post-type-acf-field-group .button:hover {
+  background-color: #f3f9fc;
+  border-color: #0783BE;
+  color: #0783BE;
+}
+.post-type-acf-field-group .button:focus {
+  background-color: #f3f9fc;
+  outline: 3px solid #EBF5FA;
+  color: #0783BE;
+}
+.post-type-acf-field-group .edit-field-group-header {
+  display: block !important;
+}
+.post-type-acf-field-group .acf-input .select2-container.-acf .select2-selection {
+  border: none;
+  line-height: 1;
+}
+.post-type-acf-field-group .acf-input .select2-container.-acf .select2-selection__rendered {
+  box-sizing: border-box;
+  padding-right: 0;
+  padding-left: 0;
+  background-color: #fff;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #D0D5DD;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+  border-radius: 6px;
+  color: #344054;
+}
+.post-type-acf-field-group .acf-input .select2-container--focus {
+  outline: 3px solid #EBF5FA;
+  border-color: #399CCB;
+  border-radius: 6px;
+}
+.post-type-acf-field-group .acf-input .select2-container--focus .select2-selection__rendered {
+  border-color: #399CCB !important;
+}
+.post-type-acf-field-group .acf-input .select2-container--focus.select2-container--below.select2-container--open .select2-selection__rendered {
+  border-bottom-right-radius: 0 !important;
+  border-bottom-left-radius: 0 !important;
+}
+.post-type-acf-field-group .acf-input .select2-container--focus.select2-container--above.select2-container--open .select2-selection__rendered {
+  border-top-right-radius: 0 !important;
+  border-top-left-radius: 0 !important;
+}
+.post-type-acf-field-group .acf-input .select2-container .select2-search--inline .select2-search__field {
+  margin: 0;
+  padding-left: 6px;
+}
+.post-type-acf-field-group .acf-input .select2-container .select2-search--inline .select2-search__field:focus {
+  outline: none;
+  border: none;
+}
+.post-type-acf-field-group .acf-input .select2-container--default .select2-selection--multiple .select2-selection__rendered {
+  padding-top: 0;
+  padding-right: 6px;
+  padding-bottom: 0;
+  padding-left: 6px;
+}
+.post-type-acf-field-group .acf-input .select2-selection__clear {
+  width: 18px;
+  height: 18px;
+  margin-top: 12px;
+  margin-right: 0;
+  text-indent: 100%;
+  white-space: nowrap;
+  overflow: hidden;
+}
+.post-type-acf-field-group .acf-input .select2-selection__clear:before {
+  content: "";
+  display: block;
+  width: 14px;
+  height: 14px;
+  top: 0;
+  left: 0;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  -webkit-mask-image: url("../../images/icons/icon-close.svg");
+  mask-image: url("../../images/icons/icon-close.svg");
+  background-color: #98A2B3;
+}
+.post-type-acf-field-group .acf-input .select2-selection__clear:hover::before {
+  background-color: #1D2939;
+}
+.post-type-acf-field-group .acf-label {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+.post-type-acf-field-group .acf-label .acf-icon-help {
+  width: 18px;
+  height: 18px;
+  background-color: #98A2B3;
+}
+.post-type-acf-field-group .acf-label label {
+  margin-bottom: 0;
+}
+.post-type-acf-field-group .acf-label .description {
+  margin-top: 2px;
+}
+.post-type-acf-field-group .acf-field-setting-name .acf-tip {
+  position: absolute;
+  top: 0;
+  left: 654px;
+  color: #98A2B3;
+}
+.post-type-acf-field-group .acf-field-setting-name .acf-tip .acf-icon-help {
+  width: 18px;
+  height: 18px;
+}
+
+.rtl.post-type-acf-field-group .acf-field-setting-name .acf-tip {
+  left: auto;
+  right: 654px;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Field Groups
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-admin-field-groups .tablenav.top {
+  display: none;
+}
+.acf-admin-field-groups .subsubsub {
+  margin-bottom: 3px;
+}
+.acf-admin-field-groups .wp-list-table {
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+  border-radius: 8px;
+  border: none;
+  overflow: hidden;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+}
+.acf-admin-field-groups .wp-list-table strong {
+  color: #98A2B3;
+  margin: 0;
+}
+.acf-admin-field-groups .wp-list-table a.row-title {
+  font-size: 13px !important;
+  font-weight: 500;
+}
+.acf-admin-field-groups .wp-list-table th,
+.acf-admin-field-groups .wp-list-table td {
+  color: #344054;
+}
+.acf-admin-field-groups .wp-list-table th.sortable a,
+.acf-admin-field-groups .wp-list-table td.sortable a {
+  padding: 0;
+}
+.acf-admin-field-groups .wp-list-table th.check-column,
+.acf-admin-field-groups .wp-list-table td.check-column {
+  padding-top: 12px;
+  padding-right: 16px;
+  padding-left: 16px;
+}
+@media screen and (max-width: 880px) {
+  .acf-admin-field-groups .wp-list-table th.check-column,
+  .acf-admin-field-groups .wp-list-table td.check-column {
+    vertical-align: top;
+    padding-right: 2px;
+    padding-left: 10px;
+  }
+}
+.acf-admin-field-groups .wp-list-table th input,
+.acf-admin-field-groups .wp-list-table td input {
+  margin: 0;
+  padding: 0;
+}
+.acf-admin-field-groups .wp-list-table thead th, .acf-admin-field-groups .wp-list-table thead td,
+.acf-admin-field-groups .wp-list-table tfoot th, .acf-admin-field-groups .wp-list-table tfoot td {
+  height: 48px;
+  padding-right: 24px;
+  padding-left: 24px;
+  box-sizing: border-box;
+  background-color: #F9FAFB;
+  border-color: #EAECF0;
+  font-weight: 500;
+}
+@media screen and (max-width: 880px) {
+  .acf-admin-field-groups .wp-list-table thead th, .acf-admin-field-groups .wp-list-table thead td,
+  .acf-admin-field-groups .wp-list-table tfoot th, .acf-admin-field-groups .wp-list-table tfoot td {
+    padding-right: 16px;
+    padding-left: 8px;
+  }
+}
+@media screen and (max-width: 880px) {
+  .acf-admin-field-groups .wp-list-table thead th.check-column, .acf-admin-field-groups .wp-list-table thead td.check-column,
+  .acf-admin-field-groups .wp-list-table tfoot th.check-column, .acf-admin-field-groups .wp-list-table tfoot td.check-column {
+    vertical-align: middle;
+  }
+}
+.acf-admin-field-groups .wp-list-table tbody th,
+.acf-admin-field-groups .wp-list-table tbody td {
+  box-sizing: border-box;
+  height: 60px;
+  padding-top: 10px;
+  padding-right: 24px;
+  padding-bottom: 10px;
+  padding-left: 24px;
+  vertical-align: top;
+  background-color: #fff;
+  border-bottom-width: 1px;
+  border-bottom-color: #EAECF0;
+  border-bottom-style: solid;
+}
+@media screen and (max-width: 880px) {
+  .acf-admin-field-groups .wp-list-table tbody th,
+  .acf-admin-field-groups .wp-list-table tbody td {
+    padding-right: 16px;
+    padding-left: 8px;
+  }
+}
+.acf-admin-field-groups .wp-list-table .column-acf-key {
+  white-space: nowrap;
+}
+.acf-admin-field-groups .wp-list-table .column-acf-key .acf-icon-key-solid {
+  display: inline-block;
+  position: relative;
+  bottom: -2px;
+  width: 15px;
+  height: 15px;
+  margin-right: 4px;
+  color: #98A2B3;
+}
+.acf-admin-field-groups .wp-list-table .acf-location .dashicons {
+  position: relative;
+  bottom: -2px;
+  width: 16px;
+  height: 16px;
+  margin-right: 6px;
+  font-size: 16px;
+  color: #98A2B3;
+}
+.acf-admin-field-groups .wp-list-table .post-state {
+  color: #667085;
+}
+.acf-admin-field-groups .wp-list-table tr:hover,
+.acf-admin-field-groups .wp-list-table tr:focus-within {
+  background: #f7f7f7;
+}
+.acf-admin-field-groups .wp-list-table tr:hover .row-actions,
+.acf-admin-field-groups .wp-list-table tr:focus-within .row-actions {
+  margin-bottom: 0;
+}
+@media screen and (min-width: 782px) {
+  .acf-admin-field-groups .wp-list-table .column-acf-count {
+    width: 10%;
+  }
+}
+.acf-admin-field-groups .wp-list-table .row-actions span.file {
+  display: block;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
+.acf-admin-field-groups.rtl .wp-list-table .column-acf-key .acf-icon-key-solid {
+  margin-left: 4px;
+  margin-right: 0;
+}
+.acf-admin-field-groups.rtl .wp-list-table .acf-location .dashicons {
+  margin-left: 6px;
+  margin-right: 0;
+}
+.acf-admin-field-groups .row-actions {
+  margin-top: 2px;
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 0;
+  line-height: 14px;
+  color: #D0D5DD;
+}
+.acf-admin-field-groups .row-actions .trash a {
+  color: #d94f4f;
+}
+.acf-admin-field-groups .widefat thead td.check-column,
+.acf-admin-field-groups .widefat tfoot td.check-column {
+  padding-top: 0;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Row actions
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-admin-field-groups .row-actions a:hover {
+  color: #044767;
+}
+.acf-admin-field-groups .row-actions .trash a {
+  color: #a00;
+}
+.acf-admin-field-groups .row-actions .trash a:hover {
+  color: #f00;
+}
+.acf-admin-field-groups .row-actions.visible {
+  margin-bottom: 0;
+  opacity: 1;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Row hover
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-admin-field-groups #the-list tr:hover td,
+.acf-admin-field-groups #the-list tr:hover th {
+  background-color: #f7fbfd;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Table Nav
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-admin-field-groups .tablenav {
+  margin-top: 24px;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 0;
+  color: #667085;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Search box
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-admin-field-groups #posts-filter p.search-box {
+  margin-top: 5px;
+  margin-right: 0;
+  margin-bottom: 24px;
+  margin-left: 0;
+}
+.acf-admin-field-groups #posts-filter p.search-box #post-search-input {
+  min-width: 280px;
+  margin-top: 0;
+  margin-right: 8px;
+  margin-bottom: 0;
+  margin-left: 0;
+}
+@media screen and (max-width: 768px) {
+  .acf-admin-field-groups #posts-filter p.search-box {
+    display: flex;
+    box-sizing: border-box;
+    padding-right: 24px;
+    margin-right: 16px;
+  }
+  .acf-admin-field-groups #posts-filter p.search-box #post-search-input {
+    min-width: auto;
+  }
+}
+
+.rtl.acf-admin-field-groups #posts-filter p.search-box #post-search-input {
+  margin-right: 0;
+  margin-left: 8px;
+}
+@media screen and (max-width: 768px) {
+  .rtl.acf-admin-field-groups #posts-filter p.search-box {
+    padding-left: 24px;
+    padding-right: 0;
+    margin-left: 16px;
+    margin-right: 0;
+  }
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Status tabs
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-admin-field-groups .subsubsub {
+  display: flex;
+  align-items: flex-end;
+  height: 40px;
+  margin-bottom: 16px;
+}
+.acf-admin-field-groups .subsubsub li {
+  margin-top: 0;
+  margin-right: 4px;
+  color: #98A2B3;
+}
+.acf-admin-field-groups .subsubsub li .count {
+  color: #667085;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Pagination
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-admin-field-groups .tablenav-pages {
+  display: flex;
+  align-items: center;
+}
+.acf-admin-field-groups .tablenav-pages .displaying-num {
+  margin-top: 0;
+  margin-right: 16px;
+  margin-bottom: 0;
+  margin-left: 0;
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links {
+  display: flex;
+  align-items: center;
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links #table-paging {
+  margin-top: 0;
+  margin-right: 4px;
+  margin-bottom: 0;
+  margin-left: 8px;
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links #table-paging .total-pages {
+  margin-right: 0;
+}
+.acf-admin-field-groups .tablenav-pages.one-page .pagination-links {
+  display: none;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Pagination buttons & icons
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-admin-field-groups .tablenav-pages .pagination-links .button {
+  display: inline-flex;
+  align-items: center;
+  align-content: center;
+  justify-content: center;
+  min-width: 40px;
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 0;
+  background-color: transparent;
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links .button:nth-child(1), .acf-admin-field-groups .tablenav-pages .pagination-links .button:nth-child(2), .acf-admin-field-groups .tablenav-pages .pagination-links .button:last-child, .acf-admin-field-groups .tablenav-pages .pagination-links .button:nth-last-child(2) {
+  display: inline-block;
+  position: relative;
+  text-indent: 100%;
+  white-space: nowrap;
+  overflow: hidden;
+  margin-left: 4px;
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links .button:nth-child(1):before, .acf-admin-field-groups .tablenav-pages .pagination-links .button:nth-child(2):before, .acf-admin-field-groups .tablenav-pages .pagination-links .button:last-child:before, .acf-admin-field-groups .tablenav-pages .pagination-links .button:nth-last-child(2):before {
+  content: "";
+  display: block;
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  top: 0;
+  left: 0;
+  background-color: #0783BE;
+  border-radius: 0;
+  -webkit-mask-size: 20px;
+  mask-size: 20px;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links .button:nth-child(1):before {
+  -webkit-mask-image: url("../../images/icons/icon-chevron-left-double.svg");
+  mask-image: url("../../images/icons/icon-chevron-left-double.svg");
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links .button:nth-child(2):before {
+  -webkit-mask-image: url("../../images/icons/icon-chevron-left.svg");
+  mask-image: url("../../images/icons/icon-chevron-left.svg");
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links .button:nth-last-child(2):before {
+  -webkit-mask-image: url("../../images/icons/icon-chevron-right.svg");
+  mask-image: url("../../images/icons/icon-chevron-right.svg");
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links .button:last-child:before {
+  -webkit-mask-image: url("../../images/icons/icon-chevron-right-double.svg");
+  mask-image: url("../../images/icons/icon-chevron-right-double.svg");
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links .button:hover {
+  border-color: #066998;
+  background-color: rgba(7, 131, 190, 0.05);
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links .button:hover:before {
+  background-color: #066998;
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links .button.disabled {
+  background-color: transparent !important;
+}
+.acf-admin-field-groups .tablenav-pages .pagination-links .button.disabled.disabled:before {
+  background-color: #D0D5DD;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Empty state
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-no-field-groups-wrapper {
+  display: flex;
+  justify-content: center;
+  padding-top: 48px;
+  padding-bottom: 48px;
+}
+.acf-no-field-groups-wrapper .acf-no-field-groups-inner {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+  align-content: center;
+  align-items: flex-start;
+  text-align: center;
+  max-width: 380px;
+  min-height: 320px;
+}
+.acf-no-field-groups-wrapper .acf-no-field-groups-inner img,
+.acf-no-field-groups-wrapper .acf-no-field-groups-inner h2,
+.acf-no-field-groups-wrapper .acf-no-field-groups-inner p {
+  flex: 1 0 100%;
+}
+.acf-no-field-groups-wrapper .acf-no-field-groups-inner h2 {
+  margin-top: 32px;
+  margin-bottom: 0;
+  padding: 0;
+  color: #344054;
+}
+.acf-no-field-groups-wrapper .acf-no-field-groups-inner p {
+  margin-top: 12px;
+  margin-bottom: 0;
+  padding: 0;
+  color: #667085;
+}
+.acf-no-field-groups-wrapper .acf-no-field-groups-inner p.acf-small {
+  display: block;
+  position: relative;
+  margin-top: 32px;
+}
+.acf-no-field-groups-wrapper .acf-no-field-groups-inner img {
+  max-width: 284px;
+  margin-bottom: 0;
+}
+.acf-no-field-groups-wrapper .acf-no-field-groups-inner .acf-btn {
+  margin-top: 32px;
+}
+
+.acf-no-field-groups #the-list tr:hover td,
+.acf-no-field-groups #the-list tr:hover th,
+.acf-no-field-groups .acf-admin-field-groups .wp-list-table tr:hover,
+.acf-no-field-groups .striped > tbody > :nth-child(odd), .acf-no-field-groups ul.striped > :nth-child(odd), .acf-no-field-groups .alternate {
+  background-color: transparent !important;
+}
+.acf-no-field-groups .wp-list-table thead,
+.acf-no-field-groups .wp-list-table tfoot {
+  display: none;
+}
+.acf-no-field-groups .no-pages {
+  display: none;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Small screen list table info toggle
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .wp-list-table .toggle-row:before {
+  top: 4px;
+  left: 16px;
+  border-radius: 0;
+  content: "";
+  display: block;
+  position: absolute;
+  width: 16px;
+  height: 16px;
+  background-color: #0783BE;
+  border-radius: 0;
+  -webkit-mask-size: 20px;
+  mask-size: 20px;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg");
+  mask-image: url("../../images/icons/icon-chevron-down.svg");
+  text-indent: 100%;
+  white-space: nowrap;
+  overflow: hidden;
+}
+.post-type-acf-field-group .wp-list-table .is-expanded .toggle-row:before {
+  -webkit-mask-image: url("../../images/icons/icon-chevron-up.svg");
+  mask-image: url("../../images/icons/icon-chevron-up.svg");
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Small screen checkbox
+*
+*---------------------------------------------------------------------------------------------*/
+@media screen and (max-width: 880px) {
+  .post-type-acf-field-group .widefat th input[type=checkbox],
+  .post-type-acf-field-group .widefat thead td input[type=checkbox],
+  .post-type-acf-field-group .widefat tfoot td input[type=checkbox] {
+    margin-bottom: 0;
+  }
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Admin Navigation
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-admin-toolbar {
+  display: flex;
+  justify-content: flex-start;
+  align-content: center;
+  align-items: center;
+  position: unset;
+  top: 32px;
+  height: 72px;
+  z-index: 800;
+  background: #344054;
+  color: #98A2B3;
+}
+@media screen and (max-width: 880px) {
+  .acf-admin-toolbar {
+    position: static;
+  }
+}
+.acf-admin-toolbar .acf-logo {
+  margin-right: 32px;
+}
+.acf-admin-toolbar .acf-logo img {
+  display: block;
+  max-width: 55px;
+  line-height: 0%;
+}
+.acf-admin-toolbar h2 {
+  display: none;
+  color: #F9FAFB;
+}
+.acf-admin-toolbar .acf-tab {
+  display: flex;
+  align-items: center;
+  box-sizing: border-box;
+  min-height: 40px;
+  margin-right: 8px;
+  padding-top: 8px;
+  padding-right: 16px;
+  padding-bottom: 8px;
+  padding-left: 16px;
+  border-width: 1px;
+  border-style: solid;
+  border-color: transparent;
+  border-radius: 6px;
+  color: #98A2B3;
+  text-decoration: none;
+}
+.acf-admin-toolbar .acf-tab.is-active {
+  background-color: #475467;
+  color: #fff;
+}
+.acf-admin-toolbar .acf-tab:hover {
+  background-color: #475467;
+  color: #F9FAFB;
+}
+.acf-admin-toolbar .acf-tab:focus-visible {
+  border-width: 1px;
+  border-style: solid;
+  border-color: #667085;
+}
+.acf-admin-toolbar .acf-tab:focus {
+  box-shadow: none;
+}
+#wpcontent .acf-admin-toolbar {
+  box-sizing: border-box;
+  margin-left: -20px;
+  padding-top: 16px;
+  padding-right: 32px;
+  padding-bottom: 16px;
+  padding-left: 32px;
+}
+@media screen and (max-width: 600px) {
+  .acf-admin-toolbar {
+    display: none;
+  }
+}
+
+.rtl #wpcontent .acf-admin-toolbar {
+  margin-left: 0;
+  margin-right: -20px;
+}
+.rtl #wpcontent .acf-admin-toolbar .acf-tab {
+  margin-left: 8px;
+  margin-right: 0;
+}
+.rtl .acf-logo {
+  margin-right: 0;
+  margin-left: 32px;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Admin Toolbar Icons
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-admin-toolbar .acf-tab i.acf-icon {
+  display: none;
+  margin-right: 8px;
+  margin-left: -2px;
+}
+.acf-admin-toolbar .acf-tab.acf-header-tab-acf-field-group i.acf-icon, .acf-admin-toolbar .acf-tab.acf-header-tab-acf-tools i.acf-icon, .acf-admin-toolbar .acf-tab.acf-header-tab-acf-settings-updates i.acf-icon {
+  display: inline-flex;
+}
+.acf-admin-toolbar .acf-tab.is-active i.acf-icon, .acf-admin-toolbar .acf-tab:hover i.acf-icon {
+  background-color: #EAECF0;
+}
+.rtl .acf-admin-toolbar .acf-tab i.acf-icon {
+  margin-right: -2px;
+  margin-left: 8px;
+}
+.acf-admin-toolbar .acf-header-tab-acf-field-group i.acf-icon {
+  -webkit-mask-image: url("../../images/icons/icon-field-groups.svg");
+  mask-image: url("../../images/icons/icon-field-groups.svg");
+}
+.acf-admin-toolbar .acf-header-tab-acf-tools i.acf-icon {
+  -webkit-mask-image: url("../../images/icons/icon-tools.svg");
+  mask-image: url("../../images/icons/icon-tools.svg");
+}
+.acf-admin-toolbar .acf-header-tab-acf-settings-updates i.acf-icon {
+  -webkit-mask-image: url("../../images/icons/icon-updates.svg");
+  mask-image: url("../../images/icons/icon-updates.svg");
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Hide WP default controls
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group h1.wp-heading-inline {
+  display: none;
+}
+.post-type-acf-field-group .wrap .wp-heading-inline + .page-title-action {
+  display: none;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Headerbar
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-headerbar {
+  display: flex;
+  align-items: center;
+  position: sticky;
+  top: 32px;
+  z-index: 700;
+  box-sizing: border-box;
+  min-height: 72px;
+  margin-left: -20px;
+  padding-top: 8px;
+  padding-right: 32px;
+  padding-bottom: 8px;
+  padding-left: 32px;
+  background-color: #fff;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+}
+.acf-headerbar .acf-headerbar-inner {
+  flex: 1 1 auto;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  max-width: 1440px;
+}
+.acf-headerbar .acf-page-title {
+  margin-top: 0;
+  margin-right: 16px;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-left: 0;
+}
+@media screen and (max-width: 880px) {
+  .acf-headerbar {
+    position: static;
+  }
+}
+@media screen and (max-width: 600px) {
+  .acf-headerbar {
+    justify-content: space-between;
+    position: relative;
+    top: 46px;
+    min-height: 64px;
+    padding-right: 12px;
+  }
+}
+.acf-headerbar .acf-headerbar-content {
+  flex: 1 1 auto;
+  display: flex;
+  align-items: center;
+}
+@media screen and (max-width: 880px) {
+  .acf-headerbar .acf-headerbar-content {
+    flex-wrap: wrap;
+  }
+  .acf-headerbar .acf-headerbar-content .acf-headerbar-title,
+  .acf-headerbar .acf-headerbar-content .acf-title-wrap {
+    flex: 1 1 100%;
+  }
+  .acf-headerbar .acf-headerbar-content .acf-title-wrap {
+    margin-top: 8px;
+  }
+}
+.acf-headerbar .acf-input-error {
+  border: 1px rgba(209, 55, 55, 0.5) solid !important;
+  box-shadow: 0px 0px 0px 3px rgba(209, 55, 55, 0.12), 0px 0px 0px rgba(255, 54, 54, 0.25) !important;
+  background-image: url("../../images/icons/icon-warning-alt-red.svg");
+  background-position: right 10px top 50%;
+  background-size: 20px;
+  background-repeat: no-repeat;
+}
+.acf-headerbar .acf-input-error:focus {
+  outline: none !important;
+  border: 1px rgba(209, 55, 55, 0.8) solid !important;
+  box-shadow: 0px 0px 0px 3px rgba(209, 55, 55, 0.16), 0px 0px 0px rgba(255, 54, 54, 0.25) !important;
+}
+.acf-headerbar .acf-headerbar-title-field {
+  min-width: 320px;
+}
+@media screen and (max-width: 880px) {
+  .acf-headerbar .acf-headerbar-title-field {
+    min-width: 100%;
+  }
+}
+.acf-headerbar .acf-headerbar-actions {
+  display: flex;
+}
+.acf-headerbar .acf-headerbar-actions .acf-btn {
+  margin-left: 8px;
+}
+.acf-headerbar .acf-headerbar-actions .disabled {
+  background-color: #F2F4F7;
+  color: #98A2B3 !important;
+  border: 1px #D0D5DD solid;
+  cursor: default;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Edit Field Group Headerbar
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-headerbar-field-editor {
+  position: sticky;
+  top: 32px;
+  z-index: 700;
+  margin-left: -20px;
+  width: calc(100% + 20px);
+}
+@media screen and (max-width: 880px) {
+  .acf-headerbar-field-editor {
+    position: relative;
+    top: 0;
+    width: 100%;
+    margin-left: 0;
+    padding-right: 8px;
+    padding-left: 8px;
+  }
+}
+@media screen and (max-width: 640px) {
+  .acf-headerbar-field-editor {
+    position: relative;
+    top: 46px;
+  }
+}
+@media screen and (max-width: 880px) {
+  .acf-headerbar-field-editor .acf-headerbar-inner {
+    flex-wrap: wrap;
+    justify-content: flex-start;
+    align-content: flex-start;
+    align-items: flex-start;
+    width: 100%;
+  }
+  .acf-headerbar-field-editor .acf-headerbar-inner .acf-page-title {
+    flex: 1 1 auto;
+  }
+  .acf-headerbar-field-editor .acf-headerbar-inner .acf-headerbar-actions {
+    flex: 1 1 100%;
+    margin-top: 8px;
+    gap: 8px;
+  }
+  .acf-headerbar-field-editor .acf-headerbar-inner .acf-headerbar-actions .acf-btn {
+    width: 100%;
+    display: inline-flex;
+    justify-content: center;
+    margin: 0;
+  }
+}
+.acf-headerbar-field-editor .acf-page-title {
+  margin-right: 16px;
+}
+
+.rtl .acf-headerbar,
+.rtl .acf-headerbar-field-editor {
+  margin-left: 0;
+  margin-right: -20px;
+}
+.rtl .acf-headerbar .acf-page-title,
+.rtl .acf-headerbar-field-editor .acf-page-title {
+  margin-left: 16px;
+  margin-right: 0;
+}
+.rtl .acf-headerbar .acf-headerbar-actions .acf-btn,
+.rtl .acf-headerbar-field-editor .acf-headerbar-actions .acf-btn {
+  margin-left: 0;
+  margin-right: 8px;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  ACF Buttons
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-btn {
+  display: inline-flex;
+  align-items: center;
+  box-sizing: border-box;
+  min-height: 40px;
+  padding-top: 8px;
+  padding-right: 16px;
+  padding-bottom: 8px;
+  padding-left: 16px;
+  background-color: #0783BE;
+  border-radius: 6px;
+  border-width: 1px;
+  border-style: solid;
+  border-color: rgba(16, 24, 40, 0.2);
+  text-decoration: none;
+  color: #fff !important;
+  transition: all 0.2s ease-in-out;
+  transition-property: background, border, box-shadow;
+}
+.acf-btn:disabled {
+  background-color: red;
+}
+.acf-btn:hover {
+  background-color: #066998;
+  color: #fff;
+  cursor: pointer;
+}
+.acf-btn.acf-btn-sm {
+  min-height: 32px;
+  padding-top: 4px;
+  padding-right: 12px;
+  padding-bottom: 4px;
+  padding-left: 12px;
+}
+.acf-btn.acf-btn-secondary {
+  background-color: transparent;
+  color: #0783BE !important;
+  border-color: #0783BE;
+}
+.acf-btn.acf-btn-secondary:hover {
+  background-color: #f3f9fc;
+}
+.acf-btn.acf-btn-tertiary {
+  background-color: transparent;
+  color: #667085 !important;
+  border-color: #D0D5DD;
+}
+.acf-btn.acf-btn-tertiary:hover {
+  color: #667085 !important;
+  border-color: #98A2B3;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Button icons
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-btn i.acf-icon {
+  width: 20px;
+  height: 20px;
+  -webkit-mask-size: 20px;
+  mask-size: 20px;
+  margin-right: 6px;
+  margin-left: -4px;
+}
+.acf-btn.acf-btn-sm i.acf-icon {
+  width: 18px;
+  height: 18px;
+  -webkit-mask-size: 18px;
+  mask-size: 18px;
+  margin-right: 4px;
+  margin-left: -2px;
+}
+
+.rtl .acf-btn i.acf-icon {
+  margin-right: -4px;
+  margin-left: 6px;
+}
+.rtl .acf-btn.acf-btn-sm i.acf-icon {
+  margin-right: -4px;
+  margin-left: 2px;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Delete field group button
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-btn.acf-delete-field-group:hover {
+  background-color: #fbeded;
+  border-color: #D13737 !important;
+  color: #D13737 !important;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Icon base styling
+*
+*--------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group i.acf-icon {
+  display: inline-flex;
+  width: 20px;
+  height: 20px;
+  background-color: currentColor;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  text-indent: 500%;
+  white-space: nowrap;
+  overflow: hidden;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Icons
+*
+*--------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group {
+  /*--------------------------------------------------------------------------------------------
+  *
+  *	Inactive group icon
+  *
+  *--------------------------------------------------------------------------------------------*/
+}
+.post-type-acf-field-group i.acf-field-setting-fc-delete, .post-type-acf-field-group i.acf-field-setting-fc-duplicate {
+  box-sizing: border-box;
+  /* Auto layout */
+  display: flex;
+  flex-direction: row;
+  justify-content: center;
+  align-items: center;
+  padding: 8px;
+  cursor: pointer;
+  width: 32px;
+  height: 32px;
+  /* Base / White */
+  background: #FFFFFF;
+  /* Gray/300 */
+  border: 1px solid #D0D5DD;
+  /* Elevation/01 */
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+  border-radius: 6px;
+  /* Inside auto layout */
+  flex: none;
+  order: 0;
+  flex-grow: 0;
+}
+.post-type-acf-field-group i.acf-icon-plus {
+  -webkit-mask-image: url("../../images/icons/icon-add.svg");
+  mask-image: url("../../images/icons/icon-add.svg");
+}
+.post-type-acf-field-group i.acf-icon-stars {
+  -webkit-mask-image: url("../../images/icons/icon-stars.svg");
+  mask-image: url("../../images/icons/icon-stars.svg");
+}
+.post-type-acf-field-group i.acf-icon-help {
+  -webkit-mask-image: url("../../images/icons/icon-help.svg");
+  mask-image: url("../../images/icons/icon-help.svg");
+}
+.post-type-acf-field-group i.acf-icon-key {
+  -webkit-mask-image: url("../../images/icons/icon-key.svg");
+  mask-image: url("../../images/icons/icon-key.svg");
+}
+.post-type-acf-field-group i.acf-icon-trash, .post-type-acf-field-group button.acf-icon-trash {
+  -webkit-mask-image: url("../../images/icons/icon-trash.svg");
+  mask-image: url("../../images/icons/icon-trash.svg");
+}
+.post-type-acf-field-group i.acf-icon.-duplicate, .post-type-acf-field-group button.acf-icon-duplicate {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-clone.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-clone.svg");
+}
+.post-type-acf-field-group i.acf-icon-arrow-right {
+  -webkit-mask-image: url("../../images/icons/icon-arrow-right.svg");
+  mask-image: url("../../images/icons/icon-arrow-right.svg");
+}
+.post-type-acf-field-group i.acf-icon-arrow-left {
+  -webkit-mask-image: url("../../images/icons/icon-arrow-left.svg");
+  mask-image: url("../../images/icons/icon-arrow-left.svg");
+}
+.post-type-acf-field-group i.acf-icon-chevron-right,
+.post-type-acf-field-group .acf-icon.-right {
+  -webkit-mask-image: url("../../images/icons/icon-chevron-right.svg");
+  mask-image: url("../../images/icons/icon-chevron-right.svg");
+}
+.post-type-acf-field-group i.acf-icon-chevron-left,
+.post-type-acf-field-group .acf-icon.-left {
+  -webkit-mask-image: url("../../images/icons/icon-chevron-left.svg");
+  mask-image: url("../../images/icons/icon-chevron-left.svg");
+}
+.post-type-acf-field-group i.acf-icon-key-solid {
+  -webkit-mask-image: url("../../images/icons/icon-key-solid.svg");
+  mask-image: url("../../images/icons/icon-key-solid.svg");
+}
+.post-type-acf-field-group i.acf-icon-globe,
+.post-type-acf-field-group .acf-icon.-globe {
+  -webkit-mask-image: url("../../images/icons/icon-globe.svg");
+  mask-image: url("../../images/icons/icon-globe.svg");
+}
+.post-type-acf-field-group i.acf-icon-image,
+.post-type-acf-field-group .acf-icon.-picture {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-image.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-image.svg");
+}
+.post-type-acf-field-group i.acf-icon-warning {
+  -webkit-mask-image: url("../../images/icons/icon-warning-alt.svg");
+  mask-image: url("../../images/icons/icon-warning-alt.svg");
+}
+.post-type-acf-field-group i.acf-icon-warning-red {
+  -webkit-mask-image: url("../../images/icons/icon-warning-alt-red.svg");
+  mask-image: url("../../images/icons/icon-warning-alt-red.svg");
+}
+.post-type-acf-field-group .post-type-acf-field-group .post-state {
+  font-weight: normal;
+}
+.post-type-acf-field-group .post-type-acf-field-group .post-state .dashicons.dashicons-hidden {
+  display: inline-flex;
+  width: 18px;
+  height: 18px;
+  background-color: #98A2B3;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: 18px;
+  mask-size: 18px;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  -webkit-mask-image: url("../../images/icons/icon-hidden.svg");
+  mask-image: url("../../images/icons/icon-hidden.svg");
+}
+.post-type-acf-field-group .post-type-acf-field-group .post-state .dashicons.dashicons-hidden:before {
+  display: none;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Edit field group page postbox header icons
+*
+*--------------------------------------------------------------------------------------------*/
+#acf-field-group-fields .postbox-header h2,
+#acf-field-group-fields .postbox-header h3,
+#acf-field-group-fields .acf-sub-field-list-header h2,
+#acf-field-group-fields .acf-sub-field-list-header h3,
+#acf-field-group-options .postbox-header h2,
+#acf-field-group-options .postbox-header h3,
+#acf-field-group-options .acf-sub-field-list-header h2,
+#acf-field-group-options .acf-sub-field-list-header h3 {
+  display: inline-flex;
+  justify-content: flex-start;
+  align-content: stretch;
+  align-items: center;
+}
+#acf-field-group-fields .postbox-header h2:before,
+#acf-field-group-fields .postbox-header h3:before,
+#acf-field-group-fields .acf-sub-field-list-header h2:before,
+#acf-field-group-fields .acf-sub-field-list-header h3:before,
+#acf-field-group-options .postbox-header h2:before,
+#acf-field-group-options .postbox-header h3:before,
+#acf-field-group-options .acf-sub-field-list-header h2:before,
+#acf-field-group-options .acf-sub-field-list-header h3:before {
+  content: "";
+  display: inline-block;
+  width: 20px;
+  height: 20px;
+  margin-right: 8px;
+  background-color: #98A2B3;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+}
+
+.rtl #acf-field-group-fields .postbox-header h2:before,
+.rtl #acf-field-group-fields .postbox-header h3:before,
+.rtl #acf-field-group-fields .acf-sub-field-list-header h2:before,
+.rtl #acf-field-group-fields .acf-sub-field-list-header h3:before,
+.rtl #acf-field-group-options .postbox-header h2:before,
+.rtl #acf-field-group-options .postbox-header h3:before,
+.rtl #acf-field-group-options .acf-sub-field-list-header h2:before,
+.rtl #acf-field-group-options .acf-sub-field-list-header h3:before {
+  margin-right: 0;
+  margin-left: 8px;
+}
+
+#acf-field-group-fields .postbox-header h2:before,
+h3.acf-sub-field-list-title:before {
+  -webkit-mask-image: url("../../images/icons/icon-fields.svg");
+  mask-image: url("../../images/icons/icon-fields.svg");
+}
+
+#acf-field-group-options .postbox-header h2:before {
+  -webkit-mask-image: url("../../images/icons/icon-settings.svg");
+  mask-image: url("../../images/icons/icon-settings.svg");
+}
+
+.acf-field-setting-fc_layout .acf-field-settings-fc_head label:before {
+  -webkit-mask-image: url("../../images/icons/icon-layout.svg");
+  mask-image: url("../../images/icons/icon-layout.svg");
+}
+
+.acf-field-setting-fc_layout .acf-field-settings-fc_head:hover .reorder-layout:before {
+  width: 20px;
+  height: 11px;
+  background-color: #475467 !important;
+  -webkit-mask-image: url("../../images/icons/icon-draggable.svg");
+  mask-image: url("../../images/icons/icon-draggable.svg");
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Postbox expand / collapse icon
+*
+*--------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .postbox-header .handle-actions,
+.post-type-acf-field-group #acf-field-group-fields .postbox-header .handle-actions,
+.post-type-acf-field-group #acf-field-group-options .postbox-header .handle-actions,
+.post-type-acf-field-group .postbox .postbox-header .handle-actions {
+  display: flex;
+}
+.post-type-acf-field-group .postbox-header .handle-actions .toggle-indicator:before,
+.post-type-acf-field-group #acf-field-group-fields .postbox-header .handle-actions .toggle-indicator:before,
+.post-type-acf-field-group #acf-field-group-options .postbox-header .handle-actions .toggle-indicator:before,
+.post-type-acf-field-group .postbox .postbox-header .handle-actions .toggle-indicator:before {
+  content: "";
+  display: inline-flex;
+  width: 20px;
+  height: 20px;
+  background-color: currentColor;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  -webkit-mask-image: url("../../images/icons/icon-chevron-up.svg");
+  mask-image: url("../../images/icons/icon-chevron-up.svg");
+}
+.post-type-acf-field-group.closed .postbox-header .handle-actions .toggle-indicator:before,
+.post-type-acf-field-group #acf-field-group-fields.closed .postbox-header .handle-actions .toggle-indicator:before,
+.post-type-acf-field-group #acf-field-group-options.closed .postbox-header .handle-actions .toggle-indicator:before,
+.post-type-acf-field-group .postbox.closed .postbox-header .handle-actions .toggle-indicator:before {
+  -webkit-mask-image: url("../../images/icons/icon-chevron-down.svg");
+  mask-image: url("../../images/icons/icon-chevron-down.svg");
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+* Tools & updates page heading icons
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group #acf-admin-tool-export h2,
+.post-type-acf-field-group #acf-admin-tool-export h3,
+.post-type-acf-field-group #acf-admin-tool-import h2,
+.post-type-acf-field-group #acf-admin-tool-import h3,
+.post-type-acf-field-group #acf-license-information h2,
+.post-type-acf-field-group #acf-license-information h3,
+.post-type-acf-field-group #acf-update-information h2,
+.post-type-acf-field-group #acf-update-information h3 {
+  display: inline-flex;
+  justify-content: flex-start;
+  align-content: stretch;
+  align-items: center;
+}
+.post-type-acf-field-group #acf-admin-tool-export h2:before,
+.post-type-acf-field-group #acf-admin-tool-export h3:before,
+.post-type-acf-field-group #acf-admin-tool-import h2:before,
+.post-type-acf-field-group #acf-admin-tool-import h3:before,
+.post-type-acf-field-group #acf-license-information h2:before,
+.post-type-acf-field-group #acf-license-information h3:before,
+.post-type-acf-field-group #acf-update-information h2:before,
+.post-type-acf-field-group #acf-update-information h3:before {
+  content: "";
+  display: inline-block;
+  width: 20px;
+  height: 20px;
+  margin-right: 8px;
+  background-color: #98A2B3;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+}
+.post-type-acf-field-group.rtl #acf-admin-tool-export h2:before,
+.post-type-acf-field-group.rtl #acf-admin-tool-export h3:before,
+.post-type-acf-field-group.rtl #acf-admin-tool-import h2:before,
+.post-type-acf-field-group.rtl #acf-admin-tool-import h3:before,
+.post-type-acf-field-group.rtl #acf-license-information h2:before,
+.post-type-acf-field-group.rtl #acf-license-information h3:before,
+.post-type-acf-field-group.rtl #acf-update-information h2:before,
+.post-type-acf-field-group.rtl #acf-update-information h3:before {
+  margin-right: 0;
+  margin-left: 8px;
+}
+
+.post-type-acf-field-group #acf-admin-tool-export h2:before {
+  -webkit-mask-image: url("../../images/icons/icon-export.svg");
+  mask-image: url("../../images/icons/icon-export.svg");
+}
+
+.post-type-acf-field-group #acf-admin-tool-import h2:before {
+  -webkit-mask-image: url("../../images/icons/icon-import.svg");
+  mask-image: url("../../images/icons/icon-import.svg");
+}
+
+.post-type-acf-field-group #acf-license-information h3:before {
+  -webkit-mask-image: url("../../images/icons/icon-key.svg");
+  mask-image: url("../../images/icons/icon-key.svg");
+}
+
+.post-type-acf-field-group #acf-update-information h3:before {
+  -webkit-mask-image: url("../../images/icons/icon-info.svg");
+  mask-image: url("../../images/icons/icon-info.svg");
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Admin field icons
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-admin-single-field-group .acf-input .acf-icon {
+  width: 18px;
+  height: 18px;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Field type icon base styling
+*
+*--------------------------------------------------------------------------------------------*/
+.field-type-icon {
+  box-sizing: border-box;
+  display: inline-flex;
+  align-content: center;
+  align-items: center;
+  justify-content: center;
+  position: relative;
+  width: 24px;
+  height: 24px;
+  top: -4px;
+  background-color: #EBF5FA;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #A5D2E7;
+  border-radius: 100%;
+}
+.field-type-icon:before {
+  content: "";
+  width: 14px;
+  height: 14px;
+  position: relative;
+  background-color: #0783BE;
+  -webkit-mask-size: cover;
+  mask-size: cover;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-default.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-default.svg");
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Field type icons
+*
+*--------------------------------------------------------------------------------------------*/
+.field-type-icon.field-type-icon-text:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-text.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-text.svg");
+}
+
+.field-type-icon.field-type-icon-textarea:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-textarea.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-textarea.svg");
+}
+
+.field-type-icon.field-type-icon-textarea:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-textarea.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-textarea.svg");
+}
+
+.field-type-icon.field-type-icon-number:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-number.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-number.svg");
+}
+
+.field-type-icon.field-type-icon-range:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-range.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-range.svg");
+}
+
+.field-type-icon.field-type-icon-email:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-email.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-email.svg");
+}
+
+.field-type-icon.field-type-icon-url:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-url.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-url.svg");
+}
+
+.field-type-icon.field-type-icon-password:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-password.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-password.svg");
+}
+
+.field-type-icon.field-type-icon-image:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-image.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-image.svg");
+}
+
+.field-type-icon.field-type-icon-file:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-file.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-file.svg");
+}
+
+.field-type-icon.field-type-icon-wysiwyg:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-wysiwyg.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-wysiwyg.svg");
+}
+
+.field-type-icon.field-type-icon-oembed:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-oembed.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-oembed.svg");
+}
+
+.field-type-icon.field-type-icon-gallery:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-gallery.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-gallery.svg");
+}
+
+.field-type-icon.field-type-icon-select:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-select.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-select.svg");
+}
+
+.field-type-icon.field-type-icon-checkbox:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-checkbox.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-checkbox.svg");
+}
+
+.field-type-icon.field-type-icon-radio:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-radio.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-radio.svg");
+}
+
+.field-type-icon.field-type-icon-button-group:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-button-group.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-button-group.svg");
+}
+
+.field-type-icon.field-type-icon-true-false:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-true-false.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-true-false.svg");
+}
+
+.field-type-icon.field-type-icon-link:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-link.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-link.svg");
+}
+
+.field-type-icon.field-type-icon-post-object:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-post-object.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-post-object.svg");
+}
+
+.field-type-icon.field-type-icon-page-link:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-page-link.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-page-link.svg");
+}
+
+.field-type-icon.field-type-icon-relationship:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-relationship.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-relationship.svg");
+}
+
+.field-type-icon.field-type-icon-taxonomy:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-taxonomy.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-taxonomy.svg");
+}
+
+.field-type-icon.field-type-icon-user:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-user.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-user.svg");
+}
+
+.field-type-icon.field-type-icon-google-map:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-google-map.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-google-map.svg");
+}
+
+.field-type-icon.field-type-icon-date-picker:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-date-picker.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-date-picker.svg");
+}
+
+.field-type-icon.field-type-icon-date-time-picker:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-date-time-picker.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-date-time-picker.svg");
+}
+
+.field-type-icon.field-type-icon-time-picker:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-time-picker.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-time-picker.svg");
+}
+
+.field-type-icon.field-type-icon-color-picker:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-color-picker.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-color-picker.svg");
+}
+
+.field-type-icon.field-type-icon-message:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-message.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-message.svg");
+}
+
+.field-type-icon.field-type-icon-accordion:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-accordion.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-accordion.svg");
+}
+
+.field-type-icon.field-type-icon-tab:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-tab.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-tab.svg");
+}
+
+.field-type-icon.field-type-icon-group:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-group.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-group.svg");
+}
+
+.field-type-icon.field-type-icon-repeater:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-repeater.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-repeater.svg");
+}
+
+.field-type-icon.field-type-icon-flexible-content:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-flexible-content.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-flexible-content.svg");
+}
+
+.field-type-icon.field-type-icon-clone:before {
+  -webkit-mask-image: url("../../images/field-type-icons/icon-field-clone.svg");
+  mask-image: url("../../images/field-type-icons/icon-field-clone.svg");
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+* Tools page layout
+*
+*---------------------------------------------------------------------------------------------*/
+#acf-admin-tools .postbox-header {
+  display: none;
+}
+#acf-admin-tools .acf-meta-box-wrap.-grid {
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+}
+#acf-admin-tools .acf-meta-box-wrap.-grid .postbox {
+  width: 100%;
+  clear: none;
+  float: none;
+  margin-bottom: 0;
+}
+@media screen and (max-width: 880px) {
+  #acf-admin-tools .acf-meta-box-wrap.-grid .postbox {
+    flex: 1 1 100%;
+  }
+}
+#acf-admin-tools .acf-meta-box-wrap.-grid .postbox:nth-child(odd) {
+  margin-left: 0;
+}
+#acf-admin-tools .meta-box-sortables {
+  display: grid;
+  grid-template-columns: repeat(2, 1fr);
+  grid-template-rows: repeat(1, 1fr);
+  grid-column-gap: 32px;
+  grid-row-gap: 32px;
+}
+@media screen and (max-width: 880px) {
+  #acf-admin-tools .meta-box-sortables {
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: flex-start;
+    align-content: flex-start;
+    align-items: center;
+    grid-column-gap: 8px;
+    grid-row-gap: 8px;
+  }
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+* Tools export pages
+*
+*---------------------------------------------------------------------------------------------*/
+#acf-admin-tools.tool-export .inside {
+  margin: 0;
+}
+#acf-admin-tools.tool-export .acf-postbox-header {
+  margin-bottom: 24px;
+}
+#acf-admin-tools.tool-export .acf-postbox-main {
+  border: none;
+  margin: 0;
+  padding-top: 0;
+  padding-right: 24px;
+  padding-bottom: 0;
+  padding-left: 0;
+}
+#acf-admin-tools.tool-export .acf-postbox-columns {
+  margin-top: 0;
+  margin-right: 280px;
+  margin-bottom: 0;
+  margin-left: 0;
+  padding: 0;
+}
+#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side {
+  padding: 0;
+}
+#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side .acf-panel {
+  margin: 0;
+  padding: 0;
+}
+#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side:before {
+  display: none;
+}
+#acf-admin-tools.tool-export .acf-postbox-columns .acf-postbox-side .acf-btn {
+  display: block;
+  width: 100%;
+  text-align: center;
+}
+#acf-admin-tools.tool-export .meta-box-sortables {
+  display: block;
+}
+#acf-admin-tools.tool-export .acf-panel {
+  border: none;
+}
+#acf-admin-tools.tool-export .acf-panel h3 {
+  margin: 0;
+  padding: 0;
+  color: #344054;
+}
+#acf-admin-tools.tool-export .acf-panel h3:before {
+  display: none;
+}
+#acf-admin-tools.tool-export .acf-checkbox-list {
+  margin-top: 16px;
+  border-width: 1px;
+  border-style: solid;
+  border-color: #D0D5DD;
+  border-radius: 6px;
+}
+#acf-admin-tools.tool-export .acf-checkbox-list li {
+  display: inline-flex;
+  box-sizing: border-box;
+  width: 100%;
+  height: 48px;
+  align-items: center;
+  margin: 0;
+  padding-right: 12px;
+  padding-left: 12px;
+  border-bottom-width: 1px;
+  border-bottom-style: solid;
+  border-bottom-color: #EAECF0;
+}
+#acf-admin-tools.tool-export .acf-checkbox-list li:last-child {
+  border-bottom: none;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Updates layout
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-settings-wrap.acf-updates {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: wrap;
+  justify-content: flex-start;
+  align-content: flex-start;
+  align-items: flex-start;
+}
+
+.custom-fields_page_acf-settings-updates .acf-admin-notice,
+.custom-fields_page_acf-settings-updates .acf-upgrade-notice,
+.custom-fields_page_acf-settings-updates .notice {
+  flex: 1 1 100%;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  ACF Box
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-settings-wrap.acf-updates .acf-box {
+  margin-top: 0;
+  margin-right: 0;
+  margin-bottom: 0;
+  margin-left: 0;
+}
+.acf-settings-wrap.acf-updates .acf-box .inner {
+  padding-top: 24px;
+  padding-right: 24px;
+  padding-bottom: 24px;
+  padding-left: 24px;
+}
+@media screen and (max-width: 880px) {
+  .acf-settings-wrap.acf-updates .acf-box {
+    flex: 1 1 100%;
+  }
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Notices
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-settings-wrap.acf-updates .acf-admin-notice {
+  flex: 1 1 100%;
+  margin-top: 16px;
+  margin-right: 0;
+  margin-left: 0;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+* License information
+*
+*---------------------------------------------------------------------------------------------*/
+#acf-license-information {
+  flex: 1 1 65%;
+  margin-right: 32px;
+}
+@media screen and (max-width: 1024px) {
+  #acf-license-information {
+    margin-right: 0;
+    margin-bottom: 32px;
+  }
+}
+#acf-license-information .acf-activation-form {
+  margin-top: 24px;
+}
+#acf-license-information label {
+  font-weight: 500;
+}
+#acf-license-information .acf-input-wrap {
+  margin-top: 8px;
+  margin-bottom: 24px;
+}
+#acf-license-information #acf_pro_license {
+  width: 100%;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Update information table
+*
+*---------------------------------------------------------------------------------------------*/
+#acf-update-information {
+  flex: 1 1 35%;
+  max-width: calc(35% - 32px);
+}
+#acf-update-information .form-table th,
+#acf-update-information .form-table td {
+  padding-top: 0;
+  padding-right: 0;
+  padding-bottom: 24px;
+  padding-left: 0;
+  color: #344054;
+}
+#acf-update-information .acf-update-changelog {
+  margin-top: 8px;
+  margin-bottom: 24px;
+  padding-top: 8px;
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+  color: #344054;
+}
+#acf-update-information .acf-update-changelog h4 {
+  margin-bottom: 0;
+}
+#acf-update-information .acf-update-changelog p {
+  margin-top: 0;
+  margin-bottom: 16px;
+}
+#acf-update-information .acf-update-changelog p:last-of-type {
+  margin-bottom: 0;
+}
+#acf-update-information .acf-update-changelog p em {
+  color: #667085;
+}
+#acf-update-information .acf-btn {
+  display: inline-flex;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Header upsell button
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn {
+  display: inline-flex;
+  align-items: center;
+  align-self: stretch;
+  padding-top: 0;
+  padding-right: 16px;
+  padding-bottom: 0;
+  padding-left: 16px;
+  background: linear-gradient(90.52deg, #2C9FB8 0.44%, #A45CFF 113.3%);
+  background-size: 180% 80%;
+  background-position: 100% 0;
+  transition: background-position 0.5s;
+  border-radius: 6px;
+  text-decoration: none;
+}
+@media screen and (max-width: 768px) {
+  .acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn {
+    display: none;
+  }
+}
+.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn:hover {
+  background-position: 0 0;
+}
+.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn:focus {
+  border: none;
+  outline: none;
+  box-shadow: none;
+}
+.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn p {
+  margin: 0;
+  padding-top: 8px;
+  padding-bottom: 8px;
+  font-weight: normal;
+  text-transform: none;
+  color: #fff;
+}
+.acf-admin-toolbar a.acf-admin-toolbar-upgrade-btn .acf-icon {
+  width: 18px;
+  height: 18px;
+  margin-right: 6px;
+  margin-left: -2px;
+  background-color: #F9FAFB;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*  Upsell block
+*
+*--------------------------------------------------------------------------------------------*/
+#acf-field-group-pro-features .acf-field-group-pro-features-wrapper {
+  display: flex;
+  justify-content: flex-start;
+  align-content: stretch;
+  align-items: center;
+}
+@media screen and (max-width: 768px) {
+  #acf-field-group-pro-features .acf-field-group-pro-features-wrapper {
+    flex-direction: row;
+    flex-wrap: wrap;
+    justify-content: flex-start;
+    align-content: flex-start;
+    align-items: flex-start;
+  }
+  #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content,
+  #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions {
+    flex: 0 1 100%;
+  }
+}
+#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content {
+  flex: 1 1 auto;
+  margin-right: 40px;
+}
+@media screen and (max-width: 768px) {
+  #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-content {
+    margin-right: 0;
+    margin-bottom: 8px;
+  }
+}
+#acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions {
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-end;
+  min-width: 160px;
+}
+@media screen and (max-width: 768px) {
+  #acf-field-group-pro-features .acf-field-group-pro-features-wrapper .acf-field-group-pro-features-actions {
+    justify-content: flex-start;
+  }
+}
+#acf-field-group-pro-features.postbox {
+  display: flex;
+  align-items: center;
+  min-height: 120px;
+  background-image: linear-gradient(to right, #1d4373, #24437e, #304288, #413f8f, #543a95);
+  color: #EAECF0;
+}
+#acf-field-group-pro-features.postbox .postbox-header {
+  display: none;
+}
+#acf-field-group-pro-features.postbox .inside {
+  width: 100%;
+  border: none;
+}
+#acf-field-group-pro-features h1 {
+  margin-top: 0;
+  margin-bottom: 4px;
+  padding-top: 0;
+  padding-bottom: 0;
+  font-weight: bold;
+  color: #F9FAFB;
+}
+#acf-field-group-pro-features h1 .acf-icon {
+  margin-right: 8px;
+}
+#acf-field-group-pro-features .acf-btn {
+  display: inline-flex;
+  background-color: rgba(255, 255, 255, 0.2);
+  border: none;
+}
+#acf-field-group-pro-features .acf-btn:hover {
+  background-color: rgba(255, 255, 255, 0.3);
+}
+#acf-field-group-pro-features .acf-btn .acf-icon {
+  margin-right: -2px;
+  margin-left: 8px;
+}
+#acf-field-group-pro-features .acf-pro-features-list {
+  display: flex;
+  justify-content: flex-start;
+  align-items: center;
+  flex-wrap: wrap;
+  margin-top: 16px;
+  margin-bottom: 0;
+}
+@media screen and (max-width: 768px) {
+  #acf-field-group-pro-features .acf-pro-features-list {
+    flex-direction: row;
+    flex-wrap: wrap;
+    justify-content: flex-start;
+    align-content: flex-start;
+    align-items: flex-start;
+  }
+}
+#acf-field-group-pro-features .acf-pro-features-list li {
+  display: flex;
+  box-sizing: border-box;
+  margin-right: 32px;
+  margin-bottom: 6px;
+}
+@media screen and (max-width: 880px) {
+  #acf-field-group-pro-features .acf-pro-features-list li {
+    flex: 0 1 calc(33.3% - 32px);
+  }
+}
+@media screen and (max-width: 640px) {
+  #acf-field-group-pro-features .acf-pro-features-list li {
+    flex: 0 1 100%;
+  }
+}
+#acf-field-group-pro-features .acf-pro-features-list li:last-child {
+  margin-right: 0;
+}
+#acf-field-group-pro-features .acf-pro-features-list li:before {
+  content: "";
+  display: inline-block;
+  width: 16px;
+  height: 16px;
+  margin-right: 8px;
+  background-color: #52AA59;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  -webkit-mask-image: url("../../images/icons/icon-check-circle-solid.svg");
+  mask-image: url("../../images/icons/icon-check-circle-solid.svg");
+}
+
+/*# sourceMappingURL=acf-global.css.map*/

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/css/acf-global.css.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/css/acf-global.min.css


+ 3221 - 0
inc/acf/assets/build/css/acf-input.css

@@ -0,0 +1,3221 @@
+/*!****************************************************************************************************************************************************************************************************************!*\
+  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/advanced-custom-fields-pro/assets/src/sass/acf-input.scss ***!
+  \****************************************************************************************************************************************************************************************************************/
+@charset "UTF-8";
+/*--------------------------------------------------------------------------------------------
+*
+*	Vars
+*
+*--------------------------------------------------------------------------------------------*/
+/* colors */
+/* acf-field */
+/* responsive */
+/*--------------------------------------------------------------------------------------------
+*
+*	ACF 6 ↓
+*
+*--------------------------------------------------------------------------------------------*/
+/*--------------------------------------------------------------------------------------------
+*
+*  Mixins
+*
+*--------------------------------------------------------------------------------------------*/
+/*---------------------------------------------------------------------------------------------
+*
+*  Global
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group #wpcontent {
+  line-height: 140%;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Links
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group a {
+  color: #0783BE;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Headings
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-h1, .post-type-acf-field-group h1,
+.acf-headerbar h1 {
+  font-size: 21px;
+  font-weight: 400;
+}
+
+.acf-h2, .acf-page-title, .post-type-acf-field-group h2,
+.acf-headerbar h2 {
+  font-size: 18px;
+  font-weight: 400;
+}
+
+.acf-h3, .post-type-acf-field-group h3,
+.acf-headerbar h3 {
+  font-size: 16px;
+  font-weight: 400;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Paragraphs
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .p1 {
+  font-size: 15px;
+}
+.post-type-acf-field-group .p2 {
+  font-size: 14px;
+}
+.post-type-acf-field-group .p3 {
+  font-size: 13.5px;
+}
+.post-type-acf-field-group .p4 {
+  font-size: 13px;
+}
+.post-type-acf-field-group .p5 {
+  font-size: 12.5px;
+}
+.post-type-acf-field-group .p6, .post-type-acf-field-group .acf-field p.description, .acf-field .post-type-acf-field-group p.description, .post-type-acf-field-group .acf-small {
+  font-size: 12px;
+}
+.post-type-acf-field-group .p7, .post-type-acf-field-group .acf-field-setting-prefix_label p.description code, .acf-field-setting-prefix_label p.description .post-type-acf-field-group code,
+.post-type-acf-field-group .acf-field-setting-prefix_name p.description code,
+.acf-field-setting-prefix_name p.description .post-type-acf-field-group code {
+  font-size: 11.5px;
+}
+.post-type-acf-field-group .p8 {
+  font-size: 11px;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Page titles
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-page-title {
+  color: #344054;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Hide old / native WP titles from pages
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group .acf-settings-wrap h1,
+.post-type-acf-field-group #acf-admin-tools h1 {
+  display: none;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Small
+*
+*---------------------------------------------------------------------------------------------*/
+/*---------------------------------------------------------------------------------------------
+*
+*  Link focus style
+*
+*---------------------------------------------------------------------------------------------*/
+.post-type-acf-field-group a:focus {
+  box-shadow: none;
+  outline: none;
+}
+
+.post-type-acf-field-group a:focus-visible {
+  box-shadow: 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(79, 148, 212, 0.8);
+  outline: 1px solid transparent;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	acf-field
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-field,
+.acf-field .acf-label,
+.acf-field .acf-input {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  position: relative;
+}
+
+.acf-field {
+  margin: 15px 0;
+  clear: both;
+}
+.acf-field p.description {
+  display: block;
+  margin: 0;
+  padding: 0;
+}
+.acf-field .acf-label {
+  vertical-align: top;
+  margin: 0 0 10px;
+}
+.acf-field .acf-label label {
+  display: block;
+  font-weight: 500;
+  margin: 0 0 3px;
+  padding: 0;
+}
+.acf-field .acf-label:empty {
+  margin-bottom: 0;
+}
+.acf-field .acf-input {
+  vertical-align: top;
+}
+.acf-field p.description {
+  display: block;
+  margin-top: 6px;
+  color: #667085;
+}
+.acf-field .acf-notice {
+  margin: 0 0 15px;
+  background: #edf2ff;
+  color: #0c6ca0;
+  border-color: #2183b9;
+}
+.acf-field .acf-notice.-error {
+  background: #ffe6e6;
+  color: #cc2727;
+  border-color: #d12626;
+}
+.acf-field .acf-notice.-success {
+  background: #eefbe8;
+  color: #0e7b17;
+  border-color: #32a23b;
+}
+.acf-field .acf-notice.-warning {
+  background: #fff3e6;
+  color: #bd4b0e;
+  border-color: #d16226;
+}
+td.acf-field,
+tr.acf-field {
+  margin: 0;
+}
+
+.acf-field[data-width] {
+  float: left;
+  clear: none;
+  /*
+  	@media screen and (max-width: $sm) {
+  		float: none;
+  		width: auto;
+  		border-left-width: 0;
+  		border-right-width: 0;
+  	}
+  */
+}
+.acf-field[data-width] + .acf-field[data-width] {
+  border-left: 1px solid #eeeeee;
+}
+html[dir=rtl] .acf-field[data-width] {
+  float: right;
+}
+html[dir=rtl] .acf-field[data-width] + .acf-field[data-width] {
+  border-left: none;
+  border-right: 1px solid #eeeeee;
+}
+td.acf-field[data-width],
+tr.acf-field[data-width] {
+  float: none;
+}
+
+.acf-field.-c0 {
+  clear: both;
+  border-left-width: 0 !important;
+}
+html[dir=rtl] .acf-field.-c0 {
+  border-left-width: 1px !important;
+  border-right-width: 0 !important;
+}
+
+.acf-field.-r0 {
+  border-top-width: 0 !important;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	acf-fields
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-fields {
+  position: relative;
+}
+.acf-fields:after {
+  display: block;
+  clear: both;
+  content: "";
+}
+.acf-fields.-border {
+  border: #ccd0d4 solid 1px;
+  background: #fff;
+}
+.acf-fields > .acf-field {
+  position: relative;
+  margin: 0;
+  padding: 16px;
+  border-top-width: 1px;
+  border-top-style: solid;
+  border-top-color: #EAECF0;
+}
+.acf-fields > .acf-field:first-child {
+  border-top: none;
+  margin-top: 0;
+}
+td.acf-fields {
+  padding: 0 !important;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	acf-fields (clear)
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-fields.-clear > .acf-field {
+  border: none;
+  padding: 0;
+  margin: 15px 0;
+}
+.acf-fields.-clear > .acf-field[data-width] {
+  border: none !important;
+}
+.acf-fields.-clear > .acf-field > .acf-label {
+  padding: 0;
+}
+.acf-fields.-clear > .acf-field > .acf-input {
+  padding: 0;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	acf-fields (left)
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-fields.-left > .acf-field {
+  padding: 15px 0;
+}
+.acf-fields.-left > .acf-field:after {
+  display: block;
+  clear: both;
+  content: "";
+}
+.acf-fields.-left > .acf-field:before {
+  content: "";
+  display: block;
+  position: absolute;
+  z-index: 0;
+  background: #f9f9f9;
+  border-color: #e1e1e1;
+  border-style: solid;
+  border-width: 0 1px 0 0;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  width: 20%;
+}
+.acf-fields.-left > .acf-field[data-width] {
+  float: none;
+  width: auto !important;
+  border-left-width: 0 !important;
+  border-right-width: 0 !important;
+}
+.acf-fields.-left > .acf-field > .acf-label {
+  float: left;
+  width: 20%;
+  margin: 0;
+  padding: 0 12px;
+}
+.acf-fields.-left > .acf-field > .acf-input {
+  float: left;
+  width: 80%;
+  margin: 0;
+  padding: 0 12px;
+}
+html[dir=rtl] .acf-fields.-left > .acf-field:before {
+  border-width: 0 0 0 1px;
+  left: auto;
+  right: 0;
+}
+html[dir=rtl] .acf-fields.-left > .acf-field > .acf-label {
+  float: right;
+}
+html[dir=rtl] .acf-fields.-left > .acf-field > .acf-input {
+  float: right;
+}
+#side-sortables .acf-fields.-left > .acf-field:before {
+  display: none;
+}
+#side-sortables .acf-fields.-left > .acf-field > .acf-label {
+  width: 100%;
+  margin-bottom: 10px;
+}
+#side-sortables .acf-fields.-left > .acf-field > .acf-input {
+  width: 100%;
+}
+@media screen and (max-width: 640px) {
+  .acf-fields.-left > .acf-field:before {
+    display: none;
+  }
+  .acf-fields.-left > .acf-field > .acf-label {
+    width: 100%;
+    margin-bottom: 10px;
+  }
+  .acf-fields.-left > .acf-field > .acf-input {
+    width: 100%;
+  }
+}
+
+/* clear + left */
+.acf-fields.-clear.-left > .acf-field {
+  padding: 0;
+  border: none;
+}
+.acf-fields.-clear.-left > .acf-field:before {
+  display: none;
+}
+.acf-fields.-clear.-left > .acf-field > .acf-label {
+  padding: 0;
+}
+.acf-fields.-clear.-left > .acf-field > .acf-input {
+  padding: 0;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	acf-table
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-table tr.acf-field > td.acf-label {
+  padding: 15px 12px;
+  margin: 0;
+  background: #f9f9f9;
+  width: 20%;
+}
+.acf-table tr.acf-field > td.acf-input {
+  padding: 15px 12px;
+  margin: 0;
+  border-left-color: #e1e1e1;
+}
+
+.acf-sortable-tr-helper {
+  position: relative !important;
+  display: table-row !important;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	acf-postbox
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-postbox {
+  position: relative;
+}
+.acf-postbox > .inside {
+  margin: 0 !important; /* override WP style - do not delete - you have tried this before */
+  padding: 0 !important; /* override WP style - do not delete - you have tried this before */
+}
+.acf-postbox .acf-hndle-cog {
+  color: #72777c;
+  font-size: 16px;
+  line-height: 36px;
+  height: 36px;
+  width: 1.62rem;
+  position: relative;
+  display: none;
+}
+.acf-postbox .acf-hndle-cog:hover {
+  color: #191e23;
+}
+.acf-postbox > .hndle:hover .acf-hndle-cog,
+.acf-postbox > .postbox-header:hover .acf-hndle-cog {
+  display: inline-block;
+}
+.acf-postbox > .hndle .acf-hndle-cog {
+  height: 20px;
+  line-height: 20px;
+  float: right;
+  width: auto;
+}
+.acf-postbox > .hndle .acf-hndle-cog:hover {
+  color: #777777;
+}
+.acf-postbox .acf-replace-with-fields {
+  padding: 15px;
+  text-align: center;
+}
+
+#post-body-content #acf_after_title-sortables {
+  margin: 20px 0 -20px;
+}
+
+/* seamless */
+.acf-postbox.seamless {
+  border: 0 none;
+  background: transparent;
+  box-shadow: none;
+  /* hide hndle */
+  /* inside */
+}
+.acf-postbox.seamless > .postbox-header,
+.acf-postbox.seamless > .hndle,
+.acf-postbox.seamless > .handlediv {
+  display: none !important;
+}
+.acf-postbox.seamless > .inside {
+  display: block !important; /* stop metabox from hiding when closed */
+  margin-left: -12px !important;
+  margin-right: -12px !important;
+}
+.acf-postbox.seamless > .inside > .acf-field {
+  border-color: transparent;
+}
+
+/* seamless (left) */
+.acf-postbox.seamless > .acf-fields.-left {
+  /* hide sidebar bg */
+  /* mobile */
+}
+.acf-postbox.seamless > .acf-fields.-left > .acf-field:before {
+  display: none;
+}
+@media screen and (max-width: 782px) {
+  .acf-postbox.seamless > .acf-fields.-left {
+    /* remove padding */
+  }
+  .acf-postbox.seamless > .acf-fields.-left > .acf-field > .acf-label, .acf-postbox.seamless > .acf-fields.-left > .acf-field > .acf-input {
+    padding: 0;
+  }
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  Inputs
+*
+*-----------------------------------------------------------------------------*/
+.acf-field input[type=text],
+.acf-field input[type=password],
+.acf-field input[type=date],
+.acf-field input[type=datetime],
+.acf-field input[type=datetime-local],
+.acf-field input[type=email],
+.acf-field input[type=month],
+.acf-field input[type=number],
+.acf-field input[type=search],
+.acf-field input[type=tel],
+.acf-field input[type=time],
+.acf-field input[type=url],
+.acf-field input[type=week],
+.acf-field textarea,
+.acf-field select {
+  width: 100%;
+  padding: 4px 8px;
+  margin: 0;
+  box-sizing: border-box;
+  font-size: 14px;
+  line-height: 1.4;
+}
+.acf-admin-3-8 .acf-field input[type=text],
+.acf-admin-3-8 .acf-field input[type=password],
+.acf-admin-3-8 .acf-field input[type=date],
+.acf-admin-3-8 .acf-field input[type=datetime],
+.acf-admin-3-8 .acf-field input[type=datetime-local],
+.acf-admin-3-8 .acf-field input[type=email],
+.acf-admin-3-8 .acf-field input[type=month],
+.acf-admin-3-8 .acf-field input[type=number],
+.acf-admin-3-8 .acf-field input[type=search],
+.acf-admin-3-8 .acf-field input[type=tel],
+.acf-admin-3-8 .acf-field input[type=time],
+.acf-admin-3-8 .acf-field input[type=url],
+.acf-admin-3-8 .acf-field input[type=week],
+.acf-admin-3-8 .acf-field textarea,
+.acf-admin-3-8 .acf-field select {
+  padding: 3px 5px;
+}
+.acf-field textarea {
+  resize: vertical;
+}
+
+body.acf-browser-firefox .acf-field select {
+  padding: 4px 5px;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  Text
+*
+*-----------------------------------------------------------------------------*/
+.acf-input-prepend,
+.acf-input-append,
+.acf-input-wrap {
+  box-sizing: border-box;
+}
+
+.acf-input-prepend,
+.acf-input-append {
+  font-size: 13px;
+  line-height: 1.4;
+  padding: 4px 8px;
+  background: #f5f5f5;
+  border: #7e8993 solid 1px;
+  min-height: 30px;
+}
+.acf-admin-3-8 .acf-input-prepend,
+.acf-admin-3-8 .acf-input-append {
+  padding: 3px 5px;
+  border-color: #dddddd;
+  min-height: 28px;
+}
+
+.acf-input-prepend {
+  float: left;
+  border-right-width: 0;
+  border-radius: 3px 0 0 3px;
+}
+
+.acf-input-append {
+  float: right;
+  border-left-width: 0;
+  border-radius: 0 3px 3px 0;
+}
+
+.acf-input-wrap {
+  position: relative;
+  overflow: hidden;
+}
+.acf-input-wrap .acf-is-prepended {
+  border-radius: 0 6px 6px 0 !important;
+}
+.acf-input-wrap .acf-is-appended {
+  border-radius: 6px 0 0 6px !important;
+}
+.acf-input-wrap .acf-is-prepended.acf-is-appended {
+  border-radius: 0 !important;
+}
+
+/* rtl */
+html[dir=rtl] .acf-input-prepend {
+  border-left-width: 0;
+  border-right-width: 1px;
+  border-radius: 0 3px 3px 0;
+  float: right;
+}
+
+html[dir=rtl] .acf-input-append {
+  border-left-width: 1px;
+  border-right-width: 0;
+  border-radius: 3px 0 0 3px;
+  float: left;
+}
+
+html[dir=rtl] input.acf-is-prepended {
+  border-radius: 3px 0 0 3px !important;
+}
+
+html[dir=rtl] input.acf-is-appended {
+  border-radius: 0 3px 3px 0 !important;
+}
+
+html[dir=rtl] input.acf-is-prepended.acf-is-appended {
+  border-radius: 0 !important;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  Color Picker
+*
+*-----------------------------------------------------------------------------*/
+.acf-color-picker .wp-color-result {
+  border-color: #7e8993;
+}
+.acf-admin-3-8 .acf-color-picker .wp-color-result {
+  border-color: #ccd0d4;
+}
+.acf-color-picker .wp-picker-active {
+  position: relative;
+  z-index: 1;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  Url
+*
+*-----------------------------------------------------------------------------*/
+.acf-url i {
+  position: absolute;
+  top: 5px;
+  left: 5px;
+  opacity: 0.5;
+  color: #7e8993;
+}
+.acf-url input[type=url] {
+  padding-left: 27px !important;
+}
+.acf-url.-valid i {
+  opacity: 1;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  Select2 (v3)
+*
+*-----------------------------------------------------------------------------*/
+.select2-container.-acf {
+  /* open */
+  /* single open */
+}
+.select2-container.-acf .select2-choices {
+  background: #fff;
+  border-color: #ddd;
+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07) inset;
+  min-height: 31px;
+}
+.select2-container.-acf .select2-choices .select2-search-choice {
+  margin: 5px 0 5px 5px;
+  padding: 3px 5px 3px 18px;
+  border-color: #bbb;
+  background: #f9f9f9;
+  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25) inset;
+  /* sortable item*/
+  /* sortable shadow */
+}
+.select2-container.-acf .select2-choices .select2-search-choice.ui-sortable-helper {
+  background: #5897fb;
+  border-color: #3f87fa;
+  color: #fff !important;
+  box-shadow: 0 0 3px rgba(0, 0, 0, 0.1);
+}
+.select2-container.-acf .select2-choices .select2-search-choice.ui-sortable-helper a {
+  visibility: hidden;
+}
+.select2-container.-acf .select2-choices .select2-search-choice.ui-sortable-placeholder {
+  background-color: #f7f7f7;
+  border-color: #f7f7f7;
+  visibility: visible !important;
+}
+.select2-container.-acf .select2-choices .select2-search-choice-focus {
+  border-color: #999;
+}
+.select2-container.-acf .select2-choices .select2-search-field input {
+  height: 31px;
+  line-height: 22px;
+  margin: 0;
+  padding: 5px 5px 5px 7px;
+}
+.select2-container.-acf .select2-choice {
+  border-color: #bbbbbb;
+}
+.select2-container.-acf .select2-choice .select2-arrow {
+  background: transparent;
+  border-left-color: #dfdfdf;
+  padding-left: 1px;
+}
+.select2-container.-acf .select2-choice .select2-result-description {
+  display: none;
+}
+.select2-container.-acf.select2-container-active .select2-choices, .select2-container.-acf.select2-dropdown-open .select2-choices {
+  border-color: #5b9dd9;
+  border-radius: 3px 3px 0 0;
+}
+.select2-container.-acf.select2-dropdown-open .select2-choice {
+  background: #fff;
+  border-color: #5b9dd9;
+}
+
+/* rtl */
+html[dir=rtl] .select2-container.-acf .select2-search-choice-close {
+  left: 24px;
+}
+html[dir=rtl] .select2-container.-acf .select2-choice > .select2-chosen {
+  margin-left: 42px;
+}
+html[dir=rtl] .select2-container.-acf .select2-choice .select2-arrow {
+  padding-left: 0;
+  padding-right: 1px;
+}
+
+/* description */
+.select2-drop {
+  /* search*/
+  /* result */
+}
+.select2-drop .select2-search {
+  padding: 4px 4px 0;
+}
+.select2-drop .select2-result {
+  /* hover*/
+}
+.select2-drop .select2-result .select2-result-description {
+  color: #999;
+  font-size: 12px;
+  margin-left: 5px;
+}
+.select2-drop .select2-result.select2-highlighted .select2-result-description {
+  color: #fff;
+  opacity: 0.75;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  Select2 (v4)
+*
+*-----------------------------------------------------------------------------*/
+.select2-container.-acf li {
+  margin-bottom: 0;
+}
+.select2-container.-acf[data-select2-id^=select2-data] .select2-selection--multiple {
+  overflow: hidden;
+}
+.select2-container.-acf .select2-selection {
+  border-color: #7e8993;
+}
+.acf-admin-3-8 .select2-container.-acf .select2-selection {
+  border-color: #aaa;
+}
+.select2-container.-acf .select2-selection--multiple .select2-search--inline:first-child {
+  float: none;
+}
+.select2-container.-acf .select2-selection--multiple .select2-search--inline:first-child input {
+  width: 100% !important;
+}
+.select2-container.-acf .select2-selection--multiple .select2-selection__rendered {
+  padding-right: 0;
+}
+.select2-container.-acf .select2-selection--multiple .select2-selection__rendered[id^=select2-acf-field] {
+  display: inline;
+  padding: 0;
+  margin: 0;
+}
+.select2-container.-acf .select2-selection--multiple .select2-selection__rendered[id^=select2-acf-field] .select2-selection__choice {
+  margin-right: 0;
+}
+.select2-container.-acf .select2-selection--multiple .select2-selection__choice {
+  background-color: #f7f7f7;
+  border-color: #cccccc;
+  max-width: 100%;
+  overflow: hidden;
+  word-wrap: normal !important;
+  white-space: normal;
+}
+.select2-container.-acf .select2-selection--multiple .select2-selection__choice.ui-sortable-helper {
+  background: #0783BE;
+  border-color: #066998;
+  color: #fff !important;
+  box-shadow: 0 0 3px rgba(0, 0, 0, 0.1);
+}
+.select2-container.-acf .select2-selection--multiple .select2-selection__choice.ui-sortable-helper span {
+  visibility: hidden;
+}
+.select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove {
+  position: static;
+  border-right: none;
+  padding: 0;
+}
+.select2-container.-acf .select2-selection--multiple .select2-selection__choice.ui-sortable-placeholder {
+  background-color: #F2F4F7;
+  border-color: #F2F4F7;
+  visibility: visible !important;
+}
+.select2-container.-acf .select2-selection--multiple .select2-search__field {
+  box-shadow: none !important;
+  min-height: 0;
+}
+.acf-row .select2-container.-acf .select2-selection--single {
+  overflow: hidden;
+}
+.acf-row .select2-container.-acf .select2-selection--single .select2-selection__rendered {
+  white-space: normal;
+}
+
+.select2-dropdown {
+  border-color: #6BB5D8 !important;
+  margin-top: -5px;
+  overflow: hidden;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+}
+
+.select2-dropdown.select2-dropdown--above {
+  margin-top: 0;
+}
+
+.select2-container--default .select2-results__option[aria-selected=true] {
+  background-color: #F9FAFB !important;
+  color: #667085;
+}
+.select2-container--default .select2-results__option[aria-selected=true]:hover {
+  color: #399CCB;
+}
+
+.select2-container--default .select2-results__option--highlighted[aria-selected] {
+  color: #fff !important;
+  background-color: #0783BE !important;
+}
+
+.select2-dropdown .select2-results__option {
+  margin-bottom: 0;
+}
+
+.select2-container .select2-dropdown {
+  z-index: 900000;
+}
+.select2-container .select2-dropdown .select2-search__field {
+  line-height: 1.4;
+  min-height: 0;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  Link
+*
+*-----------------------------------------------------------------------------*/
+.acf-link .link-wrap {
+  display: none;
+  border: #ccd0d4 solid 1px;
+  border-radius: 3px;
+  padding: 5px;
+  line-height: 26px;
+  background: #fff;
+  word-wrap: break-word;
+  word-break: break-all;
+}
+.acf-link .link-wrap .link-title {
+  padding: 0 5px;
+}
+.acf-link.-value .button {
+  display: none;
+}
+.acf-link.-value .acf-icon.-link-ext {
+  display: none;
+}
+.acf-link.-value .link-wrap {
+  display: inline-block;
+}
+.acf-link.-external .acf-icon.-link-ext {
+  display: inline-block;
+}
+
+#wp-link-backdrop {
+  z-index: 900000 !important;
+}
+
+#wp-link-wrap {
+  z-index: 900001 !important;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  Radio
+*
+*-----------------------------------------------------------------------------*/
+ul.acf-radio-list,
+ul.acf-checkbox-list {
+  background: transparent;
+  border: 1px solid transparent;
+  position: relative;
+  padding: 1px;
+  margin: 0;
+  /* hl */
+  /* rtl */
+}
+ul.acf-radio-list:focus-within,
+ul.acf-checkbox-list:focus-within {
+  border: 1px solid #A5D2E7;
+  border-radius: 6px;
+}
+ul.acf-radio-list li,
+ul.acf-checkbox-list li {
+  font-size: 13px;
+  line-height: 22px;
+  margin: 0;
+  position: relative;
+  word-wrap: break-word;
+  /* attachment sidebar fix*/
+}
+ul.acf-radio-list li label,
+ul.acf-checkbox-list li label {
+  display: inline;
+}
+ul.acf-radio-list li input[type=checkbox],
+ul.acf-radio-list li input[type=radio],
+ul.acf-checkbox-list li input[type=checkbox],
+ul.acf-checkbox-list li input[type=radio] {
+  margin: -1px 4px 0 0;
+  vertical-align: middle;
+}
+ul.acf-radio-list li input[type=text],
+ul.acf-checkbox-list li input[type=text] {
+  width: auto;
+  vertical-align: middle;
+  margin: 2px 0;
+}
+ul.acf-radio-list li span,
+ul.acf-checkbox-list li span {
+  float: none;
+}
+ul.acf-radio-list li i,
+ul.acf-checkbox-list li i {
+  vertical-align: middle;
+}
+ul.acf-radio-list.acf-hl li,
+ul.acf-checkbox-list.acf-hl li {
+  margin-right: 20px;
+  clear: none;
+}
+html[dir=rtl] ul.acf-radio-list input[type=checkbox],
+html[dir=rtl] ul.acf-radio-list input[type=radio],
+html[dir=rtl] ul.acf-checkbox-list input[type=checkbox],
+html[dir=rtl] ul.acf-checkbox-list input[type=radio] {
+  margin-left: 4px;
+  margin-right: 0;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  Button Group
+*
+*-----------------------------------------------------------------------------*/
+.acf-button-group {
+  display: inline-block;
+  /* default (horizontal) */
+  /* vertical */
+}
+.acf-button-group label {
+  display: inline-block;
+  border: #7e8993 solid 1px;
+  position: relative;
+  z-index: 1;
+  padding: 5px 10px;
+  background: #fff;
+}
+.acf-button-group label:hover {
+  color: #016087;
+  background: #f3f5f6;
+  border-color: #0071a1;
+  z-index: 2;
+}
+.acf-button-group label.selected {
+  border-color: #007cba;
+  background: #008dd4;
+  color: #fff;
+  z-index: 2;
+}
+.acf-button-group input {
+  display: none !important;
+}
+.acf-button-group {
+  padding-left: 1px;
+  display: inline-flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+}
+.acf-button-group label {
+  margin: 0 0 0 -1px;
+  flex: 1;
+  text-align: center;
+  white-space: nowrap;
+}
+.acf-button-group label:first-child {
+  border-radius: 3px 0 0 3px;
+}
+html[dir=rtl] .acf-button-group label:first-child {
+  border-radius: 0 3px 3px 0;
+}
+.acf-button-group label:last-child {
+  border-radius: 0 3px 3px 0;
+}
+html[dir=rtl] .acf-button-group label:last-child {
+  border-radius: 3px 0 0 3px;
+}
+.acf-button-group label:only-child {
+  border-radius: 3px;
+}
+.acf-button-group.-vertical {
+  padding-left: 0;
+  padding-top: 1px;
+  flex-direction: column;
+}
+.acf-button-group.-vertical label {
+  margin: -1px 0 0 0;
+}
+.acf-button-group.-vertical label:first-child {
+  border-radius: 3px 3px 0 0;
+}
+.acf-button-group.-vertical label:last-child {
+  border-radius: 0 0 3px 3px;
+}
+.acf-button-group.-vertical label:only-child {
+  border-radius: 3px;
+}
+.acf-admin-3-8 .acf-button-group label {
+  border-color: #ccd0d4;
+}
+.acf-admin-3-8 .acf-button-group label:hover {
+  border-color: #0071a1;
+}
+.acf-admin-3-8 .acf-button-group label.selected {
+  border-color: #007cba;
+}
+
+.post-type-acf-field-group .acf-button-group {
+  display: flex;
+  align-items: stretch;
+  align-content: center;
+  height: 40px;
+  border-radius: 6px;
+  box-shadow: 0px 1px 2px rgba(16, 24, 40, 0.1);
+}
+.post-type-acf-field-group .acf-button-group label {
+  display: inline-flex;
+  align-items: center;
+  align-content: center;
+  border: #D0D5DD solid 1px;
+  padding: 6px 16px;
+  color: #475467;
+  font-weight: 500;
+}
+.post-type-acf-field-group .acf-button-group label:hover {
+  color: #0783BE;
+}
+.post-type-acf-field-group .acf-button-group label.selected {
+  background: #F9FAFB;
+  color: #0783BE;
+}
+.post-type-acf-field-group .select2-container.-acf .select2-selection--multiple .select2-selection__choice {
+  display: inline-flex;
+  align-items: center;
+  padding-top: 4px;
+  padding-right: auto;
+  padding-bottom: 4px;
+  padding-left: 8px;
+  background-color: #EBF5FA;
+  border-color: #A5D2E7;
+  color: #0783BE;
+}
+.post-type-acf-field-group .select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove {
+  order: 2;
+  width: 14px;
+  height: 14px;
+  margin-right: 0;
+  margin-left: 4px;
+  color: #6BB5D8;
+  text-indent: 100%;
+  white-space: nowrap;
+  overflow: hidden;
+}
+.post-type-acf-field-group .select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove:hover {
+  color: #0783BE;
+}
+.post-type-acf-field-group .select2-container.-acf .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove:before {
+  content: "";
+  display: block;
+  width: 14px;
+  height: 14px;
+  top: 0;
+  left: 0;
+  background-color: currentColor;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  -webkit-mask-image: url("../../images/icons/icon-close.svg");
+  mask-image: url("../../images/icons/icon-close.svg");
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  Checkbox
+*
+*-----------------------------------------------------------------------------*/
+.acf-checkbox-list .button {
+  margin: 10px 0 0;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  True / False
+*
+*-----------------------------------------------------------------------------*/
+.acf-switch {
+  display: inline-block;
+  border-radius: 5px;
+  cursor: pointer;
+  position: relative;
+  background: #f5f5f5;
+  height: 30px;
+  vertical-align: middle;
+  border: #7e8993 solid 1px;
+  -webkit-transition: background 0.25s ease;
+  -moz-transition: background 0.25s ease;
+  -o-transition: background 0.25s ease;
+  transition: background 0.25s ease;
+  /* hover */
+  /* active */
+  /* message */
+}
+.acf-switch span {
+  display: inline-block;
+  float: left;
+  text-align: center;
+  font-size: 13px;
+  line-height: 22px;
+  padding: 4px 10px;
+  min-width: 15px;
+}
+.acf-switch span i {
+  vertical-align: middle;
+}
+.acf-switch .acf-switch-on {
+  color: #fff;
+  text-shadow: #007cba 0 1px 0;
+}
+.acf-switch .acf-switch-slider {
+  position: absolute;
+  top: 2px;
+  left: 2px;
+  bottom: 2px;
+  right: 50%;
+  z-index: 1;
+  background: #fff;
+  border-radius: 3px;
+  border: #7e8993 solid 1px;
+  -webkit-transition: all 0.25s ease;
+  -moz-transition: all 0.25s ease;
+  -o-transition: all 0.25s ease;
+  transition: all 0.25s ease;
+  transition-property: left, right;
+}
+.acf-switch:hover, .acf-switch.-focus {
+  border-color: #0071a1;
+  background: #f3f5f6;
+  color: #016087;
+}
+.acf-switch:hover .acf-switch-slider, .acf-switch.-focus .acf-switch-slider {
+  border-color: #0071a1;
+}
+.acf-switch.-on {
+  background: #0d99d5;
+  border-color: #007cba;
+  /* hover */
+}
+.acf-switch.-on .acf-switch-slider {
+  left: 50%;
+  right: 2px;
+  border-color: #007cba;
+}
+.acf-switch.-on:hover {
+  border-color: #007cba;
+}
+.acf-switch + span {
+  margin-left: 6px;
+}
+.acf-admin-3-8 .acf-switch {
+  border-color: #ccd0d4;
+}
+.acf-admin-3-8 .acf-switch .acf-switch-slider {
+  border-color: #ccd0d4;
+}
+.acf-admin-3-8 .acf-switch:hover, .acf-admin-3-8 .acf-switch.-focus {
+  border-color: #0071a1;
+}
+.acf-admin-3-8 .acf-switch:hover .acf-switch-slider, .acf-admin-3-8 .acf-switch.-focus .acf-switch-slider {
+  border-color: #0071a1;
+}
+.acf-admin-3-8 .acf-switch.-on {
+  border-color: #007cba;
+}
+.acf-admin-3-8 .acf-switch.-on .acf-switch-slider {
+  border-color: #007cba;
+}
+.acf-admin-3-8 .acf-switch.-on:hover {
+  border-color: #007cba;
+}
+
+/* checkbox */
+.acf-switch-input {
+  opacity: 0;
+  position: absolute;
+  margin: 0;
+}
+
+.acf-admin-single-field-group .acf-true-false {
+  border: 1px solid transparent;
+}
+.acf-admin-single-field-group .acf-true-false:focus-within {
+  border: 1px solid #399CCB;
+  border-radius: 120px;
+}
+
+/* in media modal */
+.compat-item .acf-true-false .message {
+  float: none;
+  padding: 0;
+  vertical-align: middle;
+}
+
+/*--------------------------------------------------------------------------
+*
+*	Google Map
+*
+*-------------------------------------------------------------------------*/
+.acf-google-map {
+  position: relative;
+  border: #ccd0d4 solid 1px;
+  background: #fff;
+}
+.acf-google-map .title {
+  position: relative;
+  border-bottom: #ccd0d4 solid 1px;
+}
+.acf-google-map .title .search {
+  margin: 0;
+  font-size: 14px;
+  line-height: 30px;
+  height: 40px;
+  padding: 5px 10px;
+  border: 0 none;
+  box-shadow: none;
+  border-radius: 0;
+  font-family: inherit;
+  cursor: text;
+}
+.acf-google-map .title .acf-loading {
+  position: absolute;
+  top: 10px;
+  right: 11px;
+  display: none;
+}
+.acf-google-map .title .acf-icon:active {
+  display: inline-block !important;
+}
+.acf-google-map .canvas {
+  height: 400px;
+}
+.acf-google-map:hover .title .acf-actions {
+  display: block;
+}
+.acf-google-map .title .acf-icon.-location {
+  display: inline-block;
+}
+.acf-google-map .title .acf-icon.-cancel,
+.acf-google-map .title .acf-icon.-search {
+  display: none;
+}
+.acf-google-map.-value .title .search {
+  font-weight: bold;
+}
+.acf-google-map.-value .title .acf-icon.-location {
+  display: none;
+}
+.acf-google-map.-value .title .acf-icon.-cancel {
+  display: inline-block;
+}
+.acf-google-map.-searching .title .acf-icon.-location {
+  display: none;
+}
+.acf-google-map.-searching .title .acf-icon.-cancel,
+.acf-google-map.-searching .title .acf-icon.-search {
+  display: inline-block;
+}
+.acf-google-map.-searching .title .acf-actions {
+  display: block;
+}
+.acf-google-map.-searching .title .search {
+  font-weight: normal !important;
+}
+.acf-google-map.-loading .title a {
+  display: none !important;
+}
+.acf-google-map.-loading .title i {
+  display: inline-block;
+}
+
+/* autocomplete */
+.pac-container {
+  border-width: 1px 0;
+  box-shadow: none;
+}
+
+.pac-container:after {
+  display: none;
+}
+
+.pac-container .pac-item:first-child {
+  border-top: 0 none;
+}
+
+.pac-container .pac-item {
+  padding: 5px 10px;
+  cursor: pointer;
+}
+
+html[dir=rtl] .pac-container .pac-item {
+  text-align: right;
+}
+
+/*--------------------------------------------------------------------------
+*
+*	Relationship
+*
+*-------------------------------------------------------------------------*/
+.acf-relationship {
+  background: #fff;
+  border: #ccd0d4 solid 1px;
+  /* list */
+  /* selection (bottom) */
+}
+.acf-relationship .filters {
+  border-bottom: #ccd0d4 solid 1px;
+  background: #fff;
+  /* widths */
+}
+.acf-relationship .filters:after {
+  display: block;
+  clear: both;
+  content: "";
+}
+.acf-relationship .filters .filter {
+  margin: 0;
+  padding: 0;
+  float: left;
+  width: 100%;
+  box-sizing: border-box;
+  padding: 7px 7px 7px 0;
+}
+.acf-relationship .filters .filter:first-child {
+  padding-left: 7px;
+}
+.acf-relationship .filters .filter input,
+.acf-relationship .filters .filter select {
+  margin: 0;
+  float: none; /* potential fix for media popup? */
+}
+.acf-relationship .filters .filter input:focus, .acf-relationship .filters .filter input:active,
+.acf-relationship .filters .filter select:focus,
+.acf-relationship .filters .filter select:active {
+  outline: none;
+  box-shadow: none;
+}
+.acf-relationship .filters .filter input {
+  border-color: transparent;
+  box-shadow: none;
+  padding-left: 3px;
+  padding-right: 3px;
+}
+.acf-relationship .filters.-f2 .filter {
+  width: 50%;
+}
+.acf-relationship .filters.-f3 .filter {
+  width: 25%;
+}
+.acf-relationship .filters.-f3 .filter.-search {
+  width: 50%;
+}
+.acf-relationship .list {
+  margin: 0;
+  padding: 5px;
+  height: 160px;
+  overflow: auto;
+}
+.acf-relationship .list .acf-rel-label,
+.acf-relationship .list .acf-rel-item,
+.acf-relationship .list p {
+  padding: 5px;
+  margin: 0;
+  display: block;
+  position: relative;
+  min-height: 18px;
+}
+.acf-relationship .list .acf-rel-label {
+  font-weight: bold;
+}
+.acf-relationship .list .acf-rel-item {
+  cursor: pointer;
+  /* hover */
+  /* disabled */
+}
+.acf-relationship .list .acf-rel-item b {
+  text-decoration: underline;
+  font-weight: normal;
+}
+.acf-relationship .list .acf-rel-item .thumbnail {
+  background: #e0e0e0;
+  width: 22px;
+  height: 22px;
+  float: left;
+  margin: -2px 5px 0 0;
+}
+.acf-relationship .list .acf-rel-item .thumbnail img {
+  max-width: 22px;
+  max-height: 22px;
+  margin: 0 auto;
+  display: block;
+}
+.acf-relationship .list .acf-rel-item .thumbnail.-icon {
+  background: #fff;
+}
+.acf-relationship .list .acf-rel-item .thumbnail.-icon img {
+  max-height: 20px;
+  margin-top: 1px;
+}
+.acf-relationship .list .acf-rel-item:hover {
+  background: #3875d7;
+  color: #fff;
+}
+.acf-relationship .list .acf-rel-item:hover .thumbnail {
+  background: #a2bfec;
+}
+.acf-relationship .list .acf-rel-item:hover .thumbnail.-icon {
+  background: #fff;
+}
+.acf-relationship .list .acf-rel-item.disabled {
+  opacity: 0.5;
+}
+.acf-relationship .list .acf-rel-item.disabled:hover {
+  background: transparent;
+  color: #333;
+  cursor: default;
+}
+.acf-relationship .list .acf-rel-item.disabled:hover .thumbnail {
+  background: #e0e0e0;
+}
+.acf-relationship .list .acf-rel-item.disabled:hover .thumbnail.-icon {
+  background: #fff;
+}
+.acf-relationship .list ul {
+  padding-bottom: 5px;
+}
+.acf-relationship .list ul .acf-rel-label,
+.acf-relationship .list ul .acf-rel-item,
+.acf-relationship .list ul p {
+  padding-left: 20px;
+}
+.acf-relationship .selection {
+  position: relative;
+  /* choices */
+  /* values */
+}
+.acf-relationship .selection:after {
+  display: block;
+  clear: both;
+  content: "";
+}
+.acf-relationship .selection .values,
+.acf-relationship .selection .choices {
+  width: 50%;
+  background: #fff;
+  float: left;
+}
+.acf-relationship .selection .choices {
+  background: #f9f9f9;
+}
+.acf-relationship .selection .choices .list {
+  border-right: #dfdfdf solid 1px;
+}
+.acf-relationship .selection .values .acf-icon {
+  position: absolute;
+  top: 4px;
+  right: 7px;
+  display: none;
+  /* rtl */
+}
+html[dir=rtl] .acf-relationship .selection .values .acf-icon {
+  right: auto;
+  left: 7px;
+}
+.acf-relationship .selection .values .acf-rel-item:hover .acf-icon {
+  display: block;
+}
+.acf-relationship .selection .values .acf-rel-item {
+  cursor: move;
+}
+.acf-relationship .selection .values .acf-rel-item b {
+  text-decoration: none;
+}
+
+/* menu item fix */
+.menu-item .acf-relationship ul {
+  width: auto;
+}
+.menu-item .acf-relationship li {
+  display: block;
+}
+
+/*--------------------------------------------------------------------------
+*
+*	WYSIWYG
+*
+*-------------------------------------------------------------------------*/
+.acf-editor-wrap.delay .acf-editor-toolbar {
+  content: "";
+  display: block;
+  background: #f5f5f5;
+  border-bottom: #dddddd solid 1px;
+  color: #555d66;
+  padding: 10px;
+}
+.acf-editor-wrap.delay .wp-editor-area {
+  padding: 10px;
+  border: none;
+  color: inherit !important;
+}
+.acf-editor-wrap iframe {
+  min-height: 200px;
+}
+.acf-editor-wrap .wp-editor-container {
+  border: 1px solid #ccd0d4;
+  box-shadow: none !important;
+}
+.acf-editor-wrap .wp-editor-tabs {
+  box-sizing: content-box;
+}
+.acf-editor-wrap .wp-switch-editor {
+  border-color: #ccd0d4;
+  border-bottom-color: transparent;
+}
+
+#mce_fullscreen_container {
+  z-index: 900000 !important;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*	Tab
+*
+*-----------------------------------------------------------------------------*/
+.acf-field-tab {
+  display: none !important;
+}
+
+.hidden-by-tab {
+  display: none !important;
+}
+
+.acf-tab-wrap {
+  clear: both;
+  z-index: 1;
+}
+
+.acf-tab-group {
+  border-bottom: #ccc solid 1px;
+  padding: 10px 10px 0;
+}
+.acf-tab-group li {
+  margin: 0 0.5em 0 0;
+}
+.acf-tab-group li a {
+  padding: 5px 10px;
+  display: block;
+  color: #555;
+  font-size: 14px;
+  font-weight: 600;
+  line-height: 24px;
+  border: #ccc solid 1px;
+  border-bottom: 0 none;
+  text-decoration: none;
+  background: #e5e5e5;
+  transition: none;
+}
+.acf-tab-group li a:hover {
+  background: #fff;
+}
+.acf-tab-group li a:focus {
+  outline: none;
+  box-shadow: none;
+}
+.acf-tab-group li a:empty {
+  display: none;
+}
+html[dir=rtl] .acf-tab-group li {
+  margin: 0 0 0 0.5em;
+}
+.acf-tab-group li.active a {
+  background: #f1f1f1;
+  color: #000;
+  padding-bottom: 6px;
+  margin-bottom: -1px;
+  position: relative;
+  z-index: 1;
+}
+
+.acf-fields > .acf-tab-wrap {
+  background: #f9f9f9;
+}
+.acf-fields > .acf-tab-wrap .acf-tab-group {
+  position: relative;
+  border-top: #ccd0d4 solid 1px;
+  border-bottom: #ccd0d4 solid 1px;
+  z-index: 2;
+  margin-bottom: -1px;
+}
+.acf-admin-3-8 .acf-fields > .acf-tab-wrap .acf-tab-group {
+  border-color: #dfdfdf;
+}
+
+.acf-fields.-left > .acf-tab-wrap .acf-tab-group {
+  padding-left: 20%;
+  /* mobile */
+  /* rtl */
+}
+@media screen and (max-width: 640px) {
+  .acf-fields.-left > .acf-tab-wrap .acf-tab-group {
+    padding-left: 10px;
+  }
+}
+html[dir=rtl] .acf-fields.-left > .acf-tab-wrap .acf-tab-group {
+  padding-left: 0;
+  padding-right: 20%;
+  /* mobile */
+}
+@media screen and (max-width: 850px) {
+  html[dir=rtl] .acf-fields.-left > .acf-tab-wrap .acf-tab-group {
+    padding-right: 10px;
+  }
+}
+
+.acf-tab-wrap.-left .acf-tab-group {
+  position: absolute;
+  left: 0;
+  width: 20%;
+  border: 0 none;
+  padding: 0 !important; /* important overrides 'left aligned labels' */
+  margin: 1px 0 0;
+}
+.acf-tab-wrap.-left .acf-tab-group li {
+  float: none;
+  margin: -1px 0 0;
+}
+.acf-tab-wrap.-left .acf-tab-group li a {
+  border: 1px solid #ededed;
+  font-size: 13px;
+  line-height: 18px;
+  color: #0073aa;
+  padding: 10px;
+  margin: 0;
+  font-weight: normal;
+  border-width: 1px 0;
+  border-radius: 0;
+  background: transparent;
+}
+.acf-tab-wrap.-left .acf-tab-group li a:hover {
+  color: #00a0d2;
+}
+.acf-tab-wrap.-left .acf-tab-group li.active a {
+  border-color: #dfdfdf;
+  color: #000;
+  margin-right: -1px;
+  background: #fff;
+}
+html[dir=rtl] .acf-tab-wrap.-left .acf-tab-group {
+  left: auto;
+  right: 0;
+}
+html[dir=rtl] .acf-tab-wrap.-left .acf-tab-group li.active a {
+  margin-right: 0;
+  margin-left: -1px;
+}
+.acf-field + .acf-tab-wrap.-left:before {
+  content: "";
+  display: block;
+  position: relative;
+  z-index: 1;
+  height: 10px;
+  border-top: #dfdfdf solid 1px;
+  border-bottom: #dfdfdf solid 1px;
+  margin-bottom: -1px;
+}
+.acf-tab-wrap.-left:first-child .acf-tab-group li:first-child a {
+  border-top: none;
+}
+
+/* sidebar */
+.acf-fields.-sidebar {
+  padding: 0 0 0 20% !important;
+  position: relative;
+  /* before */
+  /* rtl */
+}
+.acf-fields.-sidebar:before {
+  content: "";
+  display: block;
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 20%;
+  bottom: 0;
+  border-right: #dfdfdf solid 1px;
+  background: #f9f9f9;
+  z-index: 1;
+}
+html[dir=rtl] .acf-fields.-sidebar {
+  padding: 0 20% 0 0 !important;
+}
+html[dir=rtl] .acf-fields.-sidebar:before {
+  border-left: #dfdfdf solid 1px;
+  border-right-width: 0;
+  left: auto;
+  right: 0;
+}
+.acf-fields.-sidebar.-left {
+  padding: 0 0 0 180px !important;
+  /* rtl */
+}
+html[dir=rtl] .acf-fields.-sidebar.-left {
+  padding: 0 180px 0 0 !important;
+}
+.acf-fields.-sidebar.-left:before {
+  background: #f1f1f1;
+  border-color: #dfdfdf;
+  width: 180px;
+}
+.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group {
+  width: 180px;
+}
+.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group li a {
+  border-color: #e4e4e4;
+}
+.acf-fields.-sidebar.-left > .acf-tab-wrap.-left .acf-tab-group li.active a {
+  background: #f9f9f9;
+}
+.acf-fields.-sidebar > .acf-field-tab + .acf-field {
+  border-top: none;
+}
+
+.acf-fields.-clear > .acf-tab-wrap {
+  background: transparent;
+}
+.acf-fields.-clear > .acf-tab-wrap .acf-tab-group {
+  margin-top: 0;
+  border-top: none;
+  padding-left: 0;
+  padding-right: 0;
+}
+.acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a {
+  background: #e5e5e5;
+}
+.acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a:hover {
+  background: #fff;
+}
+.acf-fields.-clear > .acf-tab-wrap .acf-tab-group li.active a {
+  background: #f1f1f1;
+}
+
+/* seamless */
+.acf-postbox.seamless > .acf-fields.-sidebar {
+  margin-left: 0 !important;
+}
+.acf-postbox.seamless > .acf-fields.-sidebar:before {
+  background: transparent;
+}
+.acf-postbox.seamless > .acf-fields > .acf-tab-wrap {
+  background: transparent;
+  margin-bottom: 10px;
+  padding-left: 12px;
+  padding-right: 12px;
+}
+.acf-postbox.seamless > .acf-fields > .acf-tab-wrap .acf-tab-group {
+  border-top: 0 none;
+  border-color: #ccd0d4;
+}
+.acf-postbox.seamless > .acf-fields > .acf-tab-wrap .acf-tab-group li a {
+  background: #e5e5e5;
+  border-color: #ccd0d4;
+}
+.acf-postbox.seamless > .acf-fields > .acf-tab-wrap .acf-tab-group li a:hover {
+  background: #fff;
+}
+.acf-postbox.seamless > .acf-fields > .acf-tab-wrap .acf-tab-group li.active a {
+  background: #f1f1f1;
+}
+.acf-postbox.seamless > .acf-fields > .acf-tab-wrap.-left:before {
+  border-top: none;
+  height: auto;
+}
+.acf-postbox.seamless > .acf-fields > .acf-tab-wrap.-left .acf-tab-group {
+  margin-bottom: 0;
+}
+.acf-postbox.seamless > .acf-fields > .acf-tab-wrap.-left .acf-tab-group li a {
+  border-width: 1px 0 1px 1px !important;
+  border-color: #cccccc;
+  background: #e5e5e5;
+}
+.acf-postbox.seamless > .acf-fields > .acf-tab-wrap.-left .acf-tab-group li.active a {
+  background: #f1f1f1;
+}
+
+.menu-edit .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a,
+.widget .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a {
+  background: #f1f1f1;
+}
+.menu-edit .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a:hover, .menu-edit .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li.active a,
+.widget .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li a:hover,
+.widget .acf-fields.-clear > .acf-tab-wrap .acf-tab-group li.active a {
+  background: #fff;
+}
+
+.compat-item .acf-tab-wrap td {
+  display: block;
+}
+
+/* within gallery sidebar */
+.acf-gallery-side .acf-tab-wrap {
+  border-top: 0 none !important;
+}
+
+.acf-gallery-side .acf-tab-wrap .acf-tab-group {
+  margin: 10px 0 !important;
+  padding: 0 !important;
+}
+
+.acf-gallery-side .acf-tab-group li.active a {
+  background: #f9f9f9 !important;
+}
+
+/* withing widget */
+.widget .acf-tab-group {
+  border-bottom-color: #e8e8e8;
+}
+
+.widget .acf-tab-group li a {
+  background: #f1f1f1;
+}
+
+.widget .acf-tab-group li.active a {
+  background: #fff;
+}
+
+/* media popup (edit image) */
+.media-modal.acf-expanded .compat-attachment-fields > tbody > tr.acf-tab-wrap .acf-tab-group {
+  padding-left: 23%;
+  border-bottom-color: #dddddd;
+}
+
+/* table */
+.form-table > tbody > tr.acf-tab-wrap .acf-tab-group {
+  padding: 0 5px 0 210px;
+}
+
+/* rtl */
+html[dir=rtl] .form-table > tbody > tr.acf-tab-wrap .acf-tab-group {
+  padding: 0 210px 0 5px;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	oembed
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-oembed {
+  position: relative;
+  border: #ccd0d4 solid 1px;
+  background: #fff;
+}
+.acf-oembed .title {
+  position: relative;
+  border-bottom: #ccd0d4 solid 1px;
+  padding: 5px 10px;
+}
+.acf-oembed .title .input-search {
+  margin: 0;
+  font-size: 14px;
+  line-height: 30px;
+  height: 30px;
+  padding: 0;
+  border: 0 none;
+  box-shadow: none;
+  border-radius: 0;
+  font-family: inherit;
+  cursor: text;
+}
+.acf-oembed .title .acf-actions {
+  padding: 6px;
+}
+.acf-oembed .canvas {
+  position: relative;
+  min-height: 250px;
+  background: #f9f9f9;
+}
+.acf-oembed .canvas .canvas-media {
+  position: relative;
+  z-index: 1;
+}
+.acf-oembed .canvas iframe {
+  display: block;
+  margin: 0;
+  padding: 0;
+  width: 100%;
+}
+.acf-oembed .canvas .acf-icon.-picture {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  z-index: 0;
+  height: 42px;
+  width: 42px;
+  font-size: 42px;
+  color: #999;
+}
+.acf-oembed .canvas .acf-loading-overlay {
+  background: rgba(255, 255, 255, 0.9);
+}
+.acf-oembed .canvas .canvas-error {
+  position: absolute;
+  top: 50%;
+  left: 0%;
+  right: 0%;
+  margin: -9px 0 0 0;
+  text-align: center;
+  display: none;
+}
+.acf-oembed .canvas .canvas-error p {
+  padding: 8px;
+  margin: 0;
+  display: inline;
+}
+.acf-oembed.has-value .canvas {
+  min-height: 50px;
+}
+.acf-oembed.has-value .input-search {
+  font-weight: bold;
+}
+.acf-oembed.has-value .title:hover .acf-actions {
+  display: block;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Image
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-image-uploader {
+  position: relative;
+  /* image wrap*/
+  /* input */
+  /* rtl */
+}
+.acf-image-uploader:after {
+  display: block;
+  clear: both;
+  content: "";
+}
+.acf-image-uploader p {
+  margin: 0;
+}
+.acf-image-uploader .image-wrap {
+  position: relative;
+  float: left;
+  /* hover */
+}
+.acf-image-uploader .image-wrap img {
+  max-width: 100%;
+  max-height: 100%;
+  width: auto;
+  height: auto;
+  display: block;
+  min-width: 30px;
+  min-height: 30px;
+  background: #f1f1f1;
+  margin: 0;
+  padding: 0;
+  /* svg */
+}
+.acf-image-uploader .image-wrap img[src$=".svg"] {
+  min-height: 100px;
+  min-width: 100px;
+}
+.acf-image-uploader .image-wrap:hover .acf-actions {
+  display: block;
+}
+.acf-image-uploader input.button {
+  width: auto;
+}
+html[dir=rtl] .acf-image-uploader .image-wrap {
+  float: right;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	File
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-file-uploader {
+  position: relative;
+  /* hover */
+  /* rtl */
+}
+.acf-file-uploader p {
+  margin: 0;
+}
+.acf-file-uploader .file-wrap {
+  border: #ccd0d4 solid 1px;
+  min-height: 84px;
+  position: relative;
+  background: #fff;
+}
+.acf-file-uploader .file-icon {
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  padding: 10px;
+  background: #f1f1f1;
+  border-right: #d5d9dd solid 1px;
+}
+.acf-file-uploader .file-icon img {
+  display: block;
+  padding: 0;
+  margin: 0;
+  max-width: 48px;
+}
+.acf-file-uploader .file-info {
+  padding: 10px;
+  margin-left: 69px;
+}
+.acf-file-uploader .file-info p {
+  margin: 0 0 2px;
+  font-size: 13px;
+  line-height: 1.4em;
+  word-break: break-all;
+}
+.acf-file-uploader .file-info a {
+  text-decoration: none;
+}
+.acf-file-uploader:hover .acf-actions {
+  display: block;
+}
+html[dir=rtl] .acf-file-uploader .file-icon {
+  left: auto;
+  right: 0;
+  border-left: #e5e5e5 solid 1px;
+  border-right: none;
+}
+html[dir=rtl] .acf-file-uploader .file-info {
+  margin-right: 69px;
+  margin-left: 0;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*	Date Picker
+*
+*-----------------------------------------------------------------------------*/
+.acf-ui-datepicker .ui-datepicker {
+  z-index: 900000 !important;
+}
+.acf-ui-datepicker .ui-datepicker .ui-widget-header a {
+  cursor: pointer;
+  transition: none;
+}
+
+/* fix highlight state overriding hover / active */
+.acf-ui-datepicker .ui-state-highlight.ui-state-hover {
+  border: 1px solid #98b7e8 !important;
+  background: #98b7e8 !important;
+  font-weight: normal !important;
+  color: #ffffff !important;
+}
+
+.acf-ui-datepicker .ui-state-highlight.ui-state-active {
+  border: 1px solid #3875d7 !important;
+  background: #3875d7 !important;
+  font-weight: normal !important;
+  color: #ffffff !important;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*	Separator field
+*
+*-----------------------------------------------------------------------------*/
+.acf-field-separator {
+  /* fields */
+}
+.acf-field-separator .acf-label {
+  margin-bottom: 0;
+}
+.acf-field-separator .acf-label label {
+  font-weight: normal;
+}
+.acf-field-separator .acf-input {
+  display: none;
+}
+.acf-fields > .acf-field-separator {
+  background: #f9f9f9;
+  border-bottom: 1px solid #dfdfdf;
+  border-top: 1px solid #dfdfdf;
+  margin-bottom: -1px;
+  z-index: 2;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*	Taxonomy
+*
+*-----------------------------------------------------------------------------*/
+.acf-taxonomy-field {
+  position: relative;
+  /* hover */
+  /* select */
+}
+.acf-taxonomy-field .categorychecklist-holder {
+  border: #ccd0d4 solid 1px;
+  border-radius: 3px;
+  max-height: 200px;
+  overflow: auto;
+}
+.acf-taxonomy-field .acf-checkbox-list {
+  margin: 0;
+  padding: 10px;
+}
+.acf-taxonomy-field .acf-checkbox-list ul.children {
+  padding-left: 18px;
+}
+.acf-taxonomy-field:hover .acf-actions {
+  display: block;
+}
+.acf-taxonomy-field[data-ftype=select] .acf-actions {
+  padding: 0;
+  margin: -9px;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*	Range
+*
+*-----------------------------------------------------------------------------*/
+.acf-range-wrap {
+  /* rtl */
+}
+.acf-range-wrap .acf-append,
+.acf-range-wrap .acf-prepend {
+  display: inline-block;
+  vertical-align: middle;
+  line-height: 28px;
+  margin: 0 7px 0 0;
+}
+.acf-range-wrap .acf-append {
+  margin: 0 0 0 7px;
+}
+.acf-range-wrap input[type=range] {
+  display: inline-block;
+  padding: 0;
+  margin: 0;
+  vertical-align: middle;
+  height: 28px;
+}
+.acf-range-wrap input[type=range]:focus {
+  outline: none;
+}
+.acf-range-wrap input[type=number] {
+  display: inline-block;
+  min-width: 3em;
+  margin-left: 10px;
+  vertical-align: middle;
+}
+html[dir=rtl] .acf-range-wrap input[type=number] {
+  margin-right: 10px;
+  margin-left: 0;
+}
+html[dir=rtl] .acf-range-wrap .acf-append {
+  margin: 0 7px 0 0;
+}
+html[dir=rtl] .acf-range-wrap .acf-prepend {
+  margin: 0 0 0 7px;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  acf-accordion
+*
+*-----------------------------------------------------------------------------*/
+.acf-accordion {
+  margin: -1px 0;
+  padding: 0;
+  background: #fff;
+  border-top: 1px solid #d5d9dd;
+  border-bottom: 1px solid #d5d9dd;
+  z-index: 1;
+}
+.acf-accordion .acf-accordion-title {
+  margin: 0;
+  padding: 12px;
+  font-weight: bold;
+  cursor: pointer;
+  font-size: inherit;
+  font-size: 13px;
+  line-height: 1.4em;
+}
+.acf-accordion .acf-accordion-title:hover {
+  background: #f3f4f5;
+}
+.acf-accordion .acf-accordion-title label {
+  margin: 0;
+  padding: 0;
+  font-size: 13px;
+  line-height: 1.4em;
+}
+.acf-accordion .acf-accordion-title p {
+  font-weight: normal;
+}
+.acf-accordion .acf-accordion-title .acf-accordion-icon {
+  float: right;
+}
+.acf-accordion .acf-accordion-title svg.acf-accordion-icon {
+  position: absolute;
+  right: 10px;
+  top: 50%;
+  transform: translateY(-50%);
+  color: #191e23;
+  fill: currentColor;
+}
+.acf-accordion .acf-accordion-content {
+  margin: 0;
+  padding: 0 12px 12px;
+  display: none;
+}
+.acf-accordion.-open > .acf-accordion-content {
+  display: block;
+}
+
+.acf-field.acf-accordion {
+  margin: -1px 0;
+  padding: 0 !important;
+  border-color: #d5d9dd;
+}
+.acf-field.acf-accordion .acf-label.acf-accordion-title {
+  padding: 12px;
+  width: auto;
+  float: none;
+  width: auto;
+}
+.acf-field.acf-accordion .acf-input.acf-accordion-content {
+  padding: 0;
+  float: none;
+  width: auto;
+}
+.acf-field.acf-accordion .acf-input.acf-accordion-content > .acf-fields {
+  border-top: #eeeeee solid 1px;
+}
+.acf-field.acf-accordion .acf-input.acf-accordion-content > .acf-fields.-clear {
+  padding: 0 12px 15px;
+}
+
+/* field specific (left) */
+.acf-fields.-left > .acf-field.acf-accordion:before {
+  display: none;
+}
+.acf-fields.-left > .acf-field.acf-accordion .acf-accordion-title {
+  width: auto;
+  margin: 0 !important;
+  padding: 12px;
+  float: none !important;
+}
+.acf-fields.-left > .acf-field.acf-accordion .acf-accordion-content {
+  padding: 0 !important;
+}
+
+/* field specific (clear) */
+.acf-fields.-clear > .acf-field.acf-accordion {
+  border: #cccccc solid 1px;
+  background: transparent;
+}
+.acf-fields.-clear > .acf-field.acf-accordion + .acf-field.acf-accordion {
+  margin-top: -16px;
+}
+
+/* table */
+tr.acf-field.acf-accordion {
+  background: transparent;
+}
+tr.acf-field.acf-accordion > .acf-input {
+  padding: 0 !important;
+  border: #cccccc solid 1px;
+}
+tr.acf-field.acf-accordion .acf-accordion-content {
+  padding: 0 12px 12px;
+}
+
+/* #addtag */
+#addtag div.acf-field.error {
+  border: 0 none;
+  padding: 8px 0;
+}
+
+#addtag > .acf-field.acf-accordion {
+  padding-right: 0;
+  margin-right: 5%;
+}
+#addtag > .acf-field.acf-accordion + p.submit {
+  margin-top: 0;
+}
+
+/* border */
+tr.acf-accordion {
+  margin: 15px 0 !important;
+}
+tr.acf-accordion + tr.acf-accordion {
+  margin-top: -16px !important;
+}
+
+/* seamless */
+.acf-postbox.seamless > .acf-fields > .acf-accordion {
+  margin-left: 12px;
+  margin-right: 12px;
+  border: #ccd0d4 solid 1px;
+}
+
+/* rtl */
+/* menu item */
+/*
+.menu-item-settings > .field-acf > .acf-field.acf-accordion {
+	border: #dfdfdf solid 1px;
+	margin: 10px -13px 10px -11px;
+
+	+ .acf-field.acf-accordion {
+		margin-top: -11px;
+	}
+}
+*/
+/* widget */
+.widget .widget-content > .acf-field.acf-accordion {
+  border: #dfdfdf solid 1px;
+  margin-bottom: 10px;
+}
+.widget .widget-content > .acf-field.acf-accordion .acf-accordion-title {
+  margin-bottom: 0;
+}
+.widget .widget-content > .acf-field.acf-accordion + .acf-field.acf-accordion {
+  margin-top: -11px;
+}
+
+.media-modal .compat-attachment-fields .acf-field.acf-accordion + .acf-field.acf-accordion {
+  margin-top: -1px;
+}
+.media-modal .compat-attachment-fields .acf-field.acf-accordion > .acf-input {
+  width: 100%;
+}
+.media-modal .compat-attachment-fields .acf-field.acf-accordion .compat-attachment-fields > tbody > tr > td {
+  padding-bottom: 5px;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*	Block Editor
+*
+*-----------------------------------------------------------------------------*/
+.block-editor .edit-post-sidebar .acf-postbox > .postbox-header,
+.block-editor .edit-post-sidebar .acf-postbox > .hndle {
+  border-bottom-width: 0 !important;
+}
+.block-editor .edit-post-sidebar .acf-postbox.closed > .postbox-header,
+.block-editor .edit-post-sidebar .acf-postbox.closed > .hndle {
+  border-bottom-width: 1px !important;
+}
+.block-editor .edit-post-sidebar .acf-fields {
+  min-height: 1px;
+  overflow: auto;
+}
+.block-editor .edit-post-sidebar .acf-fields > .acf-field {
+  border-width: 0;
+  border-color: #e2e4e7;
+  margin: 16px;
+  padding: 0;
+  width: auto !important;
+  min-height: 0 !important;
+  float: none !important;
+}
+.block-editor .edit-post-sidebar .acf-fields > .acf-field > .acf-label {
+  margin-bottom: 5px;
+}
+.block-editor .edit-post-sidebar .acf-fields > .acf-field > .acf-label label {
+  font-weight: normal;
+}
+.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion {
+  padding: 0;
+  margin: 0;
+  border-top-width: 1px;
+}
+.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion:first-child {
+  border-top-width: 0;
+}
+.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion .acf-accordion-title {
+  margin: 0;
+  padding: 15px;
+}
+.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion .acf-accordion-title label {
+  font-weight: 500;
+  color: rgb(30, 30, 30);
+}
+.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion .acf-accordion-title svg.acf-accordion-icon {
+  right: 16px;
+}
+.block-editor .edit-post-sidebar .acf-fields > .acf-field.acf-accordion .acf-accordion-content > .acf-fields {
+  border-top-width: 0;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  Prefix field label & prefix field names
+*
+*-----------------------------------------------------------------------------*/
+.acf-field-setting-prefix_label p.description,
+.acf-field-setting-prefix_name p.description {
+  order: 3;
+  margin-top: 0;
+  margin-left: 16px;
+}
+.acf-field-setting-prefix_label p.description code,
+.acf-field-setting-prefix_name p.description code {
+  padding-top: 4px;
+  padding-right: 6px;
+  padding-bottom: 4px;
+  padding-left: 6px;
+  background-color: #F2F4F7;
+  border-radius: 4px;
+  color: #667085;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*  Editor tab styles
+*
+*-----------------------------------------------------------------------------*/
+.acf-fields > .acf-tab-wrap:first-child .acf-tab-group {
+  border-top: none;
+}
+
+.acf-fields > .acf-tab-wrap .acf-tab-group li.active a {
+  background: #ffffff;
+}
+
+.acf-fields > .acf-tab-wrap .acf-tab-group li a {
+  background: #f1f1f1;
+  border-color: #ccd0d4;
+}
+
+.acf-fields > .acf-tab-wrap .acf-tab-group li a:hover {
+  background: #fff;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	User
+*
+*--------------------------------------------------------------------------------------------*/
+.form-table > tbody {
+  /* field */
+  /* tab wrap */
+  /* misc */
+}
+.form-table > tbody > .acf-field {
+  /* label */
+  /* input */
+}
+.form-table > tbody > .acf-field > .acf-label {
+  padding: 20px 10px 20px 0;
+  width: 210px;
+  /* rtl */
+}
+html[dir=rtl] .form-table > tbody > .acf-field > .acf-label {
+  padding: 20px 0 20px 10px;
+}
+.form-table > tbody > .acf-field > .acf-label label {
+  font-size: 14px;
+  color: #23282d;
+}
+.form-table > tbody > .acf-field > .acf-input {
+  padding: 15px 10px;
+  /* rtl */
+}
+html[dir=rtl] .form-table > tbody > .acf-field > .acf-input {
+  padding: 15px 10px 15px 5%;
+}
+.form-table > tbody > .acf-tab-wrap td {
+  padding: 15px 5% 15px 0;
+  /* rtl */
+}
+html[dir=rtl] .form-table > tbody > .acf-tab-wrap td {
+  padding: 15px 0 15px 5%;
+}
+.form-table > tbody .form-table th.acf-th {
+  width: auto;
+}
+
+#your-profile,
+#createuser {
+  /* override for user css */
+  /* allow sub fields to display correctly */
+}
+#your-profile .acf-field input[type=text],
+#your-profile .acf-field input[type=password],
+#your-profile .acf-field input[type=number],
+#your-profile .acf-field input[type=search],
+#your-profile .acf-field input[type=email],
+#your-profile .acf-field input[type=url],
+#your-profile .acf-field select,
+#createuser .acf-field input[type=text],
+#createuser .acf-field input[type=password],
+#createuser .acf-field input[type=number],
+#createuser .acf-field input[type=search],
+#createuser .acf-field input[type=email],
+#createuser .acf-field input[type=url],
+#createuser .acf-field select {
+  max-width: 25em;
+}
+#your-profile .acf-field textarea,
+#createuser .acf-field textarea {
+  max-width: 500px;
+}
+#your-profile .acf-field .acf-field input[type=text],
+#your-profile .acf-field .acf-field input[type=password],
+#your-profile .acf-field .acf-field input[type=number],
+#your-profile .acf-field .acf-field input[type=search],
+#your-profile .acf-field .acf-field input[type=email],
+#your-profile .acf-field .acf-field input[type=url],
+#your-profile .acf-field .acf-field textarea,
+#your-profile .acf-field .acf-field select,
+#createuser .acf-field .acf-field input[type=text],
+#createuser .acf-field .acf-field input[type=password],
+#createuser .acf-field .acf-field input[type=number],
+#createuser .acf-field .acf-field input[type=search],
+#createuser .acf-field .acf-field input[type=email],
+#createuser .acf-field .acf-field input[type=url],
+#createuser .acf-field .acf-field textarea,
+#createuser .acf-field .acf-field select {
+  max-width: none;
+}
+
+#registerform h2 {
+  margin: 1em 0;
+}
+#registerform .acf-field {
+  margin-top: 0;
+  /*
+  		.acf-input {
+  			input {
+  				font-size: 24px;
+  				padding: 5px;
+  				height: auto;
+  			}
+  		}
+  */
+}
+#registerform .acf-field .acf-label {
+  margin-bottom: 0;
+}
+#registerform .acf-field .acf-label label {
+  font-weight: normal;
+  line-height: 1.5;
+}
+#registerform p.submit {
+  text-align: right;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Term
+*
+*--------------------------------------------------------------------------------------------*/
+#acf-term-fields {
+  padding-right: 5%;
+}
+#acf-term-fields > .acf-field > .acf-label {
+  margin: 0;
+}
+#acf-term-fields > .acf-field > .acf-label label {
+  font-size: 12px;
+  font-weight: normal;
+}
+
+p.submit .spinner,
+p.submit .acf-spinner {
+  vertical-align: top;
+  float: none;
+  margin: 4px 4px 0;
+}
+
+#edittag .acf-fields.-left > .acf-field {
+  padding-left: 220px;
+}
+#edittag .acf-fields.-left > .acf-field:before {
+  width: 209px;
+}
+#edittag .acf-fields.-left > .acf-field > .acf-label {
+  width: 220px;
+  margin-left: -220px;
+  padding: 0 10px;
+}
+#edittag .acf-fields.-left > .acf-field > .acf-input {
+  padding: 0;
+}
+
+#edittag > .acf-fields.-left {
+  width: 96%;
+}
+#edittag > .acf-fields.-left > .acf-field > .acf-label {
+  padding-left: 0;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Comment
+*
+*--------------------------------------------------------------------------------------------*/
+.editcomment td:first-child {
+  white-space: nowrap;
+  width: 131px;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Widget
+*
+*--------------------------------------------------------------------------------------------*/
+#widgets-right .widget .acf-field .description {
+  padding-left: 0;
+  padding-right: 0;
+}
+
+.acf-widget-fields > .acf-field .acf-label {
+  margin-bottom: 5px;
+}
+.acf-widget-fields > .acf-field .acf-label label {
+  font-weight: normal;
+  margin: 0;
+}
+
+/*--------------------------------------------------------------------------------------------
+*
+*	Nav Menu
+*
+*--------------------------------------------------------------------------------------------*/
+.acf-menu-settings {
+  border-top: 1px solid #eee;
+  margin-top: 2em;
+}
+.acf-menu-settings.-seamless {
+  border-top: none;
+  margin-top: 15px;
+}
+.acf-menu-settings.-seamless > h2 {
+  display: none;
+}
+.acf-menu-settings .list li {
+  display: block;
+  margin-bottom: 0;
+}
+
+.acf-fields.acf-menu-item-fields {
+  clear: both;
+  padding-top: 1px;
+}
+.acf-fields.acf-menu-item-fields > .acf-field {
+  margin: 5px 0;
+  padding-right: 10px;
+}
+.acf-fields.acf-menu-item-fields > .acf-field .acf-label {
+  margin-bottom: 0;
+}
+.acf-fields.acf-menu-item-fields > .acf-field .acf-label label {
+  font-style: italic;
+  font-weight: normal;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Attachment Form (single)
+*
+*---------------------------------------------------------------------------------------------*/
+#post .compat-attachment-fields .compat-field-acf-form-data {
+  display: none;
+}
+#post .compat-attachment-fields,
+#post .compat-attachment-fields > tbody,
+#post .compat-attachment-fields > tbody > tr,
+#post .compat-attachment-fields > tbody > tr > th,
+#post .compat-attachment-fields > tbody > tr > td {
+  display: block;
+}
+#post .compat-attachment-fields > tbody > .acf-field {
+  margin: 15px 0;
+}
+#post .compat-attachment-fields > tbody > .acf-field > .acf-label {
+  margin: 0;
+}
+#post .compat-attachment-fields > tbody > .acf-field > .acf-label label {
+  margin: 0;
+  padding: 0;
+}
+#post .compat-attachment-fields > tbody > .acf-field > .acf-label label p {
+  margin: 0 0 3px !important;
+}
+#post .compat-attachment-fields > tbody > .acf-field > .acf-input {
+  margin: 0;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Media Model
+*
+*---------------------------------------------------------------------------------------------*/
+/* WP sets tables to act as divs. ACF uses tables, so these muct be reset */
+.media-modal .compat-attachment-fields td.acf-input table {
+  display: table;
+  table-layout: auto;
+}
+.media-modal .compat-attachment-fields td.acf-input table tbody {
+  display: table-row-group;
+}
+.media-modal .compat-attachment-fields td.acf-input table tr {
+  display: table-row;
+}
+.media-modal .compat-attachment-fields td.acf-input table td, .media-modal .compat-attachment-fields td.acf-input table th {
+  display: table-cell;
+}
+
+/* field widths floats */
+.media-modal .compat-attachment-fields > tbody > .acf-field {
+  margin: 5px 0;
+}
+.media-modal .compat-attachment-fields > tbody > .acf-field > .acf-label {
+  min-width: 30%;
+  margin: 0;
+  padding: 0;
+  float: left;
+  text-align: right;
+  display: block;
+  float: left;
+}
+.media-modal .compat-attachment-fields > tbody > .acf-field > .acf-label > label {
+  padding-top: 6px;
+  margin: 0;
+  color: #666666;
+  font-weight: 400;
+  line-height: 16px;
+}
+.media-modal .compat-attachment-fields > tbody > .acf-field > .acf-input {
+  width: 65%;
+  margin: 0;
+  padding: 0;
+  float: right;
+  display: block;
+}
+.media-modal .compat-attachment-fields > tbody > .acf-field p.description {
+  margin: 0;
+}
+
+/* restricted selection (copy of WP .upload-errors)*/
+.acf-selection-error {
+  background: #ffebe8;
+  border: 1px solid #c00;
+  border-radius: 3px;
+  padding: 8px;
+  margin: 20px 0 0;
+}
+.acf-selection-error .selection-error-label {
+  background: #CC0000;
+  border-radius: 3px;
+  color: #fff;
+  font-weight: bold;
+  margin-right: 8px;
+  padding: 2px 4px;
+}
+.acf-selection-error .selection-error-message {
+  color: #b44;
+  display: block;
+  padding-top: 8px;
+  word-wrap: break-word;
+  white-space: pre-wrap;
+}
+
+/* disabled attachment */
+.media-modal .attachment.acf-disabled .thumbnail {
+  opacity: 0.25 !important;
+}
+.media-modal .attachment.acf-disabled .attachment-preview:before {
+  background: rgba(0, 0, 0, 0.15);
+  z-index: 1;
+  position: relative;
+}
+
+/* misc */
+.media-modal {
+  /* compat-item */
+  /* allow line breaks in upload error */
+  /* fix required span */
+  /* sidebar */
+  /* mobile md */
+}
+.media-modal .compat-field-acf-form-data,
+.media-modal .compat-field-acf-blank {
+  display: none !important;
+}
+.media-modal .upload-error-message {
+  white-space: pre-wrap;
+}
+.media-modal .acf-required {
+  padding: 0 !important;
+  margin: 0 !important;
+  float: none !important;
+  color: #f00 !important;
+}
+.media-modal .media-sidebar .compat-item {
+  padding-bottom: 20px;
+}
+@media (max-width: 900px) {
+  .media-modal {
+    /* label */
+    /* field */
+  }
+  .media-modal .setting span,
+  .media-modal .compat-attachment-fields > tbody > .acf-field > .acf-label {
+    width: 98%;
+    float: none;
+    text-align: left;
+    min-height: 0;
+    padding: 0;
+  }
+  .media-modal .setting input,
+  .media-modal .setting textarea,
+  .media-modal .compat-attachment-fields > tbody > .acf-field > .acf-input {
+    float: none;
+    height: auto;
+    max-width: none;
+    width: 98%;
+  }
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Media Model (expand details)
+*
+*---------------------------------------------------------------------------------------------*/
+.media-modal .acf-expand-details {
+  float: right;
+  padding: 8px 10px;
+  margin-right: 6px;
+  font-size: 13px;
+  height: 18px;
+  line-height: 18px;
+  color: #666;
+  text-decoration: none;
+}
+.media-modal .acf-expand-details:focus, .media-modal .acf-expand-details:active {
+  outline: 0 none;
+  box-shadow: none;
+  color: #666;
+}
+.media-modal .acf-expand-details:hover {
+  color: #000;
+}
+.media-modal .acf-expand-details .is-open {
+  display: none;
+}
+.media-modal .acf-expand-details .is-closed {
+  display: block;
+}
+@media (max-width: 640px) {
+  .media-modal .acf-expand-details {
+    display: none;
+  }
+}
+
+/* expanded */
+.media-modal.acf-expanded {
+  /* toggle */
+}
+.media-modal.acf-expanded .acf-expand-details .is-open {
+  display: block;
+}
+.media-modal.acf-expanded .acf-expand-details .is-closed {
+  display: none;
+}
+.media-modal.acf-expanded .attachments-browser .media-toolbar,
+.media-modal.acf-expanded .attachments-browser .attachments {
+  right: 740px;
+}
+.media-modal.acf-expanded .media-sidebar {
+  width: 708px;
+}
+.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail {
+  float: left;
+  max-height: none;
+}
+.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail img {
+  max-width: 100%;
+  max-height: 200px;
+}
+.media-modal.acf-expanded .media-sidebar .attachment-info .details {
+  float: right;
+}
+.media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail,
+.media-modal.acf-expanded .media-sidebar .attachment-details .setting .name,
+.media-modal.acf-expanded .media-sidebar .compat-attachment-fields > tbody > .acf-field > .acf-label {
+  min-width: 20%;
+  margin-right: 0;
+}
+.media-modal.acf-expanded .media-sidebar .attachment-info .details,
+.media-modal.acf-expanded .media-sidebar .attachment-details .setting input,
+.media-modal.acf-expanded .media-sidebar .attachment-details .setting textarea,
+.media-modal.acf-expanded .media-sidebar .attachment-details .setting + .description,
+.media-modal.acf-expanded .media-sidebar .compat-attachment-fields > tbody > .acf-field > .acf-input {
+  min-width: 77%;
+}
+@media (max-width: 900px) {
+  .media-modal.acf-expanded .attachments-browser .media-toolbar {
+    display: none;
+  }
+  .media-modal.acf-expanded .attachments {
+    display: none;
+  }
+  .media-modal.acf-expanded .media-sidebar {
+    width: auto;
+    max-width: none !important;
+    bottom: 0 !important;
+  }
+  .media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail {
+    min-width: 0;
+    max-width: none;
+    width: 30%;
+  }
+  .media-modal.acf-expanded .media-sidebar .attachment-info .details {
+    min-width: 0;
+    max-width: none;
+    width: 67%;
+  }
+}
+@media (max-width: 640px) {
+  .media-modal.acf-expanded .media-sidebar .attachment-info .thumbnail, .media-modal.acf-expanded .media-sidebar .attachment-info .details {
+    width: 100%;
+  }
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  ACF Media Model
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-media-modal {
+  /* hide embed settings */
+}
+.acf-media-modal .media-embed .setting.align,
+.acf-media-modal .media-embed .setting.link-to {
+  display: none;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  ACF Media Model (Select Mode)
+*
+*---------------------------------------------------------------------------------------------*/
+/*---------------------------------------------------------------------------------------------
+*
+*  ACF Media Model (Edit Mode)
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-media-modal.-edit {
+  /* resize modal */
+  left: 15%;
+  right: 15%;
+  top: 100px;
+  bottom: 100px;
+  /* hide elements */
+  /* full width */
+  /* tidy up incorrect distance */
+  /* title box shadow (to match media grid) */
+  /* sidebar */
+  /* mobile md */
+  /* mobile sm */
+}
+.acf-media-modal.-edit .media-frame-menu,
+.acf-media-modal.-edit .media-frame-router,
+.acf-media-modal.-edit .media-frame-content .attachments,
+.acf-media-modal.-edit .media-frame-content .media-toolbar {
+  display: none;
+}
+.acf-media-modal.-edit .media-frame-title,
+.acf-media-modal.-edit .media-frame-content,
+.acf-media-modal.-edit .media-frame-toolbar,
+.acf-media-modal.-edit .media-sidebar {
+  width: auto;
+  left: 0;
+  right: 0;
+}
+.acf-media-modal.-edit .media-frame-content {
+  top: 50px;
+}
+.acf-media-modal.-edit .media-frame-title {
+  border-bottom: 1px solid #DFDFDF;
+  box-shadow: 0 4px 4px -4px rgba(0, 0, 0, 0.1);
+}
+.acf-media-modal.-edit .media-sidebar {
+  padding: 0 16px;
+  /* WP details */
+  /* ACF fields */
+  /* WP required message */
+}
+.acf-media-modal.-edit .media-sidebar .attachment-details {
+  overflow: visible;
+  /* hide 'Attachment Details' heading */
+  /* remove overflow */
+  /* move thumbnail */
+}
+.acf-media-modal.-edit .media-sidebar .attachment-details > h3, .acf-media-modal.-edit .media-sidebar .attachment-details > h2 {
+  display: none;
+}
+.acf-media-modal.-edit .media-sidebar .attachment-details .attachment-info {
+  background: #fff;
+  border-bottom: #dddddd solid 1px;
+  padding: 16px;
+  margin: 0 -16px 16px;
+}
+.acf-media-modal.-edit .media-sidebar .attachment-details .thumbnail {
+  margin: 0 16px 0 0;
+}
+.acf-media-modal.-edit .media-sidebar .attachment-details .setting {
+  margin: 0 0 5px;
+}
+.acf-media-modal.-edit .media-sidebar .attachment-details .setting span {
+  margin: 0;
+}
+.acf-media-modal.-edit .media-sidebar .compat-attachment-fields > tbody > .acf-field {
+  margin: 0 0 5px;
+}
+.acf-media-modal.-edit .media-sidebar .compat-attachment-fields > tbody > .acf-field p.description {
+  margin-top: 3px;
+}
+.acf-media-modal.-edit .media-sidebar .media-types-required-info {
+  display: none;
+}
+@media (max-width: 900px) {
+  .acf-media-modal.-edit {
+    top: 30px;
+    right: 30px;
+    bottom: 30px;
+    left: 30px;
+  }
+}
+@media (max-width: 640px) {
+  .acf-media-modal.-edit {
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+  }
+}
+@media (max-width: 480px) {
+  .acf-media-modal.-edit .media-frame-content {
+    top: 40px;
+  }
+}
+
+.acf-temp-remove {
+  position: relative;
+  opacity: 1;
+  -webkit-transition: all 0.25s ease;
+  -moz-transition: all 0.25s ease;
+  -o-transition: all 0.25s ease;
+  transition: all 0.25s ease;
+  overflow: hidden;
+  /* overlay prevents hover */
+}
+.acf-temp-remove:after {
+  display: block;
+  content: "";
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 99;
+}
+
+.hidden-by-conditional-logic {
+  display: none !important;
+}
+.hidden-by-conditional-logic.appear-empty {
+  display: table-cell !important;
+}
+.hidden-by-conditional-logic.appear-empty .acf-input {
+  display: none !important;
+}
+
+.acf-postbox.acf-hidden {
+  display: none !important;
+}
+
+.acf-attention {
+  transition: border 0.25s ease-out;
+}
+.acf-attention.-focused {
+  border: #23282d solid 1px !important;
+  transition: none;
+}
+
+tr.acf-attention {
+  transition: box-shadow 0.25s ease-out;
+  position: relative;
+}
+tr.acf-attention.-focused {
+  box-shadow: #23282d 0 0 0px 1px !important;
+}
+
+#editor .edit-post-layout__metaboxes {
+  padding: 0;
+}
+#editor .edit-post-layout__metaboxes .edit-post-meta-boxes-area {
+  margin: 0;
+}
+#editor .metabox-location-side .postbox-container {
+  float: none;
+}
+#editor .postbox {
+  color: #444;
+}
+#editor .postbox > .postbox-header .hndle {
+  border-bottom: none;
+}
+#editor .postbox > .postbox-header .hndle:hover {
+  background: transparent;
+}
+#editor .postbox > .postbox-header .handle-actions .handle-order-higher,
+#editor .postbox > .postbox-header .handle-actions .handle-order-lower {
+  width: 1.62rem;
+}
+#editor .postbox > .postbox-header .handle-actions .acf-hndle-cog {
+  height: 44px;
+  line-height: 44px;
+}
+#editor .postbox > .postbox-header:hover {
+  background: #f0f0f0;
+}
+#editor .postbox:last-child.closed > .postbox-header {
+  border-bottom: none;
+}
+#editor .postbox:last-child > .inside {
+  border-bottom: none;
+}
+#editor .block-editor-writing-flow__click-redirect {
+  min-height: 50px;
+}
+
+body.is-dragging-metaboxes #acf_after_title-sortables {
+  outline: 3px dashed #646970;
+  display: flow-root;
+  min-height: 60px;
+  margin-bottom: 3px !important;
+}
+
+/*# sourceMappingURL=acf-input.css.map*/

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/css/acf-input.css.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/css/acf-input.min.css


+ 144 - 0
inc/acf/assets/build/css/pro/acf-pro-field-group.css

@@ -0,0 +1,144 @@
+/*!******************************************************************************************************************************************************************************************************************************!*\
+  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/advanced-custom-fields-pro/assets/src/sass/pro/acf-pro-field-group.scss ***!
+  \******************************************************************************************************************************************************************************************************************************/
+@charset "UTF-8";
+/*--------------------------------------------------------------------------------------------
+*
+*	Vars
+*
+*--------------------------------------------------------------------------------------------*/
+/* colors */
+/* acf-field */
+/* responsive */
+/*--------------------------------------------------------------------------------------------
+*
+*	ACF 6 ↓
+*
+*--------------------------------------------------------------------------------------------*/
+/*--------------------------------------------------------------------------------------------
+*
+*  Mixins
+*
+*--------------------------------------------------------------------------------------------*/
+/*---------------------------------------------------------------------------------------------
+*
+*	Flexible Content
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-field-setting-fc_layout .acf-toggle-fc-layout {
+  width: 34px;
+  height: 31px;
+  margin: 0;
+  padding: 0;
+  border: 0;
+  background: transparent;
+  cursor: pointer;
+  left: 20.83%;
+  right: 20.83%;
+  top: 33.33%;
+  bottom: 33.33%;
+}
+.acf-field-setting-fc_layout .toggle-indicator::before {
+  z-index: -1;
+  content: "";
+  display: inline-flex;
+  width: 20px;
+  height: 20px;
+  margin-left: -28px;
+  background-color: currentColor;
+  border: none;
+  border-radius: 0;
+  -webkit-mask-size: contain;
+  mask-size: contain;
+  -webkit-mask-repeat: no-repeat;
+  mask-repeat: no-repeat;
+  -webkit-mask-position: center;
+  mask-position: center;
+  -webkit-mask-image: url(../../../images/icons/icon-chevron-down.svg);
+  mask-image: url(../../../images/icons/icon-chevron-down.svg);
+}
+.rtl .acf-field-setting-fc_layout .toggle-indicator::before {
+  margin-left: 0px;
+  position: absolute;
+  top: 9px;
+  z-index: 100;
+  left: 8px;
+}
+
+.acf-field-setting-fc_layout .toggle-indicator.open::before {
+  -webkit-mask-image: url(../../../images/icons/icon-chevron-up.svg);
+  mask-image: url(../../../images/icons/icon-chevron-up.svg);
+}
+.acf-field-setting-fc_layout .toggle-indicator.closed::before {
+  -webkit-mask-image: url(../../../images/icons/icon-chevron-down.svg);
+  mask-image: url(../../../images/icons/icon-chevron-down.svg);
+}
+.acf-field-setting-fc_layout .acf-flexible-content-field-label-name {
+  padding-left: 5px;
+}
+.acf-field-setting-fc_layout .acf-fc-meta {
+  margin: 0 0 10px;
+  padding: 0;
+}
+.acf-field-setting-fc_layout .acf-fc-meta li {
+  margin: 0 0 10px;
+  padding: 0;
+}
+.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-display {
+  float: left;
+  width: 100%;
+  padding-right: 5px;
+}
+.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-left {
+  width: calc(50% - 4px);
+  float: left;
+  clear: left;
+  margin-right: 4px;
+}
+.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-right {
+  width: calc(50% - 4px);
+  float: left;
+  margin-left: 4px;
+}
+.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-min {
+  width: calc(25% - 5px);
+  float: left;
+  margin-right: 5px;
+}
+.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-max {
+  width: calc(25% - 10px);
+  float: left;
+  margin-left: 4px;
+}
+.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-label .acf-input-prepend,
+.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-name .acf-input-prepend,
+.acf-field-setting-fc_layout .acf-fc-meta .acf-fc-meta-display .acf-input-prepend {
+  min-width: 60px;
+}
+.acf-field-setting-fc_layout .acf-fc_draggable,
+.acf-field-setting-fc_layout .reorder-layout {
+  cursor: grab;
+}
+.acf-field-setting-fc_layout .acf-fl-actions a {
+  padding: 1px 0;
+  font-size: 13px;
+  line-height: 20px;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*	Clone
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-field-object-clone {
+  /* group */
+  /* seamless */
+}
+.acf-field-object-clone[data-display=seamless] .acf-field-setting-instructions,
+.acf-field-object-clone[data-display=seamless] .acf-field-setting-layout,
+.acf-field-object-clone[data-display=seamless] .acf-field-setting-wrapper,
+.acf-field-object-clone[data-display=seamless] .acf-field-setting-conditional_logic {
+  display: none;
+}
+
+/*# sourceMappingURL=acf-pro-field-group.css.map*/

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/css/pro/acf-pro-field-group.css.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/css/pro/acf-pro-field-group.min.css


+ 732 - 0
inc/acf/assets/build/css/pro/acf-pro-input.css

@@ -0,0 +1,732 @@
+/*!************************************************************************************************************************************************************************************************************************!*\
+  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./src/advanced-custom-fields-pro/assets/src/sass/pro/acf-pro-input.scss ***!
+  \************************************************************************************************************************************************************************************************************************/
+@charset "UTF-8";
+/*--------------------------------------------------------------------------------------------
+*
+*	Vars
+*
+*--------------------------------------------------------------------------------------------*/
+/* colors */
+/* acf-field */
+/* responsive */
+/*--------------------------------------------------------------------------------------------
+*
+*	ACF 6 ↓
+*
+*--------------------------------------------------------------------------------------------*/
+/*--------------------------------------------------------------------------------------------
+*
+*  Mixins
+*
+*--------------------------------------------------------------------------------------------*/
+/*---------------------------------------------------------------------------------------------
+*
+*  Repeater
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-repeater {
+  /* table */
+  /* row handle (add/remove) */
+  /* add in spacer to th (force correct width) */
+  /* row */
+  /* sortable */
+  /* layouts */
+  /*
+  	&.-row > table > tbody > tr:before,
+  	&.-block > table > tbody > tr:before {
+  		content: "";
+  		display: table-row;
+  		height: 2px;
+  		background: #f00;
+  	}
+  */
+  /* empty */
+  /* collapsed */
+  /* collapsed (block layout) */
+  /* collapsed (table layout) */
+}
+.acf-repeater > table {
+  margin: 0 0 8px;
+  background: #F9F9F9;
+}
+.acf-repeater > table > tbody tr.acf-divider:not(:first-child) > td {
+  border-top: 10px solid #EAECF0;
+}
+.acf-repeater .acf-row-handle {
+  width: 16px;
+  text-align: center !important;
+  vertical-align: middle !important;
+  position: relative;
+  /* icons */
+  /* .order */
+  /* remove */
+}
+.acf-repeater .acf-row-handle .acf-order-input-wrap {
+  width: 45px;
+}
+.acf-repeater .acf-row-handle .acf-order-input::-webkit-outer-spin-button,
+.acf-repeater .acf-row-handle .acf-order-input::-webkit-inner-spin-button {
+  -webkit-appearance: none;
+  margin: 0;
+}
+.acf-repeater .acf-row-handle .acf-order-input {
+  -moz-appearance: textfield;
+  text-align: center;
+}
+.acf-repeater .acf-row-handle .acf-icon {
+  display: none;
+  position: absolute;
+  top: 0;
+  margin: -8px 0 0 -2px;
+  /* minus icon */
+}
+.acf-repeater .acf-row-handle .acf-icon.-minus {
+  top: 50%;
+  /* ie fix */
+}
+body.browser-msie .acf-repeater .acf-row-handle .acf-icon.-minus {
+  top: 25px;
+}
+.acf-repeater .acf-row-handle.order {
+  background: #f4f4f4;
+  cursor: move;
+  color: #aaa;
+  text-shadow: #fff 0 1px 0;
+}
+.acf-repeater .acf-row-handle.order:hover {
+  color: #666;
+}
+.acf-repeater .acf-row-handle.order + td {
+  border-left-color: #DFDFDF;
+}
+.acf-repeater .acf-row-handle.pagination {
+  cursor: auto;
+}
+.acf-repeater .acf-row-handle.remove {
+  background: #F9F9F9;
+  border-left-color: #DFDFDF;
+}
+.acf-repeater th.acf-row-handle:before {
+  content: "";
+  width: 16px;
+  display: block;
+  height: 1px;
+}
+.acf-repeater .acf-row {
+  /* hide clone */
+  /* hover */
+}
+.acf-repeater .acf-row.acf-clone {
+  display: none !important;
+}
+.acf-repeater .acf-row:hover, .acf-repeater .acf-row.-hover {
+  /* icons */
+}
+.acf-repeater .acf-row:hover > .acf-row-handle .acf-icon, .acf-repeater .acf-row.-hover > .acf-row-handle .acf-icon {
+  display: block;
+}
+.acf-repeater .acf-row:hover > .acf-row-handle .acf-icon.show-on-shift, .acf-repeater .acf-row.-hover > .acf-row-handle .acf-icon.show-on-shift {
+  display: none;
+}
+body.acf-keydown-shift .acf-repeater .acf-row:hover > .acf-row-handle .acf-icon.show-on-shift, body.acf-keydown-shift .acf-repeater .acf-row.-hover > .acf-row-handle .acf-icon.show-on-shift {
+  display: block;
+}
+body.acf-keydown-shift .acf-repeater .acf-row:hover > .acf-row-handle .acf-icon.hide-on-shift, body.acf-keydown-shift .acf-repeater .acf-row.-hover > .acf-row-handle .acf-icon.hide-on-shift {
+  display: none;
+}
+.acf-repeater > table > tbody > tr.ui-sortable-helper {
+  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.2);
+}
+.acf-repeater > table > tbody > tr.ui-sortable-placeholder {
+  visibility: visible !important;
+}
+.acf-repeater > table > tbody > tr.ui-sortable-placeholder td {
+  background: #F9F9F9;
+}
+.acf-repeater.-row > table > tbody > tr > td, .acf-repeater.-block > table > tbody > tr > td {
+  border-top-color: #E1E1E1;
+}
+.acf-repeater.-empty > table > thead > tr > th {
+  border-bottom: 0 none;
+}
+.acf-repeater.-empty.-row > table, .acf-repeater.-empty.-block > table {
+  display: none;
+}
+.acf-repeater .acf-row.-collapsed > .acf-field {
+  display: none !important;
+}
+.acf-repeater .acf-row.-collapsed > td.acf-field.-collapsed-target {
+  display: table-cell !important;
+}
+.acf-repeater .acf-row.-collapsed > .acf-fields > * {
+  display: none !important;
+}
+.acf-repeater .acf-row.-collapsed > .acf-fields > .acf-field.-collapsed-target {
+  display: block !important;
+}
+.acf-repeater .acf-row.-collapsed > .acf-fields > .acf-field.-collapsed-target[data-width] {
+  float: none !important;
+  width: auto !important;
+}
+.acf-repeater.-table .acf-row.-collapsed .acf-field.-collapsed-target {
+  border-left-color: #dfdfdf;
+}
+.acf-repeater.-max .acf-icon[data-event=add-row] {
+  display: none !important;
+}
+.acf-repeater .acf-actions .acf-button {
+  float: right;
+}
+.acf-repeater .acf-actions .acf-tablenav {
+  float: right;
+  margin-right: 20px;
+}
+.acf-repeater .acf-actions .acf-tablenav .current-page {
+  width: auto !important;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Flexible Content
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-flexible-content {
+  position: relative;
+}
+.acf-flexible-content > .clones {
+  display: none;
+}
+.acf-flexible-content > .values {
+  margin: 0 0 8px;
+}
+.acf-flexible-content > .values > .ui-sortable-placeholder {
+  visibility: visible !important;
+  border: 1px dashed #b4b9be;
+  box-shadow: none;
+  background: transparent;
+}
+.acf-flexible-content .layout {
+  position: relative;
+  margin: 20px 0 0;
+  background: #fff;
+  border: 1px solid #ccd0d4;
+}
+.acf-flexible-content .layout:first-child {
+  margin-top: 0;
+}
+.acf-flexible-content .layout .acf-fc-layout-handle {
+  display: block;
+  position: relative;
+  padding: 8px 10px;
+  cursor: move;
+  border-bottom: #ccd0d4 solid 1px;
+  color: #444;
+  font-size: 14px;
+  line-height: 1.4em;
+}
+.acf-flexible-content .layout .acf-fc-layout-order {
+  display: block;
+  width: 20px;
+  height: 20px;
+  border-radius: 10px;
+  display: inline-block;
+  text-align: center;
+  line-height: 20px;
+  margin: 0 2px 0 0;
+  background: #F1F1F1;
+  font-size: 12px;
+  color: #444;
+}
+html[dir=rtl] .acf-flexible-content .layout .acf-fc-layout-order {
+  float: right;
+  margin-right: 0;
+  margin-left: 5px;
+}
+.acf-flexible-content .layout .acf-fc-layout-controls {
+  position: absolute;
+  top: 8px;
+  right: 8px;
+}
+.acf-flexible-content .layout .acf-fc-layout-controls .acf-icon {
+  display: block;
+  float: left;
+  margin: 0 0 0 5px;
+}
+.acf-flexible-content .layout .acf-fc-layout-controls .acf-icon.-plus, .acf-flexible-content .layout .acf-fc-layout-controls .acf-icon.-minus, .acf-flexible-content .layout .acf-fc-layout-controls .acf-icon.-duplicate {
+  visibility: hidden;
+}
+html[dir=rtl] .acf-flexible-content .layout .acf-fc-layout-controls {
+  right: auto;
+  left: 9px;
+}
+.acf-flexible-content .layout.is-selected {
+  border-color: #7e8993;
+}
+.acf-flexible-content .layout.is-selected .acf-fc-layout-handle {
+  border-color: #7e8993;
+}
+.acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-plus, .acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-minus, .acf-flexible-content .layout:hover .acf-fc-layout-controls .acf-icon.-duplicate, .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-plus, .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-minus, .acf-flexible-content .layout.-hover .acf-fc-layout-controls .acf-icon.-duplicate {
+  visibility: visible;
+}
+.acf-flexible-content .layout.-collapsed > .acf-fc-layout-handle {
+  border-bottom-width: 0;
+}
+.acf-flexible-content .layout.-collapsed > .acf-fields,
+.acf-flexible-content .layout.-collapsed > .acf-table {
+  display: none;
+}
+.acf-flexible-content .layout > .acf-table {
+  border: 0 none;
+  box-shadow: none;
+}
+.acf-flexible-content .layout > .acf-table > tbody > tr {
+  background: #fff;
+}
+.acf-flexible-content .layout > .acf-table > thead > tr > th {
+  background: #F9F9F9;
+}
+.acf-flexible-content .no-value-message {
+  padding: 19px;
+  border: #ccc dashed 2px;
+  text-align: center;
+  display: none;
+}
+.acf-flexible-content.-empty > .no-value-message {
+  display: block;
+}
+
+.acf-fc-popup {
+  padding: 5px 0;
+  z-index: 900001;
+  min-width: 135px;
+}
+.acf-fc-popup ul, .acf-fc-popup li {
+  list-style: none;
+  display: block;
+  margin: 0;
+  padding: 0;
+}
+.acf-fc-popup li {
+  position: relative;
+  float: none;
+  white-space: nowrap;
+}
+.acf-fc-popup .badge {
+  display: inline-block;
+  border-radius: 8px;
+  font-size: 9px;
+  line-height: 15px;
+  padding: 0 5px;
+  background: #d54e21;
+  text-align: center;
+  color: #fff;
+  vertical-align: top;
+  margin: 0 0 0 5px;
+}
+.acf-fc-popup a {
+  color: #eee;
+  padding: 5px 10px;
+  display: block;
+  text-decoration: none;
+  position: relative;
+}
+.acf-fc-popup a:hover {
+  background: #0073aa;
+  color: #fff;
+}
+.acf-fc-popup a.disabled {
+  color: #888;
+  background: transparent;
+}
+
+/*---------------------------------------------------------------------------------------------
+*
+*  Galery
+*
+*---------------------------------------------------------------------------------------------*/
+.acf-gallery {
+  border: #ccd0d4 solid 1px;
+  height: 400px;
+  position: relative;
+  /* main */
+  /* attachments */
+  /* attachment */
+  /* toolbar */
+  /* sidebar */
+  /* side info */
+  /* side data */
+  /* column widths */
+  /* resizable */
+}
+.acf-gallery .acf-gallery-main {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  background: #fff;
+  z-index: 2;
+}
+.acf-gallery .acf-gallery-attachments {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 48px;
+  left: 0;
+  padding: 5px;
+  overflow: auto;
+  overflow-x: hidden;
+}
+.acf-gallery .acf-gallery-attachment {
+  width: 25%;
+  float: left;
+  cursor: pointer;
+  position: relative;
+  /* hover */
+  /* sortable */
+  /* active */
+  /* icon */
+  /* rtl */
+}
+.acf-gallery .acf-gallery-attachment .margin {
+  margin: 5px;
+  border: #d5d9dd solid 1px;
+  position: relative;
+  overflow: hidden;
+  background: #eee;
+}
+.acf-gallery .acf-gallery-attachment .margin:before {
+  content: "";
+  display: block;
+  padding-top: 100%;
+}
+.acf-gallery .acf-gallery-attachment .thumbnail {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  transform: translate(50%, 50%);
+}
+html[dir=rtl] .acf-gallery .acf-gallery-attachment .thumbnail {
+  transform: translate(-50%, 50%);
+}
+.acf-gallery .acf-gallery-attachment .thumbnail img {
+  display: block;
+  height: auto;
+  max-height: 100%;
+  width: auto;
+  transform: translate(-50%, -50%);
+}
+html[dir=rtl] .acf-gallery .acf-gallery-attachment .thumbnail img {
+  transform: translate(50%, -50%);
+}
+.acf-gallery .acf-gallery-attachment .filename {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  padding: 5%;
+  background: #F4F4F4;
+  background: rgba(255, 255, 255, 0.8);
+  border-top: #DFDFDF solid 1px;
+  font-weight: bold;
+  text-align: center;
+  word-wrap: break-word;
+  max-height: 90%;
+  overflow: hidden;
+}
+.acf-gallery .acf-gallery-attachment .actions {
+  position: absolute;
+  top: 0;
+  right: 0;
+  display: none;
+}
+.acf-gallery .acf-gallery-attachment:hover .actions {
+  display: block;
+}
+.acf-gallery .acf-gallery-attachment.ui-sortable-helper .margin {
+  border: none;
+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
+}
+.acf-gallery .acf-gallery-attachment.ui-sortable-placeholder .margin {
+  background: #F1F1F1;
+  border: none;
+}
+.acf-gallery .acf-gallery-attachment.ui-sortable-placeholder .margin * {
+  display: none !important;
+}
+.acf-gallery .acf-gallery-attachment.active .margin {
+  box-shadow: 0 0 0 1px #FFFFFF, 0 0 0 5px #0073aa;
+}
+.acf-gallery .acf-gallery-attachment.-icon .thumbnail img {
+  transform: translate(-50%, -70%);
+}
+html[dir=rtl] .acf-gallery .acf-gallery-attachment {
+  float: right;
+}
+.acf-gallery.sidebar-open {
+  /* hide attachment actions when sidebar is open */
+  /* allow sidebar to move over main for small widths (widget edit box) */
+}
+.acf-gallery.sidebar-open .acf-gallery-attachment .actions {
+  display: none;
+}
+.acf-gallery.sidebar-open .acf-gallery-side {
+  z-index: 2;
+}
+.acf-gallery .acf-gallery-toolbar {
+  position: absolute;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  padding: 10px;
+  border-top: #d5d9dd solid 1px;
+  background: #fff;
+  min-height: 28px;
+}
+.acf-gallery .acf-gallery-toolbar .acf-hl li {
+  line-height: 24px;
+}
+.acf-gallery .acf-gallery-toolbar .bulk-actions-select {
+  width: auto;
+  margin: 0 1px 0 0;
+}
+.acf-gallery .acf-gallery-side {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  width: 0;
+  background: #F9F9F9;
+  border-left: #ccd0d4 solid 1px;
+  z-index: 1;
+  overflow: hidden;
+}
+.acf-gallery .acf-gallery-side .acf-gallery-side-inner {
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  width: 349px;
+}
+.acf-gallery .acf-gallery-side-info {
+  position: relative;
+  width: 100%;
+  padding: 10px;
+  margin: -10px 0 15px -10px;
+  background: #F1F1F1;
+  border-bottom: #DFDFDF solid 1px;
+}
+.acf-gallery .acf-gallery-side-info:after {
+  display: block;
+  clear: both;
+  content: "";
+}
+html[dir=rtl] .acf-gallery .acf-gallery-side-info {
+  margin-left: 0;
+  margin-right: -10px;
+}
+.acf-gallery .acf-gallery-side-info img {
+  float: left;
+  width: auto;
+  max-width: 65px;
+  max-height: 65px;
+  margin: 0 10px 1px 0;
+  background: #FFFFFF;
+  padding: 3px;
+  border: #ccd0d4 solid 1px;
+  border-radius: 1px;
+  /* rtl */
+}
+html[dir=rtl] .acf-gallery .acf-gallery-side-info img {
+  float: right;
+  margin: 0 0 0 10px;
+}
+.acf-gallery .acf-gallery-side-info p {
+  font-size: 13px;
+  line-height: 15px;
+  margin: 3px 0;
+  word-break: break-all;
+  color: #666;
+}
+.acf-gallery .acf-gallery-side-info p strong {
+  color: #000;
+}
+.acf-gallery .acf-gallery-side-info a {
+  text-decoration: none;
+}
+.acf-gallery .acf-gallery-side-info a.acf-gallery-edit {
+  color: #21759b;
+}
+.acf-gallery .acf-gallery-side-info a.acf-gallery-remove {
+  color: #bc0b0b;
+}
+.acf-gallery .acf-gallery-side-info a:hover {
+  text-decoration: underline;
+}
+.acf-gallery .acf-gallery-side-data {
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 48px;
+  left: 0;
+  overflow: auto;
+  overflow-x: inherit;
+  padding: 10px;
+}
+.acf-gallery .acf-gallery-side-data .acf-label,
+.acf-gallery .acf-gallery-side-data th.label {
+  color: #666666;
+  font-size: 12px;
+  line-height: 25px;
+  padding: 0 4px 8px 0 !important;
+  width: auto !important;
+  vertical-align: top;
+}
+html[dir=rtl] .acf-gallery .acf-gallery-side-data .acf-label,
+html[dir=rtl] .acf-gallery .acf-gallery-side-data th.label {
+  padding: 0 0 8px 4px !important;
+}
+.acf-gallery .acf-gallery-side-data .acf-label label,
+.acf-gallery .acf-gallery-side-data th.label label {
+  font-weight: normal;
+}
+.acf-gallery .acf-gallery-side-data .acf-input,
+.acf-gallery .acf-gallery-side-data td.field {
+  padding: 0 0 8px !important;
+}
+.acf-gallery .acf-gallery-side-data textarea {
+  min-height: 0;
+  height: 60px;
+}
+.acf-gallery .acf-gallery-side-data p.help {
+  font-size: 12px;
+}
+.acf-gallery .acf-gallery-side-data p.help:hover {
+  font-weight: normal;
+}
+.acf-gallery[data-columns="1"] .acf-gallery-attachment {
+  width: 100%;
+}
+.acf-gallery[data-columns="2"] .acf-gallery-attachment {
+  width: 50%;
+}
+.acf-gallery[data-columns="3"] .acf-gallery-attachment {
+  width: 33.333%;
+}
+.acf-gallery[data-columns="4"] .acf-gallery-attachment {
+  width: 25%;
+}
+.acf-gallery[data-columns="5"] .acf-gallery-attachment {
+  width: 20%;
+}
+.acf-gallery[data-columns="6"] .acf-gallery-attachment {
+  width: 16.666%;
+}
+.acf-gallery[data-columns="7"] .acf-gallery-attachment {
+  width: 14.285%;
+}
+.acf-gallery[data-columns="8"] .acf-gallery-attachment {
+  width: 12.5%;
+}
+.acf-gallery .ui-resizable-handle {
+  display: block;
+  position: absolute;
+}
+.acf-gallery .ui-resizable-s {
+  bottom: -5px;
+  cursor: ns-resize;
+  height: 7px;
+  left: 0;
+  width: 100%;
+}
+
+/* media modal selected */
+.acf-media-modal .attachment.acf-selected {
+  box-shadow: 0 0 0 3px #fff inset, 0 0 0 7px #0073aa inset !important;
+}
+.acf-media-modal .attachment.acf-selected .check {
+  display: none !important;
+}
+.acf-media-modal .attachment.acf-selected .thumbnail {
+  opacity: 0.25 !important;
+}
+.acf-media-modal .attachment.acf-selected .attachment-preview:before {
+  background: rgba(0, 0, 0, 0.15);
+  z-index: 1;
+  position: relative;
+}
+
+/*-----------------------------------------------------------------------------
+*
+*	ACF Blocks
+*
+*----------------------------------------------------------------------------*/
+.acf-block-component .components-placeholder {
+  margin: 0;
+}
+
+.acf-block-component .acf-block-fields {
+  background: #fff;
+  text-align: left;
+  font-size: 13px;
+  line-height: 1.4em;
+  color: #444;
+  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
+}
+.acf-block-component .acf-block-fields.acf-empty-block-fields {
+  border: 1px solid #1e1e1e;
+  padding: 12px;
+}
+.components-panel .acf-block-component .acf-block-fields.acf-empty-block-fields {
+  border: none;
+  border-top: 1px solid #ddd;
+  border-bottom: 1px solid #ddd;
+}
+html[dir=rtl] .acf-block-component .acf-block-fields {
+  text-align: right;
+}
+.acf-block-component .acf-block-fields p {
+  font-size: 13px;
+  line-height: 1.5;
+}
+
+.acf-block-body .acf-block-fields {
+  border: #adb2ad solid 1px;
+}
+.acf-block-body .acf-block-fields .acf-tab-wrap .acf-tab-group {
+  margin-left: 0;
+  padding: 16px 20px 0;
+}
+.acf-block-body .acf-fields > .acf-field {
+  padding: 16px 20px;
+}
+.acf-block-body .acf-fields > .acf-field.acf-accordion {
+  border-color: #adb2ad;
+}
+.acf-block-body .acf-fields > .acf-field.acf-accordion .acf-accordion-title {
+  padding: 16px 20px;
+}
+.acf-block-body .acf-block-preview {
+  min-height: 10px;
+}
+
+.acf-block-panel .acf-block-fields {
+  border-top: #ddd solid 1px;
+  border-bottom: #ddd solid 1px;
+  min-height: 1px;
+}
+.acf-block-panel .acf-block-fields:empty {
+  border-top: none;
+}
+.acf-block-panel .acf-block-fields .acf-tab-wrap {
+  background: transparent;
+}
+
+.components-panel__body .acf-block-panel {
+  margin: 16px -16px -16px;
+}
+
+/*# sourceMappingURL=acf-pro-input.css.map*/

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/css/pro/acf-pro-input.css.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/css/pro/acf-pro-input.min.css


+ 2645 - 0
inc/acf/assets/build/js/acf-field-group.js

@@ -0,0 +1,2645 @@
+/******/ (function() { // webpackBootstrap
+/******/ 	var __webpack_modules__ = ({
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-compatibility.js":
+/*!************************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-compatibility.js ***!
+  \************************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var _acf = acf.getCompatibility(acf);
+
+  /**
+   *  fieldGroupCompatibility
+   *
+   *  Compatibility layer for extinct acf.field_group
+   *
+   *  @date	15/12/17
+   *  @since	5.7.0
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  _acf.field_group = {
+    save_field: function ($field, type) {
+      type = type !== undefined ? type : 'settings';
+      acf.getFieldObject($field).save(type);
+    },
+    delete_field: function ($field, animate) {
+      animate = animate !== undefined ? animate : true;
+      acf.getFieldObject($field).delete({
+        animate: animate
+      });
+    },
+    update_field_meta: function ($field, name, value) {
+      acf.getFieldObject($field).prop(name, value);
+    },
+    delete_field_meta: function ($field, name) {
+      acf.getFieldObject($field).prop(name, null);
+    }
+  };
+
+  /**
+   *  fieldGroupCompatibility.field_object
+   *
+   *  Compatibility layer for extinct acf.field_group.field_object
+   *
+   *  @date	15/12/17
+   *  @since	5.7.0
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  _acf.field_group.field_object = acf.model.extend({
+    // vars
+    type: '',
+    o: {},
+    $field: null,
+    $settings: null,
+    tag: function (tag) {
+      // vars
+      var type = this.type;
+
+      // explode, add 'field' and implode
+      // - open 			=> open_field
+      // - change_type	=> change_field_type
+      var tags = tag.split('_');
+      tags.splice(1, 0, 'field');
+      tag = tags.join('_');
+
+      // add type
+      if (type) {
+        tag += '/type=' + type;
+      }
+
+      // return
+      return tag;
+    },
+    selector: function () {
+      // vars
+      var selector = '.acf-field-object';
+      var type = this.type;
+
+      // add type
+      if (type) {
+        selector += '-' + type;
+        selector = acf.str_replace('_', '-', selector);
+      }
+
+      // return
+      return selector;
+    },
+    _add_action: function (name, callback) {
+      // vars
+      var model = this;
+
+      // add action
+      acf.add_action(this.tag(name), function ($field) {
+        // focus
+        model.set('$field', $field);
+
+        // callback
+        model[callback].apply(model, arguments);
+      });
+    },
+    _add_filter: function (name, callback) {
+      // vars
+      var model = this;
+
+      // add action
+      acf.add_filter(this.tag(name), function ($field) {
+        // focus
+        model.set('$field', $field);
+
+        // callback
+        model[callback].apply(model, arguments);
+      });
+    },
+    _add_event: function (name, callback) {
+      // vars
+      var model = this;
+      var event = name.substr(0, name.indexOf(' '));
+      var selector = name.substr(name.indexOf(' ') + 1);
+      var context = this.selector();
+
+      // add event
+      $(document).on(event, context + ' ' + selector, function (e) {
+        // append $el to event object
+        e.$el = $(this);
+        e.$field = e.$el.closest('.acf-field-object');
+
+        // focus
+        model.set('$field', e.$field);
+
+        // callback
+        model[callback].apply(model, [e]);
+      });
+    },
+    _set_$field: function () {
+      // vars
+      this.o = this.$field.data();
+
+      // els
+      this.$settings = this.$field.find('> .settings > table > tbody');
+
+      // focus
+      this.focus();
+    },
+    focus: function () {
+      // do nothing
+    },
+    setting: function (name) {
+      return this.$settings.find('> .acf-field-setting-' + name);
+    }
+  });
+
+  /*
+   *  field
+   *
+   *  This model fires actions and filters for registered fields
+   *
+   *  @type	function
+   *  @date	21/02/2014
+   *  @since	3.5.1
+   *
+   *  @param	n/a
+   *  @return	n/a
+   */
+
+  var actionManager = new acf.Model({
+    actions: {
+      open_field_object: 'onOpenFieldObject',
+      close_field_object: 'onCloseFieldObject',
+      add_field_object: 'onAddFieldObject',
+      duplicate_field_object: 'onDuplicateFieldObject',
+      delete_field_object: 'onDeleteFieldObject',
+      change_field_object_type: 'onChangeFieldObjectType',
+      change_field_object_label: 'onChangeFieldObjectLabel',
+      change_field_object_name: 'onChangeFieldObjectName',
+      change_field_object_parent: 'onChangeFieldObjectParent',
+      sortstop_field_object: 'onChangeFieldObjectParent'
+    },
+    onOpenFieldObject: function (field) {
+      acf.doAction('open_field', field.$el);
+      acf.doAction('open_field/type=' + field.get('type'), field.$el);
+      acf.doAction('render_field_settings', field.$el);
+      acf.doAction('render_field_settings/type=' + field.get('type'), field.$el);
+    },
+    onCloseFieldObject: function (field) {
+      acf.doAction('close_field', field.$el);
+      acf.doAction('close_field/type=' + field.get('type'), field.$el);
+    },
+    onAddFieldObject: function (field) {
+      acf.doAction('add_field', field.$el);
+      acf.doAction('add_field/type=' + field.get('type'), field.$el);
+    },
+    onDuplicateFieldObject: function (field) {
+      acf.doAction('duplicate_field', field.$el);
+      acf.doAction('duplicate_field/type=' + field.get('type'), field.$el);
+    },
+    onDeleteFieldObject: function (field) {
+      acf.doAction('delete_field', field.$el);
+      acf.doAction('delete_field/type=' + field.get('type'), field.$el);
+    },
+    onChangeFieldObjectType: function (field) {
+      acf.doAction('change_field_type', field.$el);
+      acf.doAction('change_field_type/type=' + field.get('type'), field.$el);
+      acf.doAction('render_field_settings', field.$el);
+      acf.doAction('render_field_settings/type=' + field.get('type'), field.$el);
+    },
+    onChangeFieldObjectLabel: function (field) {
+      acf.doAction('change_field_label', field.$el);
+      acf.doAction('change_field_label/type=' + field.get('type'), field.$el);
+    },
+    onChangeFieldObjectName: function (field) {
+      acf.doAction('change_field_name', field.$el);
+      acf.doAction('change_field_name/type=' + field.get('type'), field.$el);
+    },
+    onChangeFieldObjectParent: function (field) {
+      acf.doAction('update_field_parent', field.$el);
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-conditions.js":
+/*!*********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-conditions.js ***!
+  \*********************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   *  ConditionalLogicFieldSetting
+   *
+   *  description
+   *
+   *  @date	3/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var ConditionalLogicFieldSetting = acf.FieldSetting.extend({
+    type: '',
+    name: 'conditional_logic',
+    events: {
+      'change .conditions-toggle': 'onChangeToggle',
+      'click .add-conditional-group': 'onClickAddGroup',
+      'focus .condition-rule-field': 'onFocusField',
+      'change .condition-rule-field': 'onChangeField',
+      'change .condition-rule-operator': 'onChangeOperator',
+      'click .add-conditional-rule': 'onClickAdd',
+      'click .remove-conditional-rule': 'onClickRemove'
+    },
+    $rule: false,
+    scope: function ($rule) {
+      this.$rule = $rule;
+      return this;
+    },
+    ruleData: function (name, value) {
+      return this.$rule.data.apply(this.$rule, arguments);
+    },
+    $input: function (name) {
+      return this.$rule.find('.condition-rule-' + name);
+    },
+    $td: function (name) {
+      return this.$rule.find('td.' + name);
+    },
+    $toggle: function () {
+      return this.$('.conditions-toggle');
+    },
+    $control: function () {
+      return this.$('.rule-groups');
+    },
+    $groups: function () {
+      return this.$('.rule-group');
+    },
+    $rules: function () {
+      return this.$('.rule');
+    },
+    $tabLabel: function () {
+      return this.fieldObject.$el.find('.conditional-logic-badge');
+    },
+    open: function () {
+      var $div = this.$control();
+      $div.show();
+      acf.enable($div);
+    },
+    close: function () {
+      var $div = this.$control();
+      $div.hide();
+      acf.disable($div);
+    },
+    render: function () {
+      // show
+      if (this.$toggle().prop('checked')) {
+        this.$tabLabel().addClass('is-enabled');
+        this.renderRules();
+        this.open();
+
+        // hide
+      } else {
+        this.$tabLabel().removeClass('is-enabled');
+        this.close();
+      }
+    },
+    renderRules: function () {
+      // vars
+      var self = this;
+
+      // loop
+      this.$rules().each(function () {
+        self.renderRule($(this));
+      });
+    },
+    renderRule: function ($rule) {
+      this.scope($rule);
+      this.renderField();
+      this.renderOperator();
+      this.renderValue();
+    },
+    renderField: function () {
+      // vars
+      var choices = [];
+      var validFieldTypes = [];
+      var cid = this.fieldObject.cid;
+      var $select = this.$input('field');
+
+      // loop
+      acf.getFieldObjects().map(function (fieldObject) {
+        // vars
+        var choice = {
+          id: fieldObject.getKey(),
+          text: fieldObject.getLabel()
+        };
+
+        // bail early if is self
+        if (fieldObject.cid === cid) {
+          choice.text += acf.__('(this field)');
+          choice.disabled = true;
+        }
+
+        // get selected field conditions
+        var conditionTypes = acf.getConditionTypes({
+          fieldType: fieldObject.getType()
+        });
+
+        // bail early if no types
+        if (!conditionTypes.length) {
+          choice.disabled = true;
+        }
+
+        // calulate indents
+        var indents = fieldObject.getParents().length;
+        choice.text = '- '.repeat(indents) + choice.text;
+
+        // append
+        choices.push(choice);
+      });
+
+      // allow for scenario where only one field exists
+      if (!choices.length) {
+        choices.push({
+          id: '',
+          text: acf.__('No toggle fields available')
+        });
+      }
+
+      // render
+      acf.renderSelect($select, choices);
+
+      // set
+      this.ruleData('field', $select.val());
+    },
+    renderOperator: function () {
+      // bail early if no field selected
+      if (!this.ruleData('field')) {
+        return;
+      }
+
+      // vars
+      var $select = this.$input('operator');
+      var val = $select.val();
+      var choices = [];
+
+      // set saved value on first render
+      // - this allows the 2nd render to correctly select an option
+      if ($select.val() === null) {
+        acf.renderSelect($select, [{
+          id: this.ruleData('operator'),
+          text: ''
+        }]);
+      }
+
+      // get selected field
+      var $field = acf.findFieldObject(this.ruleData('field'));
+      var field = acf.getFieldObject($field);
+
+      // get selected field conditions
+      var conditionTypes = acf.getConditionTypes({
+        fieldType: field.getType()
+      });
+
+      // html
+      conditionTypes.map(function (model) {
+        choices.push({
+          id: model.prototype.operator,
+          text: model.prototype.label
+        });
+      });
+
+      // render
+      acf.renderSelect($select, choices);
+
+      // set
+      this.ruleData('operator', $select.val());
+    },
+    renderValue: function () {
+      // bail early if no field selected
+      if (!this.ruleData('field') || !this.ruleData('operator')) {
+        return;
+      }
+
+      // vars
+      var $select = this.$input('value');
+      var $td = this.$td('value');
+      var val = $select.val();
+
+      // get selected field
+      var $field = acf.findFieldObject(this.ruleData('field'));
+      var field = acf.getFieldObject($field);
+
+      // get selected field conditions
+      var conditionTypes = acf.getConditionTypes({
+        fieldType: field.getType(),
+        operator: this.ruleData('operator')
+      });
+
+      // html
+      var conditionType = conditionTypes[0].prototype;
+      var choices = conditionType.choices(field);
+
+      // create html: array
+      if (choices instanceof Array) {
+        var $newSelect = $('<select></select>');
+        acf.renderSelect($newSelect, choices);
+
+        // create html: string (<input />)
+      } else {
+        var $newSelect = $(choices);
+      }
+
+      // append
+      $select.detach();
+      $td.html($newSelect);
+
+      // copy attrs
+      // timeout needed to avoid browser bug where "disabled" attribute is not applied
+      setTimeout(function () {
+        ['class', 'name', 'id'].map(function (attr) {
+          $newSelect.attr(attr, $select.attr(attr));
+        });
+      }, 0);
+
+      // select existing value (if not a disabled input)
+      if (!$newSelect.prop('disabled')) {
+        acf.val($newSelect, val, true);
+      }
+
+      // set
+      this.ruleData('value', $newSelect.val());
+    },
+    onChangeToggle: function () {
+      this.render();
+    },
+    onClickAddGroup: function (e, $el) {
+      this.addGroup();
+    },
+    addGroup: function () {
+      // vars
+      var $group = this.$('.rule-group:last');
+
+      // duplicate
+      var $group2 = acf.duplicate($group);
+
+      // update h4
+      $group2.find('h4').text(acf.__('or'));
+
+      // remove all tr's except the first one
+      $group2.find('tr').not(':first').remove();
+
+      // save field
+      this.fieldObject.save();
+    },
+    onFocusField: function (e, $el) {
+      this.renderField();
+    },
+    onChangeField: function (e, $el) {
+      // scope
+      this.scope($el.closest('.rule'));
+
+      // set data
+      this.ruleData('field', $el.val());
+
+      // render
+      this.renderOperator();
+      this.renderValue();
+    },
+    onChangeOperator: function (e, $el) {
+      // scope
+      this.scope($el.closest('.rule'));
+
+      // set data
+      this.ruleData('operator', $el.val());
+
+      // render
+      this.renderValue();
+    },
+    onClickAdd: function (e, $el) {
+      // duplciate
+      var $rule = acf.duplicate($el.closest('.rule'));
+
+      // render
+      this.renderRule($rule);
+    },
+    onClickRemove: function (e, $el) {
+      // vars
+      var $rule = $el.closest('.rule');
+
+      // save field
+      this.fieldObject.save();
+
+      // remove group
+      if ($rule.siblings('.rule').length == 0) {
+        $rule.closest('.rule-group').remove();
+      }
+
+      // remove
+      $rule.remove();
+    }
+  });
+  acf.registerFieldSetting(ConditionalLogicFieldSetting);
+
+  /**
+   *  conditionalLogicHelper
+   *
+   *  description
+   *
+   *  @date	20/4/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var conditionalLogicHelper = new acf.Model({
+    actions: {
+      duplicate_field_objects: 'onDuplicateFieldObjects'
+    },
+    onDuplicateFieldObjects: function (children, newField, prevField) {
+      // vars
+      var data = {};
+      var $selects = $();
+
+      // reference change in key
+      children.map(function (child) {
+        // store reference of changed key
+        data[child.get('prevKey')] = child.get('key');
+
+        // append condition select
+        $selects = $selects.add(child.$('.condition-rule-field'));
+      });
+
+      // loop
+      $selects.each(function () {
+        // vars
+        var $select = $(this);
+        var val = $select.val();
+
+        // bail early if val is not a ref key
+        if (!val || !data[val]) {
+          return;
+        }
+
+        // modify selected option
+        $select.find('option:selected').attr('value', data[val]);
+
+        // set new val
+        $select.val(data[val]);
+      });
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-field.js":
+/*!****************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-field.js ***!
+  \****************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  acf.FieldObject = acf.Model.extend({
+    // class used to avoid nested event triggers
+    eventScope: '.acf-field-object',
+    // events
+    events: {
+      'click .copyable': 'onClickCopy',
+      'click .handle': 'onClickEdit',
+      'click .close-field': 'onClickEdit',
+      'click a[data-key="acf_field_settings_tabs"]': 'onChangeSettingsTab',
+      'click .delete-field': 'onClickDelete',
+      'click .duplicate-field': 'duplicate',
+      'click .move-field': 'move',
+      'focus .edit-field': 'onFocusEdit',
+      'blur .edit-field, .row-options a': 'onBlurEdit',
+      'change .field-type': 'onChangeType',
+      'change .field-required': 'onChangeRequired',
+      'blur .field-label': 'onChangeLabel',
+      'blur .field-name': 'onChangeName',
+      change: 'onChange',
+      changed: 'onChanged'
+    },
+    // data
+    data: {
+      // Similar to ID, but used for HTML puposes.
+      // It is possbile for a new field to have an ID of 0, but an id of 'field_123' */
+      id: 0,
+      // The field key ('field_123')
+      key: '',
+      // The field type (text, image, etc)
+      type: ''
+
+      // The $post->ID of this field
+      //ID: 0,
+
+      // The field's parent
+      //parent: 0,
+
+      // The menu order
+      //menu_order: 0
+    },
+
+    setup: function ($field) {
+      // set $el
+      this.$el = $field;
+
+      // inherit $field data (id, key, type)
+      this.inherit($field);
+
+      // load additional props
+      // - this won't trigger 'changed'
+      this.prop('ID');
+      this.prop('parent');
+      this.prop('menu_order');
+    },
+    $input: function (name) {
+      return $('#' + this.getInputId() + '-' + name);
+    },
+    $meta: function () {
+      return this.$('.meta:first');
+    },
+    $handle: function () {
+      return this.$('.handle:first');
+    },
+    $settings: function () {
+      return this.$('.settings:first');
+    },
+    $setting: function (name) {
+      return this.$('.acf-field-settings:first .acf-field-setting-' + name);
+    },
+    getParent: function () {
+      return acf.getFieldObjects({
+        child: this.$el,
+        limit: 1
+      }).pop();
+    },
+    getParents: function () {
+      return acf.getFieldObjects({
+        child: this.$el
+      });
+    },
+    getFields: function () {
+      return acf.getFieldObjects({
+        parent: this.$el
+      });
+    },
+    getInputName: function () {
+      return 'acf_fields[' + this.get('id') + ']';
+    },
+    getInputId: function () {
+      return 'acf_fields-' + this.get('id');
+    },
+    newInput: function (name, value) {
+      // vars
+      var inputId = this.getInputId();
+      var inputName = this.getInputName();
+
+      // append name
+      if (name) {
+        inputId += '-' + name;
+        inputName += '[' + name + ']';
+      }
+
+      // create input (avoid HTML + JSON value issues)
+      var $input = $('<input />').attr({
+        id: inputId,
+        name: inputName,
+        value: value
+      });
+      this.$('> .meta').append($input);
+
+      // return
+      return $input;
+    },
+    getProp: function (name) {
+      // check data
+      if (this.has(name)) {
+        return this.get(name);
+      }
+
+      // get input value
+      var $input = this.$input(name);
+      var value = $input.length ? $input.val() : null;
+
+      // set data silently (cache)
+      this.set(name, value, true);
+
+      // return
+      return value;
+    },
+    setProp: function (name, value) {
+      // get input
+      var $input = this.$input(name);
+      var prevVal = $input.val();
+
+      // create if new
+      if (!$input.length) {
+        $input = this.newInput(name, value);
+      }
+
+      // remove
+      if (value === null) {
+        $input.remove();
+
+        // update
+      } else {
+        $input.val(value);
+      }
+
+      //console.log('setProp', name, value, this);
+
+      // set data silently (cache)
+      if (!this.has(name)) {
+        //console.log('setting silently');
+        this.set(name, value, true);
+
+        // set data allowing 'change' event to fire
+      } else {
+        //console.log('setting loudly!');
+        this.set(name, value);
+      }
+
+      // return
+      return this;
+    },
+    prop: function (name, value) {
+      if (value !== undefined) {
+        return this.setProp(name, value);
+      } else {
+        return this.getProp(name);
+      }
+    },
+    props: function (props) {
+      Object.keys(props).map(function (key) {
+        this.setProp(key, props[key]);
+      }, this);
+    },
+    getLabel: function () {
+      // get label with empty default
+      var label = this.prop('label');
+      if (label === '') {
+        label = acf.__('(no label)');
+      }
+
+      // return
+      return label;
+    },
+    getName: function () {
+      return this.prop('name');
+    },
+    getType: function () {
+      return this.prop('type');
+    },
+    getTypeLabel: function () {
+      var type = this.prop('type');
+      var types = acf.get('fieldTypes');
+      return types[type] ? types[type].label : type;
+    },
+    getKey: function () {
+      return this.prop('key');
+    },
+    initialize: function () {
+      this.addProFields();
+      this.checkCopyable();
+    },
+    makeCopyable: function (text) {
+      if (!navigator.clipboard) return '<span class="copyable copy-unsupported">' + text + '</span>';
+      return '<span class="copyable">' + text + '</span>';
+    },
+    checkCopyable: function () {
+      if (!navigator.clipboard) {
+        this.$el.find('.copyable').addClass('copy-unsupported');
+      }
+    },
+    addProFields: function () {
+      // Make sure we're only running this on free version.
+      if (acf.data.fieldTypes.hasOwnProperty('clone')) {
+        return;
+      }
+
+      // Make sure we haven't appended these fields before.
+      var $fieldTypeSelect = $('.field-type').not('.acf-free-field-type');
+
+      // Append pro fields to "Layout" group.
+      var $layoutGroup = $fieldTypeSelect.find('optgroup option[value="group"]').parent();
+      $layoutGroup.append('<option value="null" disabled="disabled">' + acf.__('Repeater (Pro only)') + '</option>' + '<option value="null" disabled="disabled">' + acf.__('Flexible Content (Pro only)') + '</option>' + '<option value="null" disabled="disabled">' + acf.__('Clone (Pro only)') + '</option>');
+
+      // Add pro fields to "Content" group.
+      var $contentGroup = $fieldTypeSelect.find('optgroup option[value="image"]').parent();
+      $contentGroup.append('<option value="null" disabled="disabled">' + acf.__('Gallery (Pro only)') + '</option>');
+      $fieldTypeSelect.addClass('acf-free-field-type');
+    },
+    render: function () {
+      // vars
+      var $handle = this.$('.handle:first');
+      var menu_order = this.prop('menu_order');
+      var label = this.getLabel();
+      var name = this.prop('name');
+      var type = this.getTypeLabel();
+      var key = this.prop('key');
+      var required = this.$input('required').prop('checked');
+
+      // update menu order
+      $handle.find('.acf-icon').html(parseInt(menu_order) + 1);
+
+      // update required
+      if (required) {
+        label += ' <span class="acf-required">*</span>';
+      }
+
+      // update label
+      $handle.find('.li-field-label strong a').html(label);
+
+      // update name
+      $handle.find('.li-field-name').html(this.makeCopyable(name));
+
+      // update type
+      const iconName = acf.strSlugify(this.getType());
+      $handle.find('.field-type-label').text(' ' + type);
+      $handle.find('.field-type-icon').removeClass().addClass('field-type-icon field-type-icon-' + iconName);
+
+      // update key
+      $handle.find('.li-field-key').html(this.makeCopyable(key));
+
+      // action for 3rd party customization
+      acf.doAction('render_field_object', this);
+    },
+    refresh: function () {
+      acf.doAction('refresh_field_object', this);
+    },
+    isOpen: function () {
+      return this.$el.hasClass('open');
+    },
+    onClickCopy: function (e) {
+      e.stopPropagation();
+      if (!navigator.clipboard) return;
+      navigator.clipboard.writeText($(e.target).text()).then(() => {
+        $(e.target).addClass('copied');
+        setTimeout(function () {
+          $(e.target).removeClass('copied');
+        }, 2000);
+      });
+    },
+    onClickEdit: function (e) {
+      $target = $(e.target);
+      if ($target.parent().hasClass('row-options') && !$target.hasClass('edit-field')) return;
+      this.isOpen() ? this.close() : this.open();
+    },
+    onChangeSettingsTab: function () {
+      const $settings = this.$el.children('.settings');
+      acf.doAction('show', $settings);
+    },
+    /**
+     * Adds 'active' class to row options nearest to the target.
+     */
+    onFocusEdit: function (e) {
+      var $rowOptions = $(e.target).closest('li').find('.row-options');
+      $rowOptions.addClass('active');
+    },
+    /**
+     * Removes 'active' class from row options if links in same row options area are no longer in focus.
+     */
+    onBlurEdit: function (e) {
+      var focusDelayMilliseconds = 50;
+      var $rowOptionsBlurElement = $(e.target).closest('li').find('.row-options');
+
+      // Timeout so that `activeElement` gives the new element in focus instead of the body.
+      setTimeout(function () {
+        var $rowOptionsFocusElement = $(document.activeElement).closest('li').find('.row-options');
+        if (!$rowOptionsBlurElement.is($rowOptionsFocusElement)) {
+          $rowOptionsBlurElement.removeClass('active');
+        }
+      }, focusDelayMilliseconds);
+    },
+    open: function () {
+      // vars
+      var $settings = this.$el.children('.settings');
+
+      // action (open)
+      acf.doAction('open_field_object', this);
+      this.trigger('openFieldObject');
+
+      // action (show)
+      acf.doAction('show', $settings);
+
+      // open
+      $settings.slideDown();
+      this.$el.addClass('open');
+    },
+    close: function () {
+      // vars
+      var $settings = this.$el.children('.settings');
+
+      // close
+      $settings.slideUp();
+      this.$el.removeClass('open');
+
+      // action (close)
+      acf.doAction('close_field_object', this);
+      this.trigger('closeFieldObject');
+
+      // action (hide)
+      acf.doAction('hide', $settings);
+    },
+    serialize: function () {
+      return acf.serialize(this.$el, this.getInputName());
+    },
+    save: function (type) {
+      // defaults
+      type = type || 'settings'; // meta, settings
+
+      // vars
+      var save = this.getProp('save');
+
+      // bail if already saving settings
+      if (save === 'settings') {
+        return;
+      }
+
+      // prop
+      this.setProp('save', type);
+
+      // debug
+      this.$el.attr('data-save', type);
+
+      // action
+      acf.doAction('save_field_object', this, type);
+    },
+    submit: function () {
+      // vars
+      var inputName = this.getInputName();
+      var save = this.get('save');
+
+      // close
+      if (this.isOpen()) {
+        this.close();
+      }
+
+      // allow all inputs to save
+      if (save == 'settings') {
+        // do nothing
+        // allow only meta inputs to save
+      } else if (save == 'meta') {
+        this.$('> .settings [name^="' + inputName + '"]').remove();
+
+        // prevent all inputs from saving
+      } else {
+        this.$('[name^="' + inputName + '"]').remove();
+      }
+
+      // action
+      acf.doAction('submit_field_object', this);
+    },
+    onChange: function (e, $el) {
+      // save settings
+      this.save();
+
+      // action for 3rd party customization
+      acf.doAction('change_field_object', this);
+    },
+    onChanged: function (e, $el, name, value) {
+      // ignore 'save'
+      if (name == 'save') {
+        return;
+      }
+
+      // save meta
+      if (['menu_order', 'parent'].indexOf(name) > -1) {
+        this.save('meta');
+
+        // save field
+      } else {
+        this.save();
+      }
+
+      // render
+      if (['menu_order', 'label', 'required', 'name', 'type', 'key'].indexOf(name) > -1) {
+        this.render();
+      }
+
+      // action for 3rd party customization
+      acf.doAction('change_field_object_' + name, this, value);
+    },
+    onChangeLabel: function (e, $el) {
+      // set
+      var label = $el.val();
+      this.set('label', label);
+
+      // render name
+      if (this.prop('name') == '') {
+        var name = acf.applyFilters('generate_field_object_name', acf.strSanitize(label), this);
+        this.prop('name', name);
+      }
+    },
+    onChangeName: function (e, $el) {
+      // set
+      var name = $el.val();
+      this.set('name', name);
+
+      // error
+      if (name.substr(0, 6) === 'field_') {
+        alert(acf.__('The string "field_" may not be used at the start of a field name'));
+      }
+    },
+    onChangeRequired: function (e, $el) {
+      // set
+      var required = $el.prop('checked') ? 1 : 0;
+      this.set('required', required);
+    },
+    delete: function (args) {
+      // defaults
+      args = acf.parseArgs(args, {
+        animate: true
+      });
+
+      // add to remove list
+      var id = this.prop('ID');
+      if (id) {
+        var $input = $('#_acf_delete_fields');
+        var newVal = $input.val() + '|' + id;
+        $input.val(newVal);
+      }
+
+      // action
+      acf.doAction('delete_field_object', this);
+
+      // animate
+      if (args.animate) {
+        this.removeAnimate();
+      } else {
+        this.remove();
+      }
+    },
+    onClickDelete: function (e, $el) {
+      // Bypass confirmation when holding down "shift" key.
+      if (e.shiftKey) {
+        return this.delete();
+      }
+
+      // add class
+      this.$el.addClass('-hover');
+
+      // add tooltip
+      var tooltip = acf.newTooltip({
+        confirmRemove: true,
+        target: $el,
+        context: this,
+        confirm: function () {
+          this.delete();
+        },
+        cancel: function () {
+          this.$el.removeClass('-hover');
+        }
+      });
+    },
+    removeAnimate: function () {
+      // vars
+      var field = this;
+      var $list = this.$el.parent();
+      var $fields = acf.findFieldObjects({
+        sibling: this.$el
+      });
+
+      // remove
+      acf.remove({
+        target: this.$el,
+        endHeight: $fields.length ? 0 : 50,
+        complete: function () {
+          field.remove();
+          acf.doAction('removed_field_object', field, $list);
+        }
+      });
+
+      // action
+      acf.doAction('remove_field_object', field, $list);
+    },
+    duplicate: function () {
+      // vars
+      var newKey = acf.uniqid('field_');
+
+      // duplicate
+      var $newField = acf.duplicate({
+        target: this.$el,
+        search: this.get('id'),
+        replace: newKey
+      });
+
+      // set new key
+      $newField.attr('data-key', newKey);
+
+      // get instance
+      var newField = acf.getFieldObject($newField);
+
+      // open / close
+      if (this.isOpen()) {
+        this.close();
+      } else {
+        newField.open();
+      }
+
+      // focus label
+      var $label = newField.$setting('label input');
+      setTimeout(function () {
+        $label.trigger('focus');
+      }, 251);
+
+      // update newField label / name
+      var label = newField.prop('label');
+      var name = newField.prop('name');
+      var end = name.split('_').pop();
+      var copy = acf.__('copy');
+
+      // increase suffix "1"
+      if (acf.isNumeric(end)) {
+        var i = end * 1 + 1;
+        label = label.replace(end, i);
+        name = name.replace(end, i);
+
+        // increase suffix "(copy1)"
+      } else if (end.indexOf(copy) === 0) {
+        var i = end.replace(copy, '') * 1;
+        i = i ? i + 1 : 2;
+
+        // replace
+        label = label.replace(end, copy + i);
+        name = name.replace(end, copy + i);
+
+        // add default "(copy)"
+      } else {
+        label += ' (' + copy + ')';
+        name += '_' + copy;
+      }
+      newField.prop('ID', 0);
+      newField.prop('label', label);
+      newField.prop('name', name);
+      newField.prop('key', newKey);
+
+      // action
+      acf.doAction('duplicate_field_object', this, newField);
+      acf.doAction('append_field_object', newField);
+    },
+    wipe: function () {
+      // vars
+      var prevId = this.get('id');
+      var prevKey = this.get('key');
+      var newKey = acf.uniqid('field_');
+
+      // rename
+      acf.rename({
+        target: this.$el,
+        search: prevId,
+        replace: newKey
+      });
+
+      // data
+      this.set('id', newKey);
+      this.set('prevId', prevId);
+      this.set('prevKey', prevKey);
+
+      // props
+      this.prop('key', newKey);
+      this.prop('ID', 0);
+
+      // attr
+      this.$el.attr('data-key', newKey);
+      this.$el.attr('data-id', newKey);
+
+      // action
+      acf.doAction('wipe_field_object', this);
+    },
+    move: function () {
+      // helper
+      var hasChanged = function (field) {
+        return field.get('save') == 'settings';
+      };
+
+      // vars
+      var changed = hasChanged(this);
+
+      // has sub fields changed
+      if (!changed) {
+        acf.getFieldObjects({
+          parent: this.$el
+        }).map(function (field) {
+          changed = hasChanged(field) || field.changed;
+        });
+      }
+
+      // bail early if changed
+      if (changed) {
+        alert(acf.__('This field cannot be moved until its changes have been saved'));
+        return;
+      }
+
+      // step 1.
+      var id = this.prop('ID');
+      var field = this;
+      var popup = false;
+      var step1 = function () {
+        // popup
+        popup = acf.newPopup({
+          title: acf.__('Move Custom Field'),
+          loading: true,
+          width: '300px',
+          openedBy: field.$el.find('.move-field')
+        });
+
+        // ajax
+        var ajaxData = {
+          action: 'acf/field_group/move_field',
+          field_id: id
+        };
+
+        // get HTML
+        $.ajax({
+          url: acf.get('ajaxurl'),
+          data: acf.prepareForAjax(ajaxData),
+          type: 'post',
+          dataType: 'html',
+          success: step2
+        });
+      };
+      var step2 = function (html) {
+        // update popup
+        popup.loading(false);
+        popup.content(html);
+
+        // submit form
+        popup.on('submit', 'form', step3);
+      };
+      var step3 = function (e, $el) {
+        // prevent
+        e.preventDefault();
+
+        // disable
+        acf.startButtonLoading(popup.$('.button'));
+
+        // ajax
+        var ajaxData = {
+          action: 'acf/field_group/move_field',
+          field_id: id,
+          field_group_id: popup.$('select').val()
+        };
+
+        // get HTML
+        $.ajax({
+          url: acf.get('ajaxurl'),
+          data: acf.prepareForAjax(ajaxData),
+          type: 'post',
+          dataType: 'html',
+          success: step4
+        });
+      };
+      var step4 = function (html) {
+        popup.content(html);
+        if (wp.a11y && wp.a11y.speak && acf.__) {
+          wp.a11y.speak(acf.__('Field moved to other group'), 'polite');
+        }
+        popup.$('.acf-close-popup').focus();
+        field.removeAnimate();
+      };
+
+      // start
+      step1();
+    },
+    onChangeType: function (e, $el) {
+      // clea previous timout
+      if (this.changeTimeout) {
+        clearTimeout(this.changeTimeout);
+      }
+
+      // set new timeout
+      // - prevents changing type multiple times whilst user types in newType
+      this.changeTimeout = this.setTimeout(function () {
+        this.changeType($el.val());
+      }, 300);
+    },
+    changeType: function (newType) {
+      var prevType = this.prop('type');
+      var prevClass = acf.strSlugify('acf-field-object-' + prevType);
+      var newClass = acf.strSlugify('acf-field-object-' + newType);
+
+      // Update props.
+      this.$el.removeClass(prevClass).addClass(newClass);
+      this.$el.attr('data-type', newType);
+      this.$el.data('type', newType);
+
+      // Abort XHR if this field is already loading AJAX data.
+      if (this.has('xhr')) {
+        this.get('xhr').abort();
+      }
+
+      // Store old settings so they can be reused later.
+      const $oldSettings = [];
+      this.$el.find('.acf-field-settings:first > .acf-field-settings-main > .acf-field-type-settings').each(function () {
+        let tab = $(this).data('parent-tab');
+        let $tabSettings = $(this).children();
+        $oldSettings[tab] = $tabSettings;
+        $tabSettings.detach();
+      });
+      this.set('settings-' + prevType, $oldSettings);
+
+      // Show the settings if we already have them cached.
+      if (this.has('settings-' + newType)) {
+        let $newSettings = this.get('settings-' + newType);
+        this.showFieldTypeSettings($newSettings);
+        this.set('type', newType);
+        return;
+      }
+
+      // Add loading spinner.
+      const $loading = $('<div class="acf-field"><div class="acf-input"><div class="acf-loading"></div></div></div>');
+      this.$el.find('.acf-field-settings-main-general .acf-field-type-settings').before($loading);
+      const ajaxData = {
+        action: 'acf/field_group/render_field_settings',
+        field: this.serialize(),
+        prefix: this.getInputName()
+      };
+
+      // Get the settings for this field type over AJAX.
+      var xhr = $.ajax({
+        url: acf.get('ajaxurl'),
+        data: acf.prepareForAjax(ajaxData),
+        type: 'post',
+        dataType: 'json',
+        context: this,
+        success: function (response) {
+          if (!acf.isAjaxSuccess(response)) {
+            return;
+          }
+          this.showFieldTypeSettings(response.data);
+        },
+        complete: function () {
+          // also triggered by xhr.abort();
+          $loading.remove();
+          this.set('type', newType);
+          //this.refresh();
+        }
+      });
+
+      // set
+      this.set('xhr', xhr);
+    },
+    showFieldTypeSettings: function (settings) {
+      if ('object' !== typeof settings) {
+        return;
+      }
+      const self = this;
+      const tabs = Object.keys(settings);
+      tabs.forEach(tab => {
+        const $tab = self.$el.find('.acf-field-settings-main-' + tab + ' .acf-field-type-settings');
+        let tabContent = '';
+        if (['object', 'string'].includes(typeof settings[tab])) {
+          tabContent = settings[tab];
+        }
+        $tab.prepend(tabContent);
+        acf.doAction('append', $tab);
+      });
+    },
+    updateParent: function () {
+      // vars
+      var ID = acf.get('post_id');
+
+      // check parent
+      var parent = this.getParent();
+      if (parent) {
+        ID = parseInt(parent.prop('ID')) || parent.prop('key');
+      }
+
+      // update
+      this.prop('parent', ID);
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-fields.js":
+/*!*****************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-fields.js ***!
+  \*****************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   *  acf.findFieldObject
+   *
+   *  Returns a single fieldObject $el for a given field key
+   *
+   *  @date	1/2/18
+   *  @since	5.7.0
+   *
+   *  @param	string key The field key
+   *  @return	jQuery
+   */
+
+  acf.findFieldObject = function (key) {
+    return acf.findFieldObjects({
+      key: key,
+      limit: 1
+    });
+  };
+
+  /**
+   *  acf.findFieldObjects
+   *
+   *  Returns an array of fieldObject $el for the given args
+   *
+   *  @date	1/2/18
+   *  @since	5.7.0
+   *
+   *  @param	object args
+   *  @return	jQuery
+   */
+
+  acf.findFieldObjects = function (args) {
+    // vars
+    args = args || {};
+    var selector = '.acf-field-object';
+    var $fields = false;
+
+    // args
+    args = acf.parseArgs(args, {
+      id: '',
+      key: '',
+      type: '',
+      limit: false,
+      list: null,
+      parent: false,
+      sibling: false,
+      child: false
+    });
+
+    // id
+    if (args.id) {
+      selector += '[data-id="' + args.id + '"]';
+    }
+
+    // key
+    if (args.key) {
+      selector += '[data-key="' + args.key + '"]';
+    }
+
+    // type
+    if (args.type) {
+      selector += '[data-type="' + args.type + '"]';
+    }
+
+    // query
+    if (args.list) {
+      $fields = args.list.children(selector);
+    } else if (args.parent) {
+      $fields = args.parent.find(selector);
+    } else if (args.sibling) {
+      $fields = args.sibling.siblings(selector);
+    } else if (args.child) {
+      $fields = args.child.parents(selector);
+    } else {
+      $fields = $(selector);
+    }
+
+    // limit
+    if (args.limit) {
+      $fields = $fields.slice(0, args.limit);
+    }
+
+    // return
+    return $fields;
+  };
+
+  /**
+   *  acf.getFieldObject
+   *
+   *  Returns a single fieldObject instance for a given $el|key
+   *
+   *  @date	1/2/18
+   *  @since	5.7.0
+   *
+   *  @param	string|jQuery $field The field $el or key
+   *  @return	jQuery
+   */
+
+  acf.getFieldObject = function ($field) {
+    // allow key
+    if (typeof $field === 'string') {
+      $field = acf.findFieldObject($field);
+    }
+
+    // instantiate
+    var field = $field.data('acf');
+    if (!field) {
+      field = acf.newFieldObject($field);
+    }
+
+    // return
+    return field;
+  };
+
+  /**
+   *  acf.getFieldObjects
+   *
+   *  Returns an array of fieldObject instances for the given args
+   *
+   *  @date	1/2/18
+   *  @since	5.7.0
+   *
+   *  @param	object args
+   *  @return	array
+   */
+
+  acf.getFieldObjects = function (args) {
+    // query
+    var $fields = acf.findFieldObjects(args);
+
+    // loop
+    var fields = [];
+    $fields.each(function () {
+      var field = acf.getFieldObject($(this));
+      fields.push(field);
+    });
+
+    // return
+    return fields;
+  };
+
+  /**
+   *  acf.newFieldObject
+   *
+   *  Initializes and returns a new FieldObject instance
+   *
+   *  @date	1/2/18
+   *  @since	5.7.0
+   *
+   *  @param	jQuery $field The field $el
+   *  @return	object
+   */
+
+  acf.newFieldObject = function ($field) {
+    // instantiate
+    var field = new acf.FieldObject($field);
+
+    // action
+    acf.doAction('new_field_object', field);
+
+    // return
+    return field;
+  };
+
+  /**
+   *  actionManager
+   *
+   *  description
+   *
+   *  @date	15/12/17
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var eventManager = new acf.Model({
+    priority: 5,
+    initialize: function () {
+      // actions
+      var actions = ['prepare', 'ready', 'append', 'remove'];
+
+      // loop
+      actions.map(function (action) {
+        this.addFieldActions(action);
+      }, this);
+    },
+    addFieldActions: function (action) {
+      // vars
+      var pluralAction = action + '_field_objects'; // ready_field_objects
+      var singleAction = action + '_field_object'; // ready_field_object
+      var singleEvent = action + 'FieldObject'; // readyFieldObject
+
+      // global action
+      var callback = function ($el /*, arg1, arg2, etc*/) {
+        // vars
+        var fieldObjects = acf.getFieldObjects({
+          parent: $el
+        });
+
+        // call plural
+        if (fieldObjects.length) {
+          /// get args [$el, arg1]
+          var args = acf.arrayArgs(arguments);
+
+          // modify args [pluralAction, fields, arg1]
+          args.splice(0, 1, pluralAction, fieldObjects);
+          acf.doAction.apply(null, args);
+        }
+      };
+
+      // plural action
+      var pluralCallback = function (fieldObjects /*, arg1, arg2, etc*/) {
+        /// get args [fields, arg1]
+        var args = acf.arrayArgs(arguments);
+
+        // modify args [singleAction, fields, arg1]
+        args.unshift(singleAction);
+
+        // loop
+        fieldObjects.map(function (fieldObject) {
+          // modify args [singleAction, field, arg1]
+          args[1] = fieldObject;
+          acf.doAction.apply(null, args);
+        });
+      };
+
+      // single action
+      var singleCallback = function (fieldObject /*, arg1, arg2, etc*/) {
+        /// get args [$field, arg1]
+        var args = acf.arrayArgs(arguments);
+
+        // modify args [singleAction, $field, arg1]
+        args.unshift(singleAction);
+
+        // action variations (ready_field/type=image)
+        var variations = ['type', 'name', 'key'];
+        variations.map(function (variation) {
+          args[0] = singleAction + '/' + variation + '=' + fieldObject.get(variation);
+          acf.doAction.apply(null, args);
+        });
+
+        // modify args [arg1]
+        args.splice(0, 2);
+
+        // event
+        fieldObject.trigger(singleEvent, args);
+      };
+
+      // add actions
+      acf.addAction(action, callback, 5);
+      acf.addAction(pluralAction, pluralCallback, 5);
+      acf.addAction(singleAction, singleCallback, 5);
+    }
+  });
+
+  /**
+   *  fieldManager
+   *
+   *  description
+   *
+   *  @date	4/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var fieldManager = new acf.Model({
+    id: 'fieldManager',
+    events: {
+      'submit #post': 'onSubmit',
+      'mouseenter .acf-field-list': 'onHoverSortable',
+      'click .add-field': 'onClickAdd'
+    },
+    actions: {
+      removed_field_object: 'onRemovedField',
+      sortstop_field_object: 'onReorderField',
+      delete_field_object: 'onDeleteField',
+      change_field_object_type: 'onChangeFieldType',
+      duplicate_field_object: 'onDuplicateField'
+    },
+    onSubmit: function (e, $el) {
+      // vars
+      var fields = acf.getFieldObjects();
+
+      // loop
+      fields.map(function (field) {
+        field.submit();
+      });
+    },
+    setFieldMenuOrder: function (field) {
+      this.renderFields(field.$el.parent());
+    },
+    onHoverSortable: function (e, $el) {
+      // bail early if already sortable
+      if ($el.hasClass('ui-sortable')) return;
+
+      // sortable
+      $el.sortable({
+        helper: 'clone',
+        handle: '.acf-sortable-handle',
+        connectWith: '.acf-field-list',
+        start: function (e, ui) {
+          var field = acf.getFieldObject(ui.item);
+          ui.placeholder.height(ui.item.height());
+          acf.doAction('sortstart_field_object', field, $el);
+        },
+        update: function (e, ui) {
+          var field = acf.getFieldObject(ui.item);
+          acf.doAction('sortstop_field_object', field, $el);
+        }
+      });
+    },
+    onRemovedField: function (field, $list) {
+      this.renderFields($list);
+    },
+    onReorderField: function (field, $list) {
+      field.updateParent();
+      this.renderFields($list);
+    },
+    onDeleteField: function (field) {
+      // delete children
+      field.getFields().map(function (child) {
+        child.delete({
+          animate: false
+        });
+      });
+    },
+    onChangeFieldType: function (field) {
+      // this caused sub fields to disapear if changing type back...
+      //this.onDeleteField( field );
+    },
+    onDuplicateField: function (field, newField) {
+      // check for children
+      var children = newField.getFields();
+      if (children.length) {
+        // loop
+        children.map(function (child) {
+          // wipe field
+          child.wipe();
+
+          // update parent
+          child.updateParent();
+        });
+
+        // action
+        acf.doAction('duplicate_field_objects', children, newField, field);
+      }
+
+      // set menu order
+      this.setFieldMenuOrder(newField);
+    },
+    renderFields: function ($list) {
+      // vars
+      var fields = acf.getFieldObjects({
+        list: $list
+      });
+
+      // no fields
+      if (!fields.length) {
+        $list.addClass('-empty');
+        $list.parents('.acf-field-list-wrap').first().addClass('-empty');
+        return;
+      }
+
+      // has fields
+      $list.removeClass('-empty');
+      $list.parents('.acf-field-list-wrap').first().removeClass('-empty');
+
+      // prop
+      fields.map(function (field, i) {
+        field.prop('menu_order', i);
+      });
+    },
+    onClickAdd: function (e, $el) {
+      let $list;
+      if ($el.hasClass('add-first-field')) {
+        $list = $el.parents('.acf-field-list').eq(0);
+      } else if ($el.parent().hasClass('acf-headerbar-actions') || $el.parent().hasClass('no-fields-message-inner')) {
+        $list = $('.acf-field-list:first');
+      } else if ($el.parent().hasClass('acf-sub-field-list-header')) {
+        $list = $el.parents('.acf-input:first').find('.acf-field-list');
+      } else {
+        $list = $el.closest('.acf-tfoot').siblings('.acf-field-list');
+      }
+      this.addField($list);
+    },
+    addField: function ($list) {
+      // vars
+      var html = $('#tmpl-acf-field').html();
+      var $el = $(html);
+      var prevId = $el.data('id');
+      var newKey = acf.uniqid('field_');
+
+      // duplicate
+      var $newField = acf.duplicate({
+        target: $el,
+        search: prevId,
+        replace: newKey,
+        append: function ($el, $el2) {
+          $list.append($el2);
+        }
+      });
+
+      // get instance
+      var newField = acf.getFieldObject($newField);
+
+      // props
+      newField.prop('key', newKey);
+      newField.prop('ID', 0);
+      newField.prop('label', '');
+      newField.prop('name', '');
+
+      // attr
+      $newField.attr('data-key', newKey);
+      $newField.attr('data-id', newKey);
+
+      // update parent prop
+      newField.updateParent();
+
+      // focus type
+      var $type = newField.$input('type');
+      setTimeout(function () {
+        if ($list.hasClass('acf-auto-add-field')) {
+          $list.removeClass('acf-auto-add-field');
+        } else {
+          $type.trigger('focus');
+        }
+      }, 251);
+
+      // open
+      newField.open();
+
+      // set menu order
+      this.renderFields($list);
+
+      // action
+      acf.doAction('add_field_object', newField);
+      acf.doAction('append_field_object', newField);
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-locations.js":
+/*!********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-locations.js ***!
+  \********************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   *  locationManager
+   *
+   *  Field group location rules functionality
+   *
+   *  @date	15/12/17
+   *  @since	5.7.0
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var locationManager = new acf.Model({
+    id: 'locationManager',
+    wait: 'ready',
+    events: {
+      'click .add-location-rule': 'onClickAddRule',
+      'click .add-location-group': 'onClickAddGroup',
+      'click .remove-location-rule': 'onClickRemoveRule',
+      'change .refresh-location-rule': 'onChangeRemoveRule'
+    },
+    initialize: function () {
+      this.$el = $('#acf-field-group-options');
+      this.updateGroupsClass();
+    },
+    onClickAddRule: function (e, $el) {
+      this.addRule($el.closest('tr'));
+    },
+    onClickRemoveRule: function (e, $el) {
+      this.removeRule($el.closest('tr'));
+    },
+    onChangeRemoveRule: function (e, $el) {
+      this.changeRule($el.closest('tr'));
+    },
+    onClickAddGroup: function (e, $el) {
+      this.addGroup();
+    },
+    addRule: function ($tr) {
+      acf.duplicate($tr);
+      this.updateGroupsClass();
+    },
+    removeRule: function ($tr) {
+      if ($tr.siblings('tr').length == 0) {
+        $tr.closest('.rule-group').remove();
+      } else {
+        $tr.remove();
+      }
+
+      // Update h4
+      var $group = this.$('.rule-group:first');
+      $group.find('h4').text(acf.__('Show this field group if'));
+      this.updateGroupsClass();
+    },
+    changeRule: function ($rule) {
+      // vars
+      var $group = $rule.closest('.rule-group');
+      var prefix = $rule.find('td.param select').attr('name').replace('[param]', '');
+
+      // ajaxdata
+      var ajaxdata = {};
+      ajaxdata.action = 'acf/field_group/render_location_rule';
+      ajaxdata.rule = acf.serialize($rule, prefix);
+      ajaxdata.rule.id = $rule.data('id');
+      ajaxdata.rule.group = $group.data('id');
+
+      // temp disable
+      acf.disable($rule.find('td.value'));
+
+      // ajax
+      $.ajax({
+        url: acf.get('ajaxurl'),
+        data: acf.prepareForAjax(ajaxdata),
+        type: 'post',
+        dataType: 'html',
+        success: function (html) {
+          if (!html) return;
+          $rule.replaceWith(html);
+        }
+      });
+    },
+    addGroup: function () {
+      // vars
+      var $group = this.$('.rule-group:last');
+
+      // duplicate
+      $group2 = acf.duplicate($group);
+
+      // update h4
+      $group2.find('h4').text(acf.__('or'));
+
+      // remove all tr's except the first one
+      $group2.find('tr').not(':first').remove();
+
+      // update the groups class
+      this.updateGroupsClass();
+    },
+    updateGroupsClass: function () {
+      var $group = this.$('.rule-group:last');
+      var $ruleGroups = $group.closest('.rule-groups');
+      var rows_count = $ruleGroups.find('.acf-table tr').length;
+      if (rows_count > 1) {
+        $ruleGroups.addClass('rule-groups-multiple');
+      } else {
+        $ruleGroups.removeClass('rule-groups-multiple');
+      }
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-settings.js":
+/*!*******************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group-settings.js ***!
+  \*******************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   *  mid
+   *
+   *  Calculates the model ID for a field type
+   *
+   *  @date	15/12/17
+   *  @since	5.6.5
+   *
+   *  @param	string type
+   *  @return	string
+   */
+
+  var modelId = function (type) {
+    return acf.strPascalCase(type || '') + 'FieldSetting';
+  };
+
+  /**
+   *  registerFieldType
+   *
+   *  description
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.registerFieldSetting = function (model) {
+    var proto = model.prototype;
+    var mid = modelId(proto.type + ' ' + proto.name);
+    this.models[mid] = model;
+  };
+
+  /**
+   *  newField
+   *
+   *  description
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.newFieldSetting = function (field) {
+    // vars
+    var type = field.get('setting') || '';
+    var name = field.get('name') || '';
+    var mid = modelId(type + ' ' + name);
+    var model = acf.models[mid] || null;
+
+    // bail early if no setting
+    if (model === null) return false;
+
+    // instantiate
+    var setting = new model(field);
+
+    // return
+    return setting;
+  };
+
+  /**
+   *  acf.getFieldSetting
+   *
+   *  description
+   *
+   *  @date	19/4/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.getFieldSetting = function (field) {
+    // allow jQuery
+    if (field instanceof jQuery) {
+      field = acf.getField(field);
+    }
+
+    // return
+    return field.setting;
+  };
+
+  /**
+   * settingsManager
+   *
+   * @since	5.6.5
+   *
+   * @param	object The object containing the extended variables and methods.
+   * @return	void
+   */
+  var settingsManager = new acf.Model({
+    actions: {
+      new_field: 'onNewField'
+    },
+    onNewField: function (field) {
+      field.setting = acf.newFieldSetting(field);
+    }
+  });
+
+  /**
+   * acf.FieldSetting
+   *
+   * @since	5.6.5
+   *
+   * @param	object The object containing the extended variables and methods.
+   * @return	void
+   */
+  acf.FieldSetting = acf.Model.extend({
+    field: false,
+    type: '',
+    name: '',
+    wait: 'ready',
+    eventScope: '.acf-field',
+    events: {
+      change: 'render'
+    },
+    setup: function (field) {
+      // vars
+      var $field = field.$el;
+
+      // set props
+      this.$el = $field;
+      this.field = field;
+      this.$fieldObject = $field.closest('.acf-field-object');
+      this.fieldObject = acf.getFieldObject(this.$fieldObject);
+
+      // inherit data
+      $.extend(this.data, field.data);
+    },
+    initialize: function () {
+      this.render();
+    },
+    render: function () {
+      // do nothing
+    }
+  });
+
+  /**
+   * Accordion and Tab Endpoint Settings
+   *
+   * The 'endpoint' setting on accordions and tabs requires an additional class on the
+   * field object row when enabled.
+   *
+   * @since	6.0.0
+   *
+   * @param	object The object containing the extended variables and methods.
+   * @return	void
+   */
+  var EndpointFieldSetting = acf.FieldSetting.extend({
+    type: '',
+    name: '',
+    render: function () {
+      var $endpoint_setting = this.fieldObject.$setting('endpoint');
+      var $endpoint_field = $endpoint_setting.find('input[type="checkbox"]:first');
+      if ($endpoint_field.is(':checked')) {
+        this.fieldObject.$el.addClass('acf-field-is-endpoint');
+      } else {
+        this.fieldObject.$el.removeClass('acf-field-is-endpoint');
+      }
+    }
+  });
+  var AccordionEndpointFieldSetting = EndpointFieldSetting.extend({
+    type: 'accordion',
+    name: 'endpoint'
+  });
+  var TabEndpointFieldSetting = EndpointFieldSetting.extend({
+    type: 'tab',
+    name: 'endpoint'
+  });
+  acf.registerFieldSetting(AccordionEndpointFieldSetting);
+  acf.registerFieldSetting(TabEndpointFieldSetting);
+
+  /**
+   * Date Picker
+   *
+   * This field type requires some extra logic for its settings
+   *
+   * @since	5.0.0
+   *
+   * @param	object The object containing the extended variables and methods.
+   * @return	void
+   */
+  var DisplayFormatFieldSetting = acf.FieldSetting.extend({
+    type: '',
+    name: '',
+    render: function () {
+      var $input = this.$('input[type="radio"]:checked');
+      if ($input.val() != 'other') {
+        this.$('input[type="text"]').val($input.val());
+      }
+    }
+  });
+  var DatePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend({
+    type: 'date_picker',
+    name: 'display_format'
+  });
+  var DatePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend({
+    type: 'date_picker',
+    name: 'return_format'
+  });
+  acf.registerFieldSetting(DatePickerDisplayFormatFieldSetting);
+  acf.registerFieldSetting(DatePickerReturnFormatFieldSetting);
+
+  /**
+   * Date Time Picker
+   *
+   * This field type requires some extra logic for its settings
+   *
+   * @since	5.0.0
+   *
+   * @param	object The object containing the extended variables and methods.
+   * @return	void
+   */
+  var DateTimePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend({
+    type: 'date_time_picker',
+    name: 'display_format'
+  });
+  var DateTimePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend({
+    type: 'date_time_picker',
+    name: 'return_format'
+  });
+  acf.registerFieldSetting(DateTimePickerDisplayFormatFieldSetting);
+  acf.registerFieldSetting(DateTimePickerReturnFormatFieldSetting);
+
+  /**
+   * Time Picker
+   *
+   * This field type requires some extra logic for its settings
+   *
+   * @since	5.0.0
+   *
+   * @param	object The object containing the extended variables and methods.
+   * @return	void
+   */
+  var TimePickerDisplayFormatFieldSetting = DisplayFormatFieldSetting.extend({
+    type: 'time_picker',
+    name: 'display_format'
+  });
+  var TimePickerReturnFormatFieldSetting = DisplayFormatFieldSetting.extend({
+    type: 'time_picker',
+    name: 'return_format'
+  });
+  acf.registerFieldSetting(TimePickerDisplayFormatFieldSetting);
+  acf.registerFieldSetting(TimePickerReturnFormatFieldSetting);
+
+  /**
+   * Color Picker Settings.
+   *
+   * @date	16/12/20
+   * @since	5.9.4
+   *
+   * @param	object The object containing the extended variables and methods.
+   * @return	void
+   */
+  var ColorPickerReturnFormat = acf.FieldSetting.extend({
+    type: 'color_picker',
+    name: 'enable_opacity',
+    render: function () {
+      var $return_format_setting = this.fieldObject.$setting('return_format');
+      var $default_value_setting = this.fieldObject.$setting('default_value');
+      var $labelText = $return_format_setting.find('input[type="radio"][value="string"]').parent('label').contents().last();
+      var $defaultPlaceholder = $default_value_setting.find('input[type="text"]');
+      var l10n = acf.get('colorPickerL10n');
+      if (this.field.val()) {
+        $labelText.replaceWith(l10n.rgba_string);
+        $defaultPlaceholder.attr('placeholder', 'rgba(255,255,255,0.8)');
+      } else {
+        $labelText.replaceWith(l10n.hex_string);
+        $defaultPlaceholder.attr('placeholder', '#FFFFFF');
+      }
+    }
+  });
+  acf.registerFieldSetting(ColorPickerReturnFormat);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_field-group.js":
+/*!**********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_field-group.js ***!
+  \**********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   *  fieldGroupManager
+   *
+   *  Generic field group functionality
+   *
+   *  @date	15/12/17
+   *  @since	5.7.0
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var fieldGroupManager = new acf.Model({
+    id: 'fieldGroupManager',
+    events: {
+      'submit #post': 'onSubmit',
+      'click a[href="#"]': 'onClick',
+      'click .acf-delete-field-group': 'onClickDeleteFieldGroup',
+      'blur input#title': 'onBlurValidateTitle'
+    },
+    filters: {
+      find_fields_args: 'filterFindFieldArgs',
+      find_fields_selector: 'filterFindFieldsSelector'
+    },
+    initialize: function () {
+      acf.addAction('prepare', this.maybeInitNewFieldGroup);
+    },
+    maybeInitNewFieldGroup: function () {
+      let $field_list_wrapper = $('#acf-field-group-fields > .inside > .acf-field-list-wrap.acf-auto-add-field');
+      if ($field_list_wrapper.length) {
+        $('.acf-headerbar-actions .add-field').trigger('click');
+        $('.acf-title-wrap #title').trigger('focus');
+      }
+
+      // Watch title input
+      // if title empty disable submit button
+      // if title exists allow submitting form
+      let $submitButton = $('.acf-publish');
+      $('input#title').on('input', function () {
+        const titleValue = $(this).val();
+        if (!titleValue) {
+          $submitButton.addClass('disabled');
+        } else {
+          $submitButton.removeClass('disabled');
+          $(this).removeClass('acf-input-error');
+        }
+      });
+    },
+    onSubmit: function (e, $el) {
+      // vars
+      var $title = $('.acf-title-wrap #title');
+
+      // empty
+      if (!$title.val()) {
+        // prevent default
+        e.preventDefault();
+
+        // unlock form
+        acf.unlockForm($el);
+
+        // focus
+        $title.trigger('focus');
+      }
+    },
+    onClick: function (e) {
+      e.preventDefault();
+    },
+    onClickDeleteFieldGroup: function (e, $el) {
+      e.preventDefault();
+      $el.addClass('-hover');
+
+      // Add confirmation tooltip.
+      acf.newTooltip({
+        confirm: true,
+        target: $el,
+        context: this,
+        text: acf.__('Move field group to trash?'),
+        confirm: function () {
+          window.location.href = $el.attr('href');
+        },
+        cancel: function () {
+          $el.removeClass('-hover');
+        }
+      });
+    },
+    onBlurValidateTitle: function (e, $el) {
+      if (!$el.val()) {
+        $el.addClass('acf-input-error');
+        $('.acf-publish').addClass('disabled');
+      } else {
+        $el.removeClass('acf-input-error');
+        $('.acf-publish').removeClass('disabled');
+      }
+    },
+    filterFindFieldArgs: function (args) {
+      args.visible = true;
+      if (args.parent && (args.parent.hasClass('acf-field-object') || args.parent.parents('.acf-field-object').length)) {
+        args.visible = false;
+        args.excludeSubFields = true;
+      }
+      return args;
+    },
+    filterFindFieldsSelector: function (selector) {
+      return selector + ', .acf-field-acf-field-group-settings-tabs';
+    }
+  });
+
+  /**
+   *  screenOptionsManager
+   *
+   *  Screen options functionality
+   *
+   *  @date	15/12/17
+   *  @since	5.7.0
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var screenOptionsManager = new acf.Model({
+    id: 'screenOptionsManager',
+    wait: 'prepare',
+    events: {
+      'change #acf-field-key-hide': 'onFieldKeysChange',
+      'change #acf-field-settings-tabs': 'onFieldSettingsTabsChange',
+      'change [name="screen_columns"]': 'render'
+    },
+    initialize: function () {
+      // vars
+      var $div = $('#adv-settings');
+      var $append = $('#acf-append-show-on-screen');
+
+      // append
+      $div.find('.metabox-prefs').append($append.html());
+      $div.find('.metabox-prefs br').remove();
+
+      // clean up
+      $append.remove();
+
+      // initialize
+      this.$el = $('#screen-options-wrap');
+
+      // render
+      this.render();
+    },
+    isFieldKeysChecked: function () {
+      return this.$el.find('#acf-field-key-hide').prop('checked');
+    },
+    isFieldSettingsTabsChecked: function () {
+      const $input = this.$el.find('#acf-field-settings-tabs');
+
+      // Screen option is hidden by filter.
+      if (!$input.length) {
+        return false;
+      }
+      return $input.prop('checked');
+    },
+    getSelectedColumnCount: function () {
+      return this.$el.find('input[name="screen_columns"]:checked').val();
+    },
+    onFieldKeysChange: function (e, $el) {
+      var val = this.isFieldKeysChecked() ? 1 : 0;
+      acf.updateUserSetting('show_field_keys', val);
+      this.render();
+    },
+    onFieldSettingsTabsChange: function () {
+      const val = this.isFieldSettingsTabsChecked() ? 1 : 0;
+      acf.updateUserSetting('show_field_settings_tabs', val);
+      this.render();
+    },
+    render: function () {
+      if (this.isFieldKeysChecked()) {
+        $('#acf-field-group-fields').addClass('show-field-keys');
+      } else {
+        $('#acf-field-group-fields').removeClass('show-field-keys');
+      }
+      if (!this.isFieldSettingsTabsChecked()) {
+        $('#acf-field-group-fields').addClass('hide-tabs');
+        $('.acf-field-settings-main').removeClass('acf-hidden').prop('hidden', false);
+      } else {
+        $('#acf-field-group-fields').removeClass('hide-tabs');
+        $('.acf-field-object.open').each(function () {
+          const tabFields = acf.getFields({
+            type: 'tab',
+            parent: $(this),
+            excludeSubFields: true,
+            limit: 1
+          });
+          if (tabFields.length) {
+            tabFields[0].tabs.set('initialized', false);
+          }
+          acf.doAction('show', $(this));
+        });
+      }
+      if (this.getSelectedColumnCount() == 1) {
+        $('body').removeClass('columns-2');
+        $('body').addClass('columns-1');
+      } else {
+        $('body').removeClass('columns-1');
+        $('body').addClass('columns-2');
+      }
+    }
+  });
+
+  /**
+   *  appendFieldManager
+   *
+   *  Appends fields together
+   *
+   *  @date	15/12/17
+   *  @since	5.7.0
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var appendFieldManager = new acf.Model({
+    actions: {
+      new_field: 'onNewField'
+    },
+    onNewField: function (field) {
+      // bail early if not append
+      if (!field.has('append')) return;
+
+      // vars
+      var append = field.get('append');
+      var $sibling = field.$el.siblings('[data-name="' + append + '"]').first();
+
+      // bail early if no sibling
+      if (!$sibling.length) return;
+
+      // ul
+      var $div = $sibling.children('.acf-input');
+      var $ul = $div.children('ul');
+
+      // create ul
+      if (!$ul.length) {
+        $div.wrapInner('<ul class="acf-hl"><li></li></ul>');
+        $ul = $div.children('ul');
+      }
+
+      // li
+      var html = field.$('.acf-input').html();
+      var $li = $('<li>' + html + '</li>');
+      $ul.append($li);
+      $ul.attr('data-cols', $ul.children().length);
+
+      // clean up
+      field.remove();
+    }
+  });
+})(jQuery);
+
+/***/ })
+
+/******/ 	});
+/************************************************************************/
+/******/ 	// The module cache
+/******/ 	var __webpack_module_cache__ = {};
+/******/ 	
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/ 		// Check if module is in cache
+/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
+/******/ 		if (cachedModule !== undefined) {
+/******/ 			return cachedModule.exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = __webpack_module_cache__[moduleId] = {
+/******/ 			// no module.id needed
+/******/ 			// no module.loaded needed
+/******/ 			exports: {}
+/******/ 		};
+/******/ 	
+/******/ 		// Execute the module function
+/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/ 	
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/ 	
+/************************************************************************/
+/******/ 	/* webpack/runtime/compat get default export */
+/******/ 	!function() {
+/******/ 		// getDefaultExport function for compatibility with non-harmony modules
+/******/ 		__webpack_require__.n = function(module) {
+/******/ 			var getter = module && module.__esModule ?
+/******/ 				function() { return module['default']; } :
+/******/ 				function() { return module; };
+/******/ 			__webpack_require__.d(getter, { a: getter });
+/******/ 			return getter;
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/define property getters */
+/******/ 	!function() {
+/******/ 		// define getter functions for harmony exports
+/******/ 		__webpack_require__.d = function(exports, definition) {
+/******/ 			for(var key in definition) {
+/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ 				}
+/******/ 			}
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
+/******/ 	!function() {
+/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/make namespace object */
+/******/ 	!function() {
+/******/ 		// define __esModule on exports
+/******/ 		__webpack_require__.r = function(exports) {
+/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 			}
+/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be in strict mode.
+!function() {
+"use strict";
+/*!*************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/acf-field-group.js ***!
+  \*************************************************************************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _field_group_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_field-group.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group.js");
+/* harmony import */ var _field_group_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_field_group_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _field_group_field_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_field-group-field.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-field.js");
+/* harmony import */ var _field_group_field_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_field_group_field_js__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _field_group_settings_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_field-group-settings.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-settings.js");
+/* harmony import */ var _field_group_settings_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_field_group_settings_js__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _field_group_conditions_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_field-group-conditions.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-conditions.js");
+/* harmony import */ var _field_group_conditions_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_field_group_conditions_js__WEBPACK_IMPORTED_MODULE_3__);
+/* harmony import */ var _field_group_fields_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_field-group-fields.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-fields.js");
+/* harmony import */ var _field_group_fields_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_field_group_fields_js__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var _field_group_locations_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_field-group-locations.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-locations.js");
+/* harmony import */ var _field_group_locations_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_field_group_locations_js__WEBPACK_IMPORTED_MODULE_5__);
+/* harmony import */ var _field_group_compatibility_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_field-group-compatibility.js */ "./src/advanced-custom-fields-pro/assets/src/js/_field-group-compatibility.js");
+/* harmony import */ var _field_group_compatibility_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_field_group_compatibility_js__WEBPACK_IMPORTED_MODULE_6__);
+
+
+
+
+
+
+
+}();
+/******/ })()
+;
+//# sourceMappingURL=acf-field-group.js.map

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/acf-field-group.js.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/acf-field-group.min.js


+ 10447 - 0
inc/acf/assets/build/js/acf-input.js

@@ -0,0 +1,10447 @@
+/******/ (function() { // webpackBootstrap
+/******/ 	var __webpack_modules__ = ({
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-compatibility.js":
+/*!****************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-compatibility.js ***!
+  \****************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   *  acf.newCompatibility
+   *
+   *  Inserts a new __proto__ object compatibility layer
+   *
+   *  @date	15/2/18
+   *  @since	5.6.9
+   *
+   *  @param	object instance The object to modify.
+   *  @param	object compatibilty Optional. The compatibilty layer.
+   *  @return	object compatibilty
+   */
+
+  acf.newCompatibility = function (instance, compatibilty) {
+    // defaults
+    compatibilty = compatibilty || {};
+
+    // inherit __proto_-
+    compatibilty.__proto__ = instance.__proto__;
+
+    // inject
+    instance.__proto__ = compatibilty;
+
+    // reference
+    instance.compatibility = compatibilty;
+
+    // return
+    return compatibilty;
+  };
+
+  /**
+   *  acf.getCompatibility
+   *
+   *  Returns the compatibility layer for a given instance
+   *
+   *  @date	13/3/18
+   *  @since	5.6.9
+   *
+   *  @param	object		instance		The object to look in.
+   *  @return	object|null	compatibility	The compatibility object or null on failure.
+   */
+
+  acf.getCompatibility = function (instance) {
+    return instance.compatibility || null;
+  };
+
+  /**
+   *  acf (compatibility)
+   *
+   *  Compatibility layer for the acf object
+   *
+   *  @date	15/2/18
+   *  @since	5.6.9
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var _acf = acf.newCompatibility(acf, {
+    // storage
+    l10n: {},
+    o: {},
+    fields: {},
+    // changed function names
+    update: acf.set,
+    add_action: acf.addAction,
+    remove_action: acf.removeAction,
+    do_action: acf.doAction,
+    add_filter: acf.addFilter,
+    remove_filter: acf.removeFilter,
+    apply_filters: acf.applyFilters,
+    parse_args: acf.parseArgs,
+    disable_el: acf.disable,
+    disable_form: acf.disable,
+    enable_el: acf.enable,
+    enable_form: acf.enable,
+    update_user_setting: acf.updateUserSetting,
+    prepare_for_ajax: acf.prepareForAjax,
+    is_ajax_success: acf.isAjaxSuccess,
+    remove_el: acf.remove,
+    remove_tr: acf.remove,
+    str_replace: acf.strReplace,
+    render_select: acf.renderSelect,
+    get_uniqid: acf.uniqid,
+    serialize_form: acf.serialize,
+    esc_html: acf.strEscape,
+    str_sanitize: acf.strSanitize
+  });
+  _acf._e = function (k1, k2) {
+    // defaults
+    k1 = k1 || '';
+    k2 = k2 || '';
+
+    // compability
+    var compatKey = k2 ? k1 + '.' + k2 : k1;
+    var compats = {
+      'image.select': 'Select Image',
+      'image.edit': 'Edit Image',
+      'image.update': 'Update Image'
+    };
+    if (compats[compatKey]) {
+      return acf.__(compats[compatKey]);
+    }
+
+    // try k1
+    var string = this.l10n[k1] || '';
+
+    // try k2
+    if (k2) {
+      string = string[k2] || '';
+    }
+
+    // return
+    return string;
+  };
+  _acf.get_selector = function (s) {
+    // vars
+    var selector = '.acf-field';
+
+    // bail early if no search
+    if (!s) {
+      return selector;
+    }
+
+    // compatibility with object
+    if ($.isPlainObject(s)) {
+      if ($.isEmptyObject(s)) {
+        return selector;
+      } else {
+        for (var k in s) {
+          s = s[k];
+          break;
+        }
+      }
+    }
+
+    // append
+    selector += '-' + s;
+
+    // replace underscores (split/join replaces all and is faster than regex!)
+    selector = acf.strReplace('_', '-', selector);
+
+    // remove potential double up
+    selector = acf.strReplace('field-field-', 'field-', selector);
+
+    // return
+    return selector;
+  };
+  _acf.get_fields = function (s, $el, all) {
+    // args
+    var args = {
+      is: s || '',
+      parent: $el || false,
+      suppressFilters: all || false
+    };
+
+    // change 'field_123' to '.acf-field-123'
+    if (args.is) {
+      args.is = this.get_selector(args.is);
+    }
+
+    // return
+    return acf.findFields(args);
+  };
+  _acf.get_field = function (s, $el) {
+    // get fields
+    var $fields = this.get_fields.apply(this, arguments);
+
+    // return
+    if ($fields.length) {
+      return $fields.first();
+    } else {
+      return false;
+    }
+  };
+  _acf.get_closest_field = function ($el, s) {
+    return $el.closest(this.get_selector(s));
+  };
+  _acf.get_field_wrap = function ($el) {
+    return $el.closest(this.get_selector());
+  };
+  _acf.get_field_key = function ($field) {
+    return $field.data('key');
+  };
+  _acf.get_field_type = function ($field) {
+    return $field.data('type');
+  };
+  _acf.get_data = function ($el, defaults) {
+    return acf.parseArgs($el.data(), defaults);
+  };
+  _acf.maybe_get = function (obj, key, value) {
+    // default
+    if (value === undefined) {
+      value = null;
+    }
+
+    // get keys
+    keys = String(key).split('.');
+
+    // acf.isget
+    for (var i = 0; i < keys.length; i++) {
+      if (!obj.hasOwnProperty(keys[i])) {
+        return value;
+      }
+      obj = obj[keys[i]];
+    }
+    return obj;
+  };
+
+  /**
+   *  hooks
+   *
+   *  Modify add_action and add_filter functions to add compatibility with changed $field parameter
+   *  Using the acf.add_action() or acf.add_filter() functions will interpret new field parameters as jQuery $field
+   *
+   *  @date	12/5/18
+   *  @since	5.6.9
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var compatibleArgument = function (arg) {
+    return arg instanceof acf.Field ? arg.$el : arg;
+  };
+  var compatibleArguments = function (args) {
+    return acf.arrayArgs(args).map(compatibleArgument);
+  };
+  var compatibleCallback = function (origCallback) {
+    return function () {
+      // convert to compatible arguments
+      if (arguments.length) {
+        var args = compatibleArguments(arguments);
+
+        // add default argument for 'ready', 'append' and 'load' events
+      } else {
+        var args = [$(document)];
+      }
+
+      // return
+      return origCallback.apply(this, args);
+    };
+  };
+  _acf.add_action = function (action, callback, priority, context) {
+    // handle multiple actions
+    var actions = action.split(' ');
+    var length = actions.length;
+    if (length > 1) {
+      for (var i = 0; i < length; i++) {
+        action = actions[i];
+        _acf.add_action.apply(this, arguments);
+      }
+      return this;
+    }
+
+    // single
+    var callback = compatibleCallback(callback);
+    return acf.addAction.apply(this, arguments);
+  };
+  _acf.add_filter = function (action, callback, priority, context) {
+    var callback = compatibleCallback(callback);
+    return acf.addFilter.apply(this, arguments);
+  };
+
+  /*
+   *  acf.model
+   *
+   *  This model acts as a scafold for action.event driven modules
+   *
+   *  @type	object
+   *  @date	8/09/2014
+   *  @since	5.0.0
+   *
+   *  @param	(object)
+   *  @return	(object)
+   */
+
+  _acf.model = {
+    actions: {},
+    filters: {},
+    events: {},
+    extend: function (args) {
+      // extend
+      var model = $.extend({}, this, args);
+
+      // setup actions
+      $.each(model.actions, function (name, callback) {
+        model._add_action(name, callback);
+      });
+
+      // setup filters
+      $.each(model.filters, function (name, callback) {
+        model._add_filter(name, callback);
+      });
+
+      // setup events
+      $.each(model.events, function (name, callback) {
+        model._add_event(name, callback);
+      });
+
+      // return
+      return model;
+    },
+    _add_action: function (name, callback) {
+      // split
+      var model = this,
+        data = name.split(' ');
+
+      // add missing priority
+      var name = data[0] || '',
+        priority = data[1] || 10;
+
+      // add action
+      acf.add_action(name, model[callback], priority, model);
+    },
+    _add_filter: function (name, callback) {
+      // split
+      var model = this,
+        data = name.split(' ');
+
+      // add missing priority
+      var name = data[0] || '',
+        priority = data[1] || 10;
+
+      // add action
+      acf.add_filter(name, model[callback], priority, model);
+    },
+    _add_event: function (name, callback) {
+      // vars
+      var model = this,
+        i = name.indexOf(' '),
+        event = i > 0 ? name.substr(0, i) : name,
+        selector = i > 0 ? name.substr(i + 1) : '';
+
+      // event
+      var fn = function (e) {
+        // append $el to event object
+        e.$el = $(this);
+
+        // append $field to event object (used in field group)
+        if (acf.field_group) {
+          e.$field = e.$el.closest('.acf-field-object');
+        }
+
+        // event
+        if (typeof model.event === 'function') {
+          e = model.event(e);
+        }
+
+        // callback
+        model[callback].apply(model, arguments);
+      };
+
+      // add event
+      if (selector) {
+        $(document).on(event, selector, fn);
+      } else {
+        $(document).on(event, fn);
+      }
+    },
+    get: function (name, value) {
+      // defaults
+      value = value || null;
+
+      // get
+      if (typeof this[name] !== 'undefined') {
+        value = this[name];
+      }
+
+      // return
+      return value;
+    },
+    set: function (name, value) {
+      // set
+      this[name] = value;
+
+      // function for 3rd party
+      if (typeof this['_set_' + name] === 'function') {
+        this['_set_' + name].apply(this);
+      }
+
+      // return for chaining
+      return this;
+    }
+  };
+
+  /*
+   *  field
+   *
+   *  This model sets up many of the field's interactions
+   *
+   *  @type	function
+   *  @date	21/02/2014
+   *  @since	3.5.1
+   *
+   *  @param	n/a
+   *  @return	n/a
+   */
+
+  _acf.field = acf.model.extend({
+    type: '',
+    o: {},
+    $field: null,
+    _add_action: function (name, callback) {
+      // vars
+      var model = this;
+
+      // update name
+      name = name + '_field/type=' + model.type;
+
+      // add action
+      acf.add_action(name, function ($field) {
+        // focus
+        model.set('$field', $field);
+
+        // callback
+        model[callback].apply(model, arguments);
+      });
+    },
+    _add_filter: function (name, callback) {
+      // vars
+      var model = this;
+
+      // update name
+      name = name + '_field/type=' + model.type;
+
+      // add action
+      acf.add_filter(name, function ($field) {
+        // focus
+        model.set('$field', $field);
+
+        // callback
+        model[callback].apply(model, arguments);
+      });
+    },
+    _add_event: function (name, callback) {
+      // vars
+      var model = this,
+        event = name.substr(0, name.indexOf(' ')),
+        selector = name.substr(name.indexOf(' ') + 1),
+        context = acf.get_selector(model.type);
+
+      // add event
+      $(document).on(event, context + ' ' + selector, function (e) {
+        // vars
+        var $el = $(this);
+        var $field = acf.get_closest_field($el, model.type);
+
+        // bail early if no field
+        if (!$field.length) return;
+
+        // focus
+        if (!$field.is(model.$field)) {
+          model.set('$field', $field);
+        }
+
+        // append to event
+        e.$el = $el;
+        e.$field = $field;
+
+        // callback
+        model[callback].apply(model, [e]);
+      });
+    },
+    _set_$field: function () {
+      // callback
+      if (typeof this.focus === 'function') {
+        this.focus();
+      }
+    },
+    // depreciated
+    doFocus: function ($field) {
+      return this.set('$field', $field);
+    }
+  });
+
+  /**
+   *  validation
+   *
+   *  description
+   *
+   *  @date	15/2/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var _validation = acf.newCompatibility(acf.validation, {
+    remove_error: function ($field) {
+      acf.getField($field).removeError();
+    },
+    add_warning: function ($field, message) {
+      acf.getField($field).showNotice({
+        text: message,
+        type: 'warning',
+        timeout: 1000
+      });
+    },
+    fetch: acf.validateForm,
+    enableSubmit: acf.enableSubmit,
+    disableSubmit: acf.disableSubmit,
+    showSpinner: acf.showSpinner,
+    hideSpinner: acf.hideSpinner,
+    unlockForm: acf.unlockForm,
+    lockForm: acf.lockForm
+  });
+
+  /**
+   *  tooltip
+   *
+   *  description
+   *
+   *  @date	15/2/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  _acf.tooltip = {
+    tooltip: function (text, $el) {
+      var tooltip = acf.newTooltip({
+        text: text,
+        target: $el
+      });
+
+      // return
+      return tooltip.$el;
+    },
+    temp: function (text, $el) {
+      var tooltip = acf.newTooltip({
+        text: text,
+        target: $el,
+        timeout: 250
+      });
+    },
+    confirm: function ($el, callback, text, button_y, button_n) {
+      var tooltip = acf.newTooltip({
+        confirm: true,
+        text: text,
+        target: $el,
+        confirm: function () {
+          callback(true);
+        },
+        cancel: function () {
+          callback(false);
+        }
+      });
+    },
+    confirm_remove: function ($el, callback) {
+      var tooltip = acf.newTooltip({
+        confirmRemove: true,
+        target: $el,
+        confirm: function () {
+          callback(true);
+        },
+        cancel: function () {
+          callback(false);
+        }
+      });
+    }
+  };
+
+  /**
+   *  tooltip
+   *
+   *  description
+   *
+   *  @date	15/2/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  _acf.media = new acf.Model({
+    activeFrame: false,
+    actions: {
+      new_media_popup: 'onNewMediaPopup'
+    },
+    frame: function () {
+      return this.activeFrame;
+    },
+    onNewMediaPopup: function (popup) {
+      this.activeFrame = popup.frame;
+    },
+    popup: function (props) {
+      // update props
+      if (props.mime_types) {
+        props.allowedTypes = props.mime_types;
+      }
+      if (props.id) {
+        props.attachment = props.id;
+      }
+
+      // new
+      var popup = acf.newMediaPopup(props);
+
+      // append
+      /*
+      if( props.selected ) {
+      	popup.selected = props.selected;
+      }
+      */
+
+      // return
+      return popup.frame;
+    }
+  });
+
+  /**
+   *  Select2
+   *
+   *  description
+   *
+   *  @date	11/6/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  _acf.select2 = {
+    init: function ($select, args, $field) {
+      // compatible args
+      if (args.allow_null) {
+        args.allowNull = args.allow_null;
+      }
+      if (args.ajax_action) {
+        args.ajaxAction = args.ajax_action;
+      }
+      if ($field) {
+        args.field = acf.getField($field);
+      }
+
+      // return
+      return acf.newSelect2($select, args);
+    },
+    destroy: function ($select) {
+      return acf.getInstance($select).destroy();
+    }
+  };
+
+  /**
+   *  postbox
+   *
+   *  description
+   *
+   *  @date	11/6/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  _acf.postbox = {
+    render: function (args) {
+      // compatible args
+      if (args.edit_url) {
+        args.editLink = args.edit_url;
+      }
+      if (args.edit_title) {
+        args.editTitle = args.edit_title;
+      }
+
+      // return
+      return acf.newPostbox(args);
+    }
+  };
+
+  /**
+   *  acf.screen
+   *
+   *  description
+   *
+   *  @date	11/6/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.newCompatibility(acf.screen, {
+    update: function () {
+      return this.set.apply(this, arguments);
+    },
+    fetch: acf.screen.check
+  });
+  _acf.ajax = acf.screen;
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-condition-types.js":
+/*!******************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-condition-types.js ***!
+  \******************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var __ = acf.__;
+  var parseString = function (val) {
+    return val ? '' + val : '';
+  };
+  var isEqualTo = function (v1, v2) {
+    return parseString(v1).toLowerCase() === parseString(v2).toLowerCase();
+  };
+  var isEqualToNumber = function (v1, v2) {
+    return parseFloat(v1) === parseFloat(v2);
+  };
+  var isGreaterThan = function (v1, v2) {
+    return parseFloat(v1) > parseFloat(v2);
+  };
+  var isLessThan = function (v1, v2) {
+    return parseFloat(v1) < parseFloat(v2);
+  };
+  var inArray = function (v1, array) {
+    // cast all values as string
+    array = array.map(function (v2) {
+      return parseString(v2);
+    });
+    return array.indexOf(v1) > -1;
+  };
+  var containsString = function (haystack, needle) {
+    return parseString(haystack).indexOf(parseString(needle)) > -1;
+  };
+  var matchesPattern = function (v1, pattern) {
+    var regexp = new RegExp(parseString(pattern), 'gi');
+    return parseString(v1).match(regexp);
+  };
+
+  /**
+   *  hasValue
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var HasValue = acf.Condition.extend({
+    type: 'hasValue',
+    operator: '!=empty',
+    label: __('Has any value'),
+    fieldTypes: ['text', 'textarea', 'number', 'range', 'email', 'url', 'password', 'image', 'file', 'wysiwyg', 'oembed', 'select', 'checkbox', 'radio', 'button_group', 'link', 'post_object', 'page_link', 'relationship', 'taxonomy', 'user', 'google_map', 'date_picker', 'date_time_picker', 'time_picker', 'color_picker'],
+    match: function (rule, field) {
+      let val = field.val();
+      if (val instanceof Array) {
+        val = val.length;
+      }
+      return val ? true : false;
+    },
+    choices: function (fieldObject) {
+      return '<input type="text" disabled="" />';
+    }
+  });
+  acf.registerConditionType(HasValue);
+
+  /**
+   *  hasValue
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var HasNoValue = HasValue.extend({
+    type: 'hasNoValue',
+    operator: '==empty',
+    label: __('Has no value'),
+    match: function (rule, field) {
+      return !HasValue.prototype.match.apply(this, arguments);
+    }
+  });
+  acf.registerConditionType(HasNoValue);
+
+  /**
+   *  EqualTo
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var EqualTo = acf.Condition.extend({
+    type: 'equalTo',
+    operator: '==',
+    label: __('Value is equal to'),
+    fieldTypes: ['text', 'textarea', 'number', 'range', 'email', 'url', 'password'],
+    match: function (rule, field) {
+      if (acf.isNumeric(rule.value)) {
+        return isEqualToNumber(rule.value, field.val());
+      } else {
+        return isEqualTo(rule.value, field.val());
+      }
+    },
+    choices: function (fieldObject) {
+      return '<input type="text" />';
+    }
+  });
+  acf.registerConditionType(EqualTo);
+
+  /**
+   *  NotEqualTo
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var NotEqualTo = EqualTo.extend({
+    type: 'notEqualTo',
+    operator: '!=',
+    label: __('Value is not equal to'),
+    match: function (rule, field) {
+      return !EqualTo.prototype.match.apply(this, arguments);
+    }
+  });
+  acf.registerConditionType(NotEqualTo);
+
+  /**
+   *  PatternMatch
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var PatternMatch = acf.Condition.extend({
+    type: 'patternMatch',
+    operator: '==pattern',
+    label: __('Value matches pattern'),
+    fieldTypes: ['text', 'textarea', 'email', 'url', 'password', 'wysiwyg'],
+    match: function (rule, field) {
+      return matchesPattern(field.val(), rule.value);
+    },
+    choices: function (fieldObject) {
+      return '<input type="text" placeholder="[a-z0-9]" />';
+    }
+  });
+  acf.registerConditionType(PatternMatch);
+
+  /**
+   *  Contains
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var Contains = acf.Condition.extend({
+    type: 'contains',
+    operator: '==contains',
+    label: __('Value contains'),
+    fieldTypes: ['text', 'textarea', 'number', 'email', 'url', 'password', 'wysiwyg', 'oembed', 'select'],
+    match: function (rule, field) {
+      return containsString(field.val(), rule.value);
+    },
+    choices: function (fieldObject) {
+      return '<input type="text" />';
+    }
+  });
+  acf.registerConditionType(Contains);
+
+  /**
+   *  TrueFalseEqualTo
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var TrueFalseEqualTo = EqualTo.extend({
+    type: 'trueFalseEqualTo',
+    choiceType: 'select',
+    fieldTypes: ['true_false'],
+    choices: function (field) {
+      return [{
+        id: 1,
+        text: __('Checked')
+      }];
+    }
+  });
+  acf.registerConditionType(TrueFalseEqualTo);
+
+  /**
+   *  TrueFalseNotEqualTo
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var TrueFalseNotEqualTo = NotEqualTo.extend({
+    type: 'trueFalseNotEqualTo',
+    choiceType: 'select',
+    fieldTypes: ['true_false'],
+    choices: function (field) {
+      return [{
+        id: 1,
+        text: __('Checked')
+      }];
+    }
+  });
+  acf.registerConditionType(TrueFalseNotEqualTo);
+
+  /**
+   *  SelectEqualTo
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var SelectEqualTo = acf.Condition.extend({
+    type: 'selectEqualTo',
+    operator: '==',
+    label: __('Value is equal to'),
+    fieldTypes: ['select', 'checkbox', 'radio', 'button_group'],
+    match: function (rule, field) {
+      var val = field.val();
+      if (val instanceof Array) {
+        return inArray(rule.value, val);
+      } else {
+        return isEqualTo(rule.value, val);
+      }
+    },
+    choices: function (fieldObject) {
+      // vars
+      var choices = [];
+      var lines = fieldObject.$setting('choices textarea').val().split('\n');
+
+      // allow null
+      if (fieldObject.$input('allow_null').prop('checked')) {
+        choices.push({
+          id: '',
+          text: __('Null')
+        });
+      }
+
+      // loop
+      lines.map(function (line) {
+        // split
+        line = line.split(':');
+
+        // default label to value
+        line[1] = line[1] || line[0];
+
+        // append
+        choices.push({
+          id: line[0].trim(),
+          text: line[1].trim()
+        });
+      });
+
+      // return
+      return choices;
+    }
+  });
+  acf.registerConditionType(SelectEqualTo);
+
+  /**
+   *  SelectNotEqualTo
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var SelectNotEqualTo = SelectEqualTo.extend({
+    type: 'selectNotEqualTo',
+    operator: '!=',
+    label: __('Value is not equal to'),
+    match: function (rule, field) {
+      return !SelectEqualTo.prototype.match.apply(this, arguments);
+    }
+  });
+  acf.registerConditionType(SelectNotEqualTo);
+
+  /**
+   *  GreaterThan
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var GreaterThan = acf.Condition.extend({
+    type: 'greaterThan',
+    operator: '>',
+    label: __('Value is greater than'),
+    fieldTypes: ['number', 'range'],
+    match: function (rule, field) {
+      var val = field.val();
+      if (val instanceof Array) {
+        val = val.length;
+      }
+      return isGreaterThan(val, rule.value);
+    },
+    choices: function (fieldObject) {
+      return '<input type="number" />';
+    }
+  });
+  acf.registerConditionType(GreaterThan);
+
+  /**
+   *  LessThan
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var LessThan = GreaterThan.extend({
+    type: 'lessThan',
+    operator: '<',
+    label: __('Value is less than'),
+    match: function (rule, field) {
+      var val = field.val();
+      if (val instanceof Array) {
+        val = val.length;
+      }
+      if (val === undefined || val === null || val === false) {
+        return true;
+      }
+      return isLessThan(val, rule.value);
+    },
+    choices: function (fieldObject) {
+      return '<input type="number" />';
+    }
+  });
+  acf.registerConditionType(LessThan);
+
+  /**
+   *  SelectedGreaterThan
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var SelectionGreaterThan = GreaterThan.extend({
+    type: 'selectionGreaterThan',
+    label: __('Selection is greater than'),
+    fieldTypes: ['checkbox', 'select', 'post_object', 'page_link', 'relationship', 'taxonomy', 'user']
+  });
+  acf.registerConditionType(SelectionGreaterThan);
+
+  /**
+   *  SelectedGreaterThan
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var SelectionLessThan = LessThan.extend({
+    type: 'selectionLessThan',
+    label: __('Selection is less than'),
+    fieldTypes: ['checkbox', 'select', 'post_object', 'page_link', 'relationship', 'taxonomy', 'user']
+  });
+  acf.registerConditionType(SelectionLessThan);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-condition.js":
+/*!************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-condition.js ***!
+  \************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  // vars
+  var storage = [];
+
+  /**
+   *  acf.Condition
+   *
+   *  description
+   *
+   *  @date	23/3/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.Condition = acf.Model.extend({
+    type: '',
+    // used for model name
+    operator: '==',
+    // rule operator
+    label: '',
+    // label shown when editing fields
+    choiceType: 'input',
+    // input, select
+    fieldTypes: [],
+    // auto connect this conditions with these field types
+
+    data: {
+      conditions: false,
+      // the parent instance
+      field: false,
+      // the field which we query against
+      rule: {} // the rule [field, operator, value]
+    },
+
+    events: {
+      change: 'change',
+      keyup: 'change',
+      enableField: 'change',
+      disableField: 'change'
+    },
+    setup: function (props) {
+      $.extend(this.data, props);
+    },
+    getEventTarget: function ($el, event) {
+      return $el || this.get('field').$el;
+    },
+    change: function (e, $el) {
+      this.get('conditions').change(e);
+    },
+    match: function (rule, field) {
+      return false;
+    },
+    calculate: function () {
+      return this.match(this.get('rule'), this.get('field'));
+    },
+    choices: function (field) {
+      return '<input type="text" />';
+    }
+  });
+
+  /**
+   *  acf.newCondition
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.newCondition = function (rule, conditions) {
+    // currently setting up conditions for fieldX, this field is the 'target'
+    var target = conditions.get('field');
+
+    // use the 'target' to find the 'trigger' field.
+    // - this field is used to setup the conditional logic events
+    var field = target.getField(rule.field);
+
+    // bail early if no target or no field (possible if field doesn't exist due to HTML error)
+    if (!target || !field) {
+      return false;
+    }
+
+    // vars
+    var args = {
+      rule: rule,
+      target: target,
+      conditions: conditions,
+      field: field
+    };
+
+    // vars
+    var fieldType = field.get('type');
+    var operator = rule.operator;
+
+    // get avaibale conditions
+    var conditionTypes = acf.getConditionTypes({
+      fieldType: fieldType,
+      operator: operator
+    });
+
+    // instantiate
+    var model = conditionTypes[0] || acf.Condition;
+
+    // instantiate
+    var condition = new model(args);
+
+    // return
+    return condition;
+  };
+
+  /**
+   *  mid
+   *
+   *  Calculates the model ID for a field type
+   *
+   *  @date	15/12/17
+   *  @since	5.6.5
+   *
+   *  @param	string type
+   *  @return	string
+   */
+
+  var modelId = function (type) {
+    return acf.strPascalCase(type || '') + 'Condition';
+  };
+
+  /**
+   *  acf.registerConditionType
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.registerConditionType = function (model) {
+    // vars
+    var proto = model.prototype;
+    var type = proto.type;
+    var mid = modelId(type);
+
+    // store model
+    acf.models[mid] = model;
+
+    // store reference
+    storage.push(type);
+  };
+
+  /**
+   *  acf.getConditionType
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.getConditionType = function (type) {
+    var mid = modelId(type);
+    return acf.models[mid] || false;
+  };
+
+  /**
+   *  acf.registerConditionForFieldType
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.registerConditionForFieldType = function (conditionType, fieldType) {
+    // get model
+    var model = acf.getConditionType(conditionType);
+
+    // append
+    if (model) {
+      model.prototype.fieldTypes.push(fieldType);
+    }
+  };
+
+  /**
+   *  acf.getConditionTypes
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.getConditionTypes = function (args) {
+    // defaults
+    args = acf.parseArgs(args, {
+      fieldType: '',
+      operator: ''
+    });
+
+    // clonse available types
+    var types = [];
+
+    // loop
+    storage.map(function (type) {
+      // vars
+      var model = acf.getConditionType(type);
+      var ProtoFieldTypes = model.prototype.fieldTypes;
+      var ProtoOperator = model.prototype.operator;
+
+      // check fieldType
+      if (args.fieldType && ProtoFieldTypes.indexOf(args.fieldType) === -1) {
+        return;
+      }
+
+      // check operator
+      if (args.operator && ProtoOperator !== args.operator) {
+        return;
+      }
+
+      // append
+      types.push(model);
+    });
+
+    // return
+    return types;
+  };
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-conditions.js":
+/*!*************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-conditions.js ***!
+  \*************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  // vars
+  var CONTEXT = 'conditional_logic';
+
+  /**
+   *  conditionsManager
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var conditionsManager = new acf.Model({
+    id: 'conditionsManager',
+    priority: 20,
+    // run actions later
+
+    actions: {
+      new_field: 'onNewField'
+    },
+    onNewField: function (field) {
+      if (field.has('conditions')) {
+        field.getConditions().render();
+      }
+    }
+  });
+
+  /**
+   *  acf.Field.prototype.getField
+   *
+   *  Finds a field that is related to another field
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var getSiblingField = function (field, key) {
+    // find sibling (very fast)
+    var fields = acf.getFields({
+      key: key,
+      sibling: field.$el,
+      suppressFilters: true
+    });
+
+    // find sibling-children (fast)
+    // needed for group fields, accordions, etc
+    if (!fields.length) {
+      fields = acf.getFields({
+        key: key,
+        parent: field.$el.parent(),
+        suppressFilters: true
+      });
+    }
+
+    // Check for fields on other settings tabs (probably less fast).
+    if (!fields.length && $('.acf-field-settings').length) {
+      fields = acf.getFields({
+        key: key,
+        parent: field.$el.parents('.acf-field-settings:first'),
+        suppressFilters: true
+      });
+    }
+
+    // return
+    if (fields.length) {
+      return fields[0];
+    }
+    return false;
+  };
+  acf.Field.prototype.getField = function (key) {
+    // get sibling field
+    var field = getSiblingField(this, key);
+
+    // return early
+    if (field) {
+      return field;
+    }
+
+    // move up through each parent and try again
+    var parents = this.parents();
+    for (var i = 0; i < parents.length; i++) {
+      // get sibling field
+      field = getSiblingField(parents[i], key);
+
+      // return early
+      if (field) {
+        return field;
+      }
+    }
+
+    // return
+    return false;
+  };
+
+  /**
+   *  acf.Field.prototype.getConditions
+   *
+   *  Returns the field's conditions instance
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.Field.prototype.getConditions = function () {
+    // instantiate
+    if (!this.conditions) {
+      this.conditions = new Conditions(this);
+    }
+
+    // return
+    return this.conditions;
+  };
+
+  /**
+   *  Conditions
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+  var timeout = false;
+  var Conditions = acf.Model.extend({
+    id: 'Conditions',
+    data: {
+      field: false,
+      // The field with "data-conditions" (target).
+      timeStamp: false,
+      // Reference used during "change" event.
+      groups: [] // The groups of condition instances.
+    },
+
+    setup: function (field) {
+      // data
+      this.data.field = field;
+
+      // vars
+      var conditions = field.get('conditions');
+
+      // detect groups
+      if (conditions instanceof Array) {
+        // detect groups
+        if (conditions[0] instanceof Array) {
+          // loop
+          conditions.map(function (rules, i) {
+            this.addRules(rules, i);
+          }, this);
+
+          // detect rules
+        } else {
+          this.addRules(conditions);
+        }
+
+        // detect rule
+      } else {
+        this.addRule(conditions);
+      }
+    },
+    change: function (e) {
+      // this function may be triggered multiple times per event due to multiple condition classes
+      // compare timestamp to allow only 1 trigger per event
+      if (this.get('timeStamp') === e.timeStamp) {
+        return false;
+      } else {
+        this.set('timeStamp', e.timeStamp, true);
+      }
+
+      // render condition and store result
+      var changed = this.render();
+    },
+    render: function () {
+      return this.calculate() ? this.show() : this.hide();
+    },
+    show: function () {
+      return this.get('field').showEnable(this.cid, CONTEXT);
+    },
+    hide: function () {
+      return this.get('field').hideDisable(this.cid, CONTEXT);
+    },
+    calculate: function () {
+      // vars
+      var pass = false;
+
+      // loop
+      this.getGroups().map(function (group) {
+        // igrnore this group if another group passed
+        if (pass) return;
+
+        // find passed
+        var passed = group.filter(function (condition) {
+          return condition.calculate();
+        });
+
+        // if all conditions passed, update the global var
+        if (passed.length == group.length) {
+          pass = true;
+        }
+      });
+      return pass;
+    },
+    hasGroups: function () {
+      return this.data.groups != null;
+    },
+    getGroups: function () {
+      return this.data.groups;
+    },
+    addGroup: function () {
+      var group = [];
+      this.data.groups.push(group);
+      return group;
+    },
+    hasGroup: function (i) {
+      return this.data.groups[i] != null;
+    },
+    getGroup: function (i) {
+      return this.data.groups[i];
+    },
+    removeGroup: function (i) {
+      this.data.groups[i].delete;
+      return this;
+    },
+    addRules: function (rules, group) {
+      rules.map(function (rule) {
+        this.addRule(rule, group);
+      }, this);
+    },
+    addRule: function (rule, group) {
+      // defaults
+      group = group || 0;
+
+      // vars
+      var groupArray;
+
+      // get group
+      if (this.hasGroup(group)) {
+        groupArray = this.getGroup(group);
+      } else {
+        groupArray = this.addGroup();
+      }
+
+      // instantiate
+      var condition = acf.newCondition(rule, this);
+
+      // bail early if condition failed (field did not exist)
+      if (!condition) {
+        return false;
+      }
+
+      // add rule
+      groupArray.push(condition);
+    },
+    hasRule: function () {},
+    getRule: function (rule, group) {
+      // defaults
+      rule = rule || 0;
+      group = group || 0;
+      return this.data.groups[group][rule];
+    },
+    removeRule: function () {}
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-accordion.js":
+/*!******************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-accordion.js ***!
+  \******************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var i = 0;
+  var Field = acf.Field.extend({
+    type: 'accordion',
+    wait: '',
+    $control: function () {
+      return this.$('.acf-fields:first');
+    },
+    initialize: function () {
+      // Bail early if this is a duplicate of an existing initialized accordion.
+      if (this.$el.hasClass('acf-accordion')) {
+        return;
+      }
+
+      // bail early if is cell
+      if (this.$el.is('td')) return;
+
+      // enpoint
+      if (this.get('endpoint')) {
+        return this.remove();
+      }
+
+      // vars
+      var $field = this.$el;
+      var $label = this.$labelWrap();
+      var $input = this.$inputWrap();
+      var $wrap = this.$control();
+      var $instructions = $input.children('.description');
+
+      // force description into label
+      if ($instructions.length) {
+        $label.append($instructions);
+      }
+
+      // table
+      if (this.$el.is('tr')) {
+        // vars
+        var $table = this.$el.closest('table');
+        var $newLabel = $('<div class="acf-accordion-title"/>');
+        var $newInput = $('<div class="acf-accordion-content"/>');
+        var $newTable = $('<table class="' + $table.attr('class') + '"/>');
+        var $newWrap = $('<tbody/>');
+
+        // dom
+        $newLabel.append($label.html());
+        $newTable.append($newWrap);
+        $newInput.append($newTable);
+        $input.append($newLabel);
+        $input.append($newInput);
+
+        // modify
+        $label.remove();
+        $wrap.remove();
+        $input.attr('colspan', 2);
+
+        // update vars
+        $label = $newLabel;
+        $input = $newInput;
+        $wrap = $newWrap;
+      }
+
+      // add classes
+      $field.addClass('acf-accordion');
+      $label.addClass('acf-accordion-title');
+      $input.addClass('acf-accordion-content');
+
+      // index
+      i++;
+
+      // multi-expand
+      if (this.get('multi_expand')) {
+        $field.attr('multi-expand', 1);
+      }
+
+      // open
+      var order = acf.getPreference('this.accordions') || [];
+      if (order[i - 1] !== undefined) {
+        this.set('open', order[i - 1]);
+      }
+      if (this.get('open')) {
+        $field.addClass('-open');
+        $input.css('display', 'block'); // needed for accordion to close smoothly
+      }
+
+      // add icon
+      $label.prepend(accordionManager.iconHtml({
+        open: this.get('open')
+      }));
+
+      // classes
+      // - remove 'inside' which is a #poststuff WP class
+      var $parent = $field.parent();
+      $wrap.addClass($parent.hasClass('-left') ? '-left' : '');
+      $wrap.addClass($parent.hasClass('-clear') ? '-clear' : '');
+
+      // append
+      $wrap.append($field.nextUntil('.acf-field-accordion', '.acf-field'));
+
+      // clean up
+      $wrap.removeAttr('data-open data-multi_expand data-endpoint');
+    }
+  });
+  acf.registerFieldType(Field);
+
+  /**
+   *  accordionManager
+   *
+   *  Events manager for the acf accordion
+   *
+   *  @date	14/2/18
+   *  @since	5.6.9
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var accordionManager = new acf.Model({
+    actions: {
+      unload: 'onUnload'
+    },
+    events: {
+      'click .acf-accordion-title': 'onClick',
+      'invalidField .acf-accordion': 'onInvalidField'
+    },
+    isOpen: function ($el) {
+      return $el.hasClass('-open');
+    },
+    toggle: function ($el) {
+      if (this.isOpen($el)) {
+        this.close($el);
+      } else {
+        this.open($el);
+      }
+    },
+    iconHtml: function (props) {
+      // Use SVG inside Gutenberg editor.
+      if (acf.isGutenberg()) {
+        if (props.open) {
+          return '<svg width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" class="acf-accordion-icon components-panel__arrow" aria-hidden="true" focusable="false"><path d="M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z"></path></svg>';
+        } else {
+          return '<svg width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" class=" acf-accordion-icon components-panel__arrow" aria-hidden="true" focusable="false"><path d="M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"></path></svg>';
+        }
+      } else {
+        if (props.open) {
+          return '<i class="acf-accordion-icon dashicons dashicons-arrow-down"></i>';
+        } else {
+          return '<i class="acf-accordion-icon dashicons dashicons-arrow-right"></i>';
+        }
+      }
+    },
+    open: function ($el) {
+      var duration = acf.isGutenberg() ? 0 : 300;
+
+      // open
+      $el.find('.acf-accordion-content:first').slideDown(duration).css('display', 'block');
+      $el.find('.acf-accordion-icon:first').replaceWith(this.iconHtml({
+        open: true
+      }));
+      $el.addClass('-open');
+
+      // action
+      acf.doAction('show', $el);
+
+      // close siblings
+      if (!$el.attr('multi-expand')) {
+        $el.siblings('.acf-accordion.-open').each(function () {
+          accordionManager.close($(this));
+        });
+      }
+    },
+    close: function ($el) {
+      var duration = acf.isGutenberg() ? 0 : 300;
+
+      // close
+      $el.find('.acf-accordion-content:first').slideUp(duration);
+      $el.find('.acf-accordion-icon:first').replaceWith(this.iconHtml({
+        open: false
+      }));
+      $el.removeClass('-open');
+
+      // action
+      acf.doAction('hide', $el);
+    },
+    onClick: function (e, $el) {
+      // prevent Defailt
+      e.preventDefault();
+
+      // open close
+      this.toggle($el.parent());
+    },
+    onInvalidField: function (e, $el) {
+      // bail early if already focused
+      if (this.busy) {
+        return;
+      }
+
+      // disable functionality for 1sec (allow next validation to work)
+      this.busy = true;
+      this.setTimeout(function () {
+        this.busy = false;
+      }, 1000);
+
+      // open accordion
+      this.open($el);
+    },
+    onUnload: function (e) {
+      // vars
+      var order = [];
+
+      // loop
+      $('.acf-accordion').each(function () {
+        var open = $(this).hasClass('-open') ? 1 : 0;
+        order.push(open);
+      });
+
+      // set
+      if (order.length) {
+        acf.setPreference('this.accordions', order);
+      }
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-button-group.js":
+/*!*********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-button-group.js ***!
+  \*********************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'button_group',
+    events: {
+      'click input[type="radio"]': 'onClick'
+    },
+    $control: function () {
+      return this.$('.acf-button-group');
+    },
+    $input: function () {
+      return this.$('input:checked');
+    },
+    setValue: function (val) {
+      this.$('input[value="' + val + '"]').prop('checked', true).trigger('change');
+    },
+    onClick: function (e, $el) {
+      // vars
+      var $label = $el.parent('label');
+      var selected = $label.hasClass('selected');
+
+      // remove previous selected
+      this.$('.selected').removeClass('selected');
+
+      // add active class
+      $label.addClass('selected');
+
+      // allow null
+      if (this.get('allow_null') && selected) {
+        $label.removeClass('selected');
+        $el.prop('checked', false).trigger('change');
+      }
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-checkbox.js":
+/*!*****************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-checkbox.js ***!
+  \*****************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'checkbox',
+    events: {
+      'change input': 'onChange',
+      'click .acf-add-checkbox': 'onClickAdd',
+      'click .acf-checkbox-toggle': 'onClickToggle',
+      'click .acf-checkbox-custom': 'onClickCustom'
+    },
+    $control: function () {
+      return this.$('.acf-checkbox-list');
+    },
+    $toggle: function () {
+      return this.$('.acf-checkbox-toggle');
+    },
+    $input: function () {
+      return this.$('input[type="hidden"]');
+    },
+    $inputs: function () {
+      return this.$('input[type="checkbox"]').not('.acf-checkbox-toggle');
+    },
+    getValue: function () {
+      var val = [];
+      this.$(':checked').each(function () {
+        val.push($(this).val());
+      });
+      return val.length ? val : false;
+    },
+    onChange: function (e, $el) {
+      // Vars.
+      var checked = $el.prop('checked');
+      var $label = $el.parent('label');
+      var $toggle = this.$toggle();
+
+      // Add or remove "selected" class.
+      if (checked) {
+        $label.addClass('selected');
+      } else {
+        $label.removeClass('selected');
+      }
+
+      // Update toggle state if all inputs are checked.
+      if ($toggle.length) {
+        var $inputs = this.$inputs();
+
+        // all checked
+        if ($inputs.not(':checked').length == 0) {
+          $toggle.prop('checked', true);
+        } else {
+          $toggle.prop('checked', false);
+        }
+      }
+    },
+    onClickAdd: function (e, $el) {
+      var html = '<li><input class="acf-checkbox-custom" type="checkbox" checked="checked" /><input type="text" name="' + this.getInputName() + '[]" /></li>';
+      $el.parent('li').before(html);
+    },
+    onClickToggle: function (e, $el) {
+      // Vars.
+      var checked = $el.prop('checked');
+      var $inputs = this.$('input[type="checkbox"]');
+      var $labels = this.$('label');
+
+      // Update "checked" state.
+      $inputs.prop('checked', checked);
+
+      // Add or remove "selected" class.
+      if (checked) {
+        $labels.addClass('selected');
+      } else {
+        $labels.removeClass('selected');
+      }
+    },
+    onClickCustom: function (e, $el) {
+      var checked = $el.prop('checked');
+      var $text = $el.next('input[type="text"]');
+
+      // checked
+      if (checked) {
+        $text.prop('disabled', false);
+
+        // not checked
+      } else {
+        $text.prop('disabled', true);
+
+        // remove
+        if ($text.val() == '') {
+          $el.parent('li').remove();
+        }
+      }
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-color-picker.js":
+/*!*********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-color-picker.js ***!
+  \*********************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'color_picker',
+    wait: 'load',
+    events: {
+      duplicateField: 'onDuplicate'
+    },
+    $control: function () {
+      return this.$('.acf-color-picker');
+    },
+    $input: function () {
+      return this.$('input[type="hidden"]');
+    },
+    $inputText: function () {
+      return this.$('input[type="text"]');
+    },
+    setValue: function (val) {
+      // update input (with change)
+      acf.val(this.$input(), val);
+
+      // update iris
+      this.$inputText().iris('color', val);
+    },
+    initialize: function () {
+      // vars
+      var $input = this.$input();
+      var $inputText = this.$inputText();
+
+      // event
+      var onChange = function (e) {
+        // timeout is required to ensure the $input val is correct
+        setTimeout(function () {
+          acf.val($input, $inputText.val());
+        }, 1);
+      };
+
+      // args
+      var args = {
+        defaultColor: false,
+        palettes: true,
+        hide: true,
+        change: onChange,
+        clear: onChange
+      };
+
+      // filter
+      var args = acf.applyFilters('color_picker_args', args, this);
+
+      // initialize
+      $inputText.wpColorPicker(args);
+    },
+    onDuplicate: function (e, $el, $duplicate) {
+      // The wpColorPicker library does not provide a destroy method.
+      // Manually reset DOM by replacing elements back to their original state.
+      $colorPicker = $duplicate.find('.wp-picker-container');
+      $inputText = $duplicate.find('input[type="text"]');
+      $colorPicker.replaceWith($inputText);
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-picker.js":
+/*!********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-picker.js ***!
+  \********************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'date_picker',
+    events: {
+      'blur input[type="text"]': 'onBlur',
+      duplicateField: 'onDuplicate'
+    },
+    $control: function () {
+      return this.$('.acf-date-picker');
+    },
+    $input: function () {
+      return this.$('input[type="hidden"]');
+    },
+    $inputText: function () {
+      return this.$('input[type="text"]');
+    },
+    initialize: function () {
+      // save_format: compatibility with ACF < 5.0.0
+      if (this.has('save_format')) {
+        return this.initializeCompatibility();
+      }
+
+      // vars
+      var $input = this.$input();
+      var $inputText = this.$inputText();
+
+      // args
+      var args = {
+        dateFormat: this.get('date_format'),
+        altField: $input,
+        altFormat: 'yymmdd',
+        changeYear: true,
+        yearRange: '-100:+100',
+        changeMonth: true,
+        showButtonPanel: true,
+        firstDay: this.get('first_day')
+      };
+
+      // filter
+      args = acf.applyFilters('date_picker_args', args, this);
+
+      // add date picker
+      acf.newDatePicker($inputText, args);
+
+      // action
+      acf.doAction('date_picker_init', $inputText, args, this);
+    },
+    initializeCompatibility: function () {
+      // vars
+      var $input = this.$input();
+      var $inputText = this.$inputText();
+
+      // get and set value from alt field
+      $inputText.val($input.val());
+
+      // args
+      var args = {
+        dateFormat: this.get('date_format'),
+        altField: $input,
+        altFormat: this.get('save_format'),
+        changeYear: true,
+        yearRange: '-100:+100',
+        changeMonth: true,
+        showButtonPanel: true,
+        firstDay: this.get('first_day')
+      };
+
+      // filter for 3rd party customization
+      args = acf.applyFilters('date_picker_args', args, this);
+
+      // backup
+      var dateFormat = args.dateFormat;
+
+      // change args.dateFormat
+      args.dateFormat = this.get('save_format');
+
+      // add date picker
+      acf.newDatePicker($inputText, args);
+
+      // now change the format back to how it should be.
+      $inputText.datepicker('option', 'dateFormat', dateFormat);
+
+      // action for 3rd party customization
+      acf.doAction('date_picker_init', $inputText, args, this);
+    },
+    onBlur: function () {
+      if (!this.$inputText().val()) {
+        acf.val(this.$input(), '');
+      }
+    },
+    onDuplicate: function (e, $el, $duplicate) {
+      $duplicate.find('input[type="text"]').removeClass('hasDatepicker').removeAttr('id');
+    }
+  });
+  acf.registerFieldType(Field);
+
+  // manager
+  var datePickerManager = new acf.Model({
+    priority: 5,
+    wait: 'ready',
+    initialize: function () {
+      // vars
+      var locale = acf.get('locale');
+      var rtl = acf.get('rtl');
+      var l10n = acf.get('datePickerL10n');
+
+      // bail early if no l10n
+      if (!l10n) {
+        return false;
+      }
+
+      // bail early if no datepicker library
+      if (typeof $.datepicker === 'undefined') {
+        return false;
+      }
+
+      // rtl
+      l10n.isRTL = rtl;
+
+      // append
+      $.datepicker.regional[locale] = l10n;
+      $.datepicker.setDefaults(l10n);
+    }
+  });
+
+  // add
+  acf.newDatePicker = function ($input, args) {
+    // bail early if no datepicker library
+    if (typeof $.datepicker === 'undefined') {
+      return false;
+    }
+
+    // defaults
+    args = args || {};
+
+    // initialize
+    $input.datepicker(args);
+
+    // wrap the datepicker (only if it hasn't already been wrapped)
+    if ($('body > #ui-datepicker-div').exists()) {
+      $('body > #ui-datepicker-div').wrap('<div class="acf-ui-datepicker" />');
+    }
+  };
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-time-picker.js":
+/*!*************************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-time-picker.js ***!
+  \*************************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.models.DatePickerField.extend({
+    type: 'date_time_picker',
+    $control: function () {
+      return this.$('.acf-date-time-picker');
+    },
+    initialize: function () {
+      // vars
+      var $input = this.$input();
+      var $inputText = this.$inputText();
+
+      // args
+      var args = {
+        dateFormat: this.get('date_format'),
+        timeFormat: this.get('time_format'),
+        altField: $input,
+        altFieldTimeOnly: false,
+        altFormat: 'yy-mm-dd',
+        altTimeFormat: 'HH:mm:ss',
+        changeYear: true,
+        yearRange: '-100:+100',
+        changeMonth: true,
+        showButtonPanel: true,
+        firstDay: this.get('first_day'),
+        controlType: 'select',
+        oneLine: true
+      };
+
+      // filter
+      args = acf.applyFilters('date_time_picker_args', args, this);
+
+      // add date time picker
+      acf.newDateTimePicker($inputText, args);
+
+      // action
+      acf.doAction('date_time_picker_init', $inputText, args, this);
+    }
+  });
+  acf.registerFieldType(Field);
+
+  // manager
+  var dateTimePickerManager = new acf.Model({
+    priority: 5,
+    wait: 'ready',
+    initialize: function () {
+      // vars
+      var locale = acf.get('locale');
+      var rtl = acf.get('rtl');
+      var l10n = acf.get('dateTimePickerL10n');
+
+      // bail early if no l10n
+      if (!l10n) {
+        return false;
+      }
+
+      // bail early if no datepicker library
+      if (typeof $.timepicker === 'undefined') {
+        return false;
+      }
+
+      // rtl
+      l10n.isRTL = rtl;
+
+      // append
+      $.timepicker.regional[locale] = l10n;
+      $.timepicker.setDefaults(l10n);
+    }
+  });
+
+  // add
+  acf.newDateTimePicker = function ($input, args) {
+    // bail early if no datepicker library
+    if (typeof $.timepicker === 'undefined') {
+      return false;
+    }
+
+    // defaults
+    args = args || {};
+
+    // initialize
+    $input.datetimepicker(args);
+
+    // wrap the datepicker (only if it hasn't already been wrapped)
+    if ($('body > #ui-datepicker-div').exists()) {
+      $('body > #ui-datepicker-div').wrap('<div class="acf-ui-datepicker" />');
+    }
+  };
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-file.js":
+/*!*************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-file.js ***!
+  \*************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.models.ImageField.extend({
+    type: 'file',
+    $control: function () {
+      return this.$('.acf-file-uploader');
+    },
+    $input: function () {
+      return this.$('input[type="hidden"]:first');
+    },
+    validateAttachment: function (attachment) {
+      // defaults
+      attachment = attachment || {};
+
+      // WP attachment
+      if (attachment.id !== undefined) {
+        attachment = attachment.attributes;
+      }
+
+      // args
+      attachment = acf.parseArgs(attachment, {
+        url: '',
+        alt: '',
+        title: '',
+        filename: '',
+        filesizeHumanReadable: '',
+        icon: '/wp-includes/images/media/default.png'
+      });
+
+      // return
+      return attachment;
+    },
+    render: function (attachment) {
+      // vars
+      attachment = this.validateAttachment(attachment);
+
+      // update image
+      this.$('img').attr({
+        src: attachment.icon,
+        alt: attachment.alt,
+        title: attachment.title
+      });
+
+      // update elements
+      this.$('[data-name="title"]').text(attachment.title);
+      this.$('[data-name="filename"]').text(attachment.filename).attr('href', attachment.url);
+      this.$('[data-name="filesize"]').text(attachment.filesizeHumanReadable);
+
+      // vars
+      var val = attachment.id || '';
+
+      // update val
+      acf.val(this.$input(), val);
+
+      // update class
+      if (val) {
+        this.$control().addClass('has-value');
+      } else {
+        this.$control().removeClass('has-value');
+      }
+    },
+    selectAttachment: function () {
+      // vars
+      var parent = this.parent();
+      var multiple = parent && parent.get('type') === 'repeater';
+
+      // new frame
+      var frame = acf.newMediaPopup({
+        mode: 'select',
+        title: acf.__('Select File'),
+        field: this.get('key'),
+        multiple: multiple,
+        library: this.get('library'),
+        allowedTypes: this.get('mime_types'),
+        select: $.proxy(function (attachment, i) {
+          if (i > 0) {
+            this.append(attachment, parent);
+          } else {
+            this.render(attachment);
+          }
+        }, this)
+      });
+    },
+    editAttachment: function () {
+      // vars
+      var val = this.val();
+
+      // bail early if no val
+      if (!val) {
+        return false;
+      }
+
+      // popup
+      var frame = acf.newMediaPopup({
+        mode: 'edit',
+        title: acf.__('Edit File'),
+        button: acf.__('Update File'),
+        attachment: val,
+        field: this.get('key'),
+        select: $.proxy(function (attachment, i) {
+          this.render(attachment);
+        }, this)
+      });
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-google-map.js":
+/*!*******************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-google-map.js ***!
+  \*******************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'google_map',
+    map: false,
+    wait: 'load',
+    events: {
+      'click a[data-name="clear"]': 'onClickClear',
+      'click a[data-name="locate"]': 'onClickLocate',
+      'click a[data-name="search"]': 'onClickSearch',
+      'keydown .search': 'onKeydownSearch',
+      'keyup .search': 'onKeyupSearch',
+      'focus .search': 'onFocusSearch',
+      'blur .search': 'onBlurSearch',
+      showField: 'onShow'
+    },
+    $control: function () {
+      return this.$('.acf-google-map');
+    },
+    $search: function () {
+      return this.$('.search');
+    },
+    $canvas: function () {
+      return this.$('.canvas');
+    },
+    setState: function (state) {
+      // Remove previous state classes.
+      this.$control().removeClass('-value -loading -searching');
+
+      // Determine auto state based of current value.
+      if (state === 'default') {
+        state = this.val() ? 'value' : '';
+      }
+
+      // Update state class.
+      if (state) {
+        this.$control().addClass('-' + state);
+      }
+    },
+    getValue: function () {
+      var val = this.$input().val();
+      if (val) {
+        return JSON.parse(val);
+      } else {
+        return false;
+      }
+    },
+    setValue: function (val, silent) {
+      // Convert input value.
+      var valAttr = '';
+      if (val) {
+        valAttr = JSON.stringify(val);
+      }
+
+      // Update input (with change).
+      acf.val(this.$input(), valAttr);
+
+      // Bail early if silent update.
+      if (silent) {
+        return;
+      }
+
+      // Render.
+      this.renderVal(val);
+
+      /**
+       * Fires immediately after the value has changed.
+       *
+       * @date	12/02/2014
+       * @since	5.0.0
+       *
+       * @param	object|string val The new value.
+       * @param	object map The Google Map isntance.
+       * @param	object field The field instance.
+       */
+      acf.doAction('google_map_change', val, this.map, this);
+    },
+    renderVal: function (val) {
+      // Value.
+      if (val) {
+        this.setState('value');
+        this.$search().val(val.address);
+        this.setPosition(val.lat, val.lng);
+
+        // No value.
+      } else {
+        this.setState('');
+        this.$search().val('');
+        this.map.marker.setVisible(false);
+      }
+    },
+    newLatLng: function (lat, lng) {
+      return new google.maps.LatLng(parseFloat(lat), parseFloat(lng));
+    },
+    setPosition: function (lat, lng) {
+      // Update marker position.
+      this.map.marker.setPosition({
+        lat: parseFloat(lat),
+        lng: parseFloat(lng)
+      });
+
+      // Show marker.
+      this.map.marker.setVisible(true);
+
+      // Center map.
+      this.center();
+    },
+    center: function () {
+      // Find marker position.
+      var position = this.map.marker.getPosition();
+      if (position) {
+        var lat = position.lat();
+        var lng = position.lng();
+
+        // Or find default settings.
+      } else {
+        var lat = this.get('lat');
+        var lng = this.get('lng');
+      }
+
+      // Center map.
+      this.map.setCenter({
+        lat: parseFloat(lat),
+        lng: parseFloat(lng)
+      });
+    },
+    initialize: function () {
+      // Ensure Google API is loaded and then initialize map.
+      withAPI(this.initializeMap.bind(this));
+    },
+    initializeMap: function () {
+      // Get value ignoring conditional logic status.
+      var val = this.getValue();
+
+      // Construct default args.
+      var args = acf.parseArgs(val, {
+        zoom: this.get('zoom'),
+        lat: this.get('lat'),
+        lng: this.get('lng')
+      });
+
+      // Create Map.
+      var mapArgs = {
+        scrollwheel: false,
+        zoom: parseInt(args.zoom),
+        center: {
+          lat: parseFloat(args.lat),
+          lng: parseFloat(args.lng)
+        },
+        mapTypeId: google.maps.MapTypeId.ROADMAP,
+        marker: {
+          draggable: true,
+          raiseOnDrag: true
+        },
+        autocomplete: {}
+      };
+      mapArgs = acf.applyFilters('google_map_args', mapArgs, this);
+      var map = new google.maps.Map(this.$canvas()[0], mapArgs);
+
+      // Create Marker.
+      var markerArgs = acf.parseArgs(mapArgs.marker, {
+        draggable: true,
+        raiseOnDrag: true,
+        map: map
+      });
+      markerArgs = acf.applyFilters('google_map_marker_args', markerArgs, this);
+      var marker = new google.maps.Marker(markerArgs);
+
+      // Maybe Create Autocomplete.
+      var autocomplete = false;
+      if (acf.isset(google, 'maps', 'places', 'Autocomplete')) {
+        var autocompleteArgs = mapArgs.autocomplete || {};
+        autocompleteArgs = acf.applyFilters('google_map_autocomplete_args', autocompleteArgs, this);
+        autocomplete = new google.maps.places.Autocomplete(this.$search()[0], autocompleteArgs);
+        autocomplete.bindTo('bounds', map);
+      }
+
+      // Add map events.
+      this.addMapEvents(this, map, marker, autocomplete);
+
+      // Append references.
+      map.acf = this;
+      map.marker = marker;
+      map.autocomplete = autocomplete;
+      this.map = map;
+
+      // Set position.
+      if (val) {
+        this.setPosition(val.lat, val.lng);
+      }
+
+      /**
+       * Fires immediately after the Google Map has been initialized.
+       *
+       * @date	12/02/2014
+       * @since	5.0.0
+       *
+       * @param	object map The Google Map isntance.
+       * @param	object marker The Google Map marker isntance.
+       * @param	object field The field instance.
+       */
+      acf.doAction('google_map_init', map, marker, this);
+    },
+    addMapEvents: function (field, map, marker, autocomplete) {
+      // Click map.
+      google.maps.event.addListener(map, 'click', function (e) {
+        var lat = e.latLng.lat();
+        var lng = e.latLng.lng();
+        field.searchPosition(lat, lng);
+      });
+
+      // Drag marker.
+      google.maps.event.addListener(marker, 'dragend', function () {
+        var lat = this.getPosition().lat();
+        var lng = this.getPosition().lng();
+        field.searchPosition(lat, lng);
+      });
+
+      // Autocomplete search.
+      if (autocomplete) {
+        google.maps.event.addListener(autocomplete, 'place_changed', function () {
+          var place = this.getPlace();
+          field.searchPlace(place);
+        });
+      }
+
+      // Detect zoom change.
+      google.maps.event.addListener(map, 'zoom_changed', function () {
+        var val = field.val();
+        if (val) {
+          val.zoom = map.getZoom();
+          field.setValue(val, true);
+        }
+      });
+    },
+    searchPosition: function (lat, lng) {
+      //console.log('searchPosition', lat, lng );
+
+      // Start Loading.
+      this.setState('loading');
+
+      // Query Geocoder.
+      var latLng = {
+        lat: lat,
+        lng: lng
+      };
+      geocoder.geocode({
+        location: latLng
+      }, function (results, status) {
+        //console.log('searchPosition', arguments );
+
+        // End Loading.
+        this.setState('');
+
+        // Status failure.
+        if (status !== 'OK') {
+          this.showNotice({
+            text: acf.__('Location not found: %s').replace('%s', status),
+            type: 'warning'
+          });
+
+          // Success.
+        } else {
+          var val = this.parseResult(results[0]);
+
+          // Override lat/lng to match user defined marker location.
+          // Avoids issue where marker "snaps" to nearest result.
+          val.lat = lat;
+          val.lng = lng;
+          this.val(val);
+        }
+      }.bind(this));
+    },
+    searchPlace: function (place) {
+      //console.log('searchPlace', place );
+
+      // Bail early if no place.
+      if (!place) {
+        return;
+      }
+
+      // Selecting from the autocomplete dropdown will return a rich PlaceResult object.
+      // Be sure to over-write the "formatted_address" value with the one displayed to the user for best UX.
+      if (place.geometry) {
+        place.formatted_address = this.$search().val();
+        var val = this.parseResult(place);
+        this.val(val);
+
+        // Searching a custom address will return an empty PlaceResult object.
+      } else if (place.name) {
+        this.searchAddress(place.name);
+      }
+    },
+    searchAddress: function (address) {
+      //console.log('searchAddress', address );
+
+      // Bail early if no address.
+      if (!address) {
+        return;
+      }
+
+      // Allow "lat,lng" search.
+      var latLng = address.split(',');
+      if (latLng.length == 2) {
+        var lat = parseFloat(latLng[0]);
+        var lng = parseFloat(latLng[1]);
+        if (lat && lng) {
+          return this.searchPosition(lat, lng);
+        }
+      }
+
+      // Start Loading.
+      this.setState('loading');
+
+      // Query Geocoder.
+      geocoder.geocode({
+        address: address
+      }, function (results, status) {
+        //console.log('searchPosition', arguments );
+
+        // End Loading.
+        this.setState('');
+
+        // Status failure.
+        if (status !== 'OK') {
+          this.showNotice({
+            text: acf.__('Location not found: %s').replace('%s', status),
+            type: 'warning'
+          });
+
+          // Success.
+        } else {
+          var val = this.parseResult(results[0]);
+
+          // Override address data with parameter allowing custom address to be defined in search.
+          val.address = address;
+
+          // Update value.
+          this.val(val);
+        }
+      }.bind(this));
+    },
+    searchLocation: function () {
+      //console.log('searchLocation' );
+
+      // Check HTML5 geolocation.
+      if (!navigator.geolocation) {
+        return alert(acf.__('Sorry, this browser does not support geolocation'));
+      }
+
+      // Start Loading.
+      this.setState('loading');
+
+      // Query Geolocation.
+      navigator.geolocation.getCurrentPosition(
+      // Success.
+      function (results) {
+        // End Loading.
+        this.setState('');
+
+        // Search position.
+        var lat = results.coords.latitude;
+        var lng = results.coords.longitude;
+        this.searchPosition(lat, lng);
+      }.bind(this),
+      // Failure.
+      function (error) {
+        this.setState('');
+      }.bind(this));
+    },
+    /**
+     * parseResult
+     *
+     * Returns location data for the given GeocoderResult object.
+     *
+     * @date	15/10/19
+     * @since	5.8.6
+     *
+     * @param	object obj A GeocoderResult object.
+     * @return	object
+     */
+    parseResult: function (obj) {
+      // Construct basic data.
+      var result = {
+        address: obj.formatted_address,
+        lat: obj.geometry.location.lat(),
+        lng: obj.geometry.location.lng()
+      };
+
+      // Add zoom level.
+      result.zoom = this.map.getZoom();
+
+      // Add place ID.
+      if (obj.place_id) {
+        result.place_id = obj.place_id;
+      }
+
+      // Add place name.
+      if (obj.name) {
+        result.name = obj.name;
+      }
+
+      // Create search map for address component data.
+      var map = {
+        street_number: ['street_number'],
+        street_name: ['street_address', 'route'],
+        city: ['locality', 'postal_town'],
+        state: ['administrative_area_level_1', 'administrative_area_level_2', 'administrative_area_level_3', 'administrative_area_level_4', 'administrative_area_level_5'],
+        post_code: ['postal_code'],
+        country: ['country']
+      };
+
+      // Loop over map.
+      for (var k in map) {
+        var keywords = map[k];
+
+        // Loop over address components.
+        for (var i = 0; i < obj.address_components.length; i++) {
+          var component = obj.address_components[i];
+          var component_type = component.types[0];
+
+          // Look for matching component type.
+          if (keywords.indexOf(component_type) !== -1) {
+            // Append to result.
+            result[k] = component.long_name;
+
+            // Append short version.
+            if (component.long_name !== component.short_name) {
+              result[k + '_short'] = component.short_name;
+            }
+          }
+        }
+      }
+
+      /**
+       * Filters the parsed result.
+       *
+       * @date	18/10/19
+       * @since	5.8.6
+       *
+       * @param	object result The parsed result value.
+       * @param	object obj The GeocoderResult object.
+       */
+      return acf.applyFilters('google_map_result', result, obj, this.map, this);
+    },
+    onClickClear: function () {
+      this.val(false);
+    },
+    onClickLocate: function () {
+      this.searchLocation();
+    },
+    onClickSearch: function () {
+      this.searchAddress(this.$search().val());
+    },
+    onFocusSearch: function (e, $el) {
+      this.setState('searching');
+    },
+    onBlurSearch: function (e, $el) {
+      // Get saved address value.
+      var val = this.val();
+      var address = val ? val.address : '';
+
+      // Remove 'is-searching' if value has not changed.
+      if ($el.val() === address) {
+        this.setState('default');
+      }
+    },
+    onKeyupSearch: function (e, $el) {
+      // Clear empty value.
+      if (!$el.val()) {
+        this.val(false);
+      }
+    },
+    // Prevent form from submitting.
+    onKeydownSearch: function (e, $el) {
+      if (e.which == 13) {
+        e.preventDefault();
+        $el.blur();
+      }
+    },
+    // Center map once made visible.
+    onShow: function () {
+      if (this.map) {
+        this.setTimeout(this.center);
+      }
+    }
+  });
+  acf.registerFieldType(Field);
+
+  // Vars.
+  var loading = false;
+  var geocoder = false;
+
+  /**
+   * withAPI
+   *
+   * Loads the Google Maps API library and troggers callback.
+   *
+   * @date	28/3/19
+   * @since	5.7.14
+   *
+   * @param	function callback The callback to excecute.
+   * @return	void
+   */
+
+  function withAPI(callback) {
+    // Check if geocoder exists.
+    if (geocoder) {
+      return callback();
+    }
+
+    // Check if geocoder API exists.
+    if (acf.isset(window, 'google', 'maps', 'Geocoder')) {
+      geocoder = new google.maps.Geocoder();
+      return callback();
+    }
+
+    // Geocoder will need to be loaded. Hook callback to action.
+    acf.addAction('google_map_api_loaded', callback);
+
+    // Bail early if already loading API.
+    if (loading) {
+      return;
+    }
+
+    // load api
+    var url = acf.get('google_map_api');
+    if (url) {
+      // Set loading status.
+      loading = true;
+
+      // Load API
+      $.ajax({
+        url: url,
+        dataType: 'script',
+        cache: true,
+        success: function () {
+          geocoder = new google.maps.Geocoder();
+          acf.doAction('google_map_api_loaded');
+        }
+      });
+    }
+  }
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-image.js":
+/*!**************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-image.js ***!
+  \**************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'image',
+    $control: function () {
+      return this.$('.acf-image-uploader');
+    },
+    $input: function () {
+      return this.$('input[type="hidden"]:first');
+    },
+    events: {
+      'click a[data-name="add"]': 'onClickAdd',
+      'click a[data-name="edit"]': 'onClickEdit',
+      'click a[data-name="remove"]': 'onClickRemove',
+      'change input[type="file"]': 'onChange'
+    },
+    initialize: function () {
+      // add attribute to form
+      if (this.get('uploader') === 'basic') {
+        this.$el.closest('form').attr('enctype', 'multipart/form-data');
+      }
+    },
+    validateAttachment: function (attachment) {
+      // Use WP attachment attributes when available.
+      if (attachment && attachment.attributes) {
+        attachment = attachment.attributes;
+      }
+
+      // Apply defaults.
+      attachment = acf.parseArgs(attachment, {
+        id: 0,
+        url: '',
+        alt: '',
+        title: '',
+        caption: '',
+        description: '',
+        width: 0,
+        height: 0
+      });
+
+      // Override with "preview size".
+      var size = acf.isget(attachment, 'sizes', this.get('preview_size'));
+      if (size) {
+        attachment.url = size.url;
+        attachment.width = size.width;
+        attachment.height = size.height;
+      }
+
+      // Return.
+      return attachment;
+    },
+    render: function (attachment) {
+      attachment = this.validateAttachment(attachment);
+
+      // Update DOM.
+      this.$('img').attr({
+        src: attachment.url,
+        alt: attachment.alt
+      });
+      if (attachment.id) {
+        this.val(attachment.id);
+        this.$control().addClass('has-value');
+      } else {
+        this.val('');
+        this.$control().removeClass('has-value');
+      }
+    },
+    // create a new repeater row and render value
+    append: function (attachment, parent) {
+      // create function to find next available field within parent
+      var getNext = function (field, parent) {
+        // find existing file fields within parent
+        var fields = acf.getFields({
+          key: field.get('key'),
+          parent: parent.$el
+        });
+
+        // find the first field with no value
+        for (var i = 0; i < fields.length; i++) {
+          if (!fields[i].val()) {
+            return fields[i];
+          }
+        }
+
+        // return
+        return false;
+      };
+
+      // find existing file fields within parent
+      var field = getNext(this, parent);
+
+      // add new row if no available field
+      if (!field) {
+        parent.$('.acf-button:last').trigger('click');
+        field = getNext(this, parent);
+      }
+
+      // render
+      if (field) {
+        field.render(attachment);
+      }
+    },
+    selectAttachment: function () {
+      // vars
+      var parent = this.parent();
+      var multiple = parent && parent.get('type') === 'repeater';
+
+      // new frame
+      var frame = acf.newMediaPopup({
+        mode: 'select',
+        type: 'image',
+        title: acf.__('Select Image'),
+        field: this.get('key'),
+        multiple: multiple,
+        library: this.get('library'),
+        allowedTypes: this.get('mime_types'),
+        select: $.proxy(function (attachment, i) {
+          if (i > 0) {
+            this.append(attachment, parent);
+          } else {
+            this.render(attachment);
+          }
+        }, this)
+      });
+    },
+    editAttachment: function () {
+      // vars
+      var val = this.val();
+
+      // bail early if no val
+      if (!val) return;
+
+      // popup
+      var frame = acf.newMediaPopup({
+        mode: 'edit',
+        title: acf.__('Edit Image'),
+        button: acf.__('Update Image'),
+        attachment: val,
+        field: this.get('key'),
+        select: $.proxy(function (attachment, i) {
+          this.render(attachment);
+        }, this)
+      });
+    },
+    removeAttachment: function () {
+      this.render(false);
+    },
+    onClickAdd: function (e, $el) {
+      this.selectAttachment();
+    },
+    onClickEdit: function (e, $el) {
+      this.editAttachment();
+    },
+    onClickRemove: function (e, $el) {
+      this.removeAttachment();
+    },
+    onChange: function (e, $el) {
+      var $hiddenInput = this.$input();
+      if (!$el.val()) {
+        $hiddenInput.val('');
+      }
+      acf.getFileInputData($el, function (data) {
+        $hiddenInput.val($.param(data));
+      });
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-link.js":
+/*!*************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-link.js ***!
+  \*************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'link',
+    events: {
+      'click a[data-name="add"]': 'onClickEdit',
+      'click a[data-name="edit"]': 'onClickEdit',
+      'click a[data-name="remove"]': 'onClickRemove',
+      'change .link-node': 'onChange'
+    },
+    $control: function () {
+      return this.$('.acf-link');
+    },
+    $node: function () {
+      return this.$('.link-node');
+    },
+    getValue: function () {
+      // vars
+      var $node = this.$node();
+
+      // return false if empty
+      if (!$node.attr('href')) {
+        return false;
+      }
+
+      // return
+      return {
+        title: $node.html(),
+        url: $node.attr('href'),
+        target: $node.attr('target')
+      };
+    },
+    setValue: function (val) {
+      // default
+      val = acf.parseArgs(val, {
+        title: '',
+        url: '',
+        target: ''
+      });
+
+      // vars
+      var $div = this.$control();
+      var $node = this.$node();
+
+      // remove class
+      $div.removeClass('-value -external');
+
+      // add class
+      if (val.url) $div.addClass('-value');
+      if (val.target === '_blank') $div.addClass('-external');
+
+      // update text
+      this.$('.link-title').html(val.title);
+      this.$('.link-url').attr('href', val.url).html(val.url);
+
+      // update node
+      $node.html(val.title);
+      $node.attr('href', val.url);
+      $node.attr('target', val.target);
+
+      // update inputs
+      this.$('.input-title').val(val.title);
+      this.$('.input-target').val(val.target);
+      this.$('.input-url').val(val.url).trigger('change');
+    },
+    onClickEdit: function (e, $el) {
+      acf.wpLink.open(this.$node());
+    },
+    onClickRemove: function (e, $el) {
+      this.setValue(false);
+    },
+    onChange: function (e, $el) {
+      // get the changed value
+      var val = this.getValue();
+
+      // update inputs
+      this.setValue(val);
+    }
+  });
+  acf.registerFieldType(Field);
+
+  // manager
+  acf.wpLink = new acf.Model({
+    getNodeValue: function () {
+      var $node = this.get('node');
+      return {
+        title: acf.decode($node.html()),
+        url: $node.attr('href'),
+        target: $node.attr('target')
+      };
+    },
+    setNodeValue: function (val) {
+      var $node = this.get('node');
+      $node.text(val.title);
+      $node.attr('href', val.url);
+      $node.attr('target', val.target);
+      $node.trigger('change');
+    },
+    getInputValue: function () {
+      return {
+        title: $('#wp-link-text').val(),
+        url: $('#wp-link-url').val(),
+        target: $('#wp-link-target').prop('checked') ? '_blank' : ''
+      };
+    },
+    setInputValue: function (val) {
+      $('#wp-link-text').val(val.title);
+      $('#wp-link-url').val(val.url);
+      $('#wp-link-target').prop('checked', val.target === '_blank');
+    },
+    open: function ($node) {
+      // add events
+      this.on('wplink-open', 'onOpen');
+      this.on('wplink-close', 'onClose');
+
+      // set node
+      this.set('node', $node);
+
+      // create textarea
+      var $textarea = $('<textarea id="acf-link-textarea" style="display:none;"></textarea>');
+      $('body').append($textarea);
+
+      // vars
+      var val = this.getNodeValue();
+
+      // open popup
+      wpLink.open('acf-link-textarea', val.url, val.title, null);
+    },
+    onOpen: function () {
+      // always show title (WP will hide title if empty)
+      $('#wp-link-wrap').addClass('has-text-field');
+
+      // set inputs
+      var val = this.getNodeValue();
+      this.setInputValue(val);
+
+      // Update button text.
+      if (val.url && wpLinkL10n) {
+        $('#wp-link-submit').val(wpLinkL10n.update);
+      }
+    },
+    close: function () {
+      wpLink.close();
+    },
+    onClose: function () {
+      // Bail early if no node.
+      // Needed due to WP triggering this event twice.
+      if (!this.has('node')) {
+        return false;
+      }
+
+      // Determine context.
+      var $submit = $('#wp-link-submit');
+      var isSubmit = $submit.is(':hover') || $submit.is(':focus');
+
+      // Set value
+      if (isSubmit) {
+        var val = this.getInputValue();
+        this.setNodeValue(val);
+      }
+
+      // Cleanup.
+      this.off('wplink-open');
+      this.off('wplink-close');
+      $('#acf-link-textarea').remove();
+      this.set('node', null);
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-oembed.js":
+/*!***************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-oembed.js ***!
+  \***************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'oembed',
+    events: {
+      'click [data-name="clear-button"]': 'onClickClear',
+      'keypress .input-search': 'onKeypressSearch',
+      'keyup .input-search': 'onKeyupSearch',
+      'change .input-search': 'onChangeSearch'
+    },
+    $control: function () {
+      return this.$('.acf-oembed');
+    },
+    $input: function () {
+      return this.$('.input-value');
+    },
+    $search: function () {
+      return this.$('.input-search');
+    },
+    getValue: function () {
+      return this.$input().val();
+    },
+    getSearchVal: function () {
+      return this.$search().val();
+    },
+    setValue: function (val) {
+      // class
+      if (val) {
+        this.$control().addClass('has-value');
+      } else {
+        this.$control().removeClass('has-value');
+      }
+      acf.val(this.$input(), val);
+    },
+    showLoading: function (show) {
+      acf.showLoading(this.$('.canvas'));
+    },
+    hideLoading: function () {
+      acf.hideLoading(this.$('.canvas'));
+    },
+    maybeSearch: function () {
+      // vars
+      var prevUrl = this.val();
+      var url = this.getSearchVal();
+
+      // no value
+      if (!url) {
+        return this.clear();
+      }
+
+      // fix missing 'http://' - causes the oembed code to error and fail
+      if (url.substr(0, 4) != 'http') {
+        url = 'http://' + url;
+      }
+
+      // bail early if no change
+      if (url === prevUrl) return;
+
+      // clear existing timeout
+      var timeout = this.get('timeout');
+      if (timeout) {
+        clearTimeout(timeout);
+      }
+
+      // set new timeout
+      var callback = $.proxy(this.search, this, url);
+      this.set('timeout', setTimeout(callback, 300));
+    },
+    search: function (url) {
+      // ajax
+      var ajaxData = {
+        action: 'acf/fields/oembed/search',
+        s: url,
+        field_key: this.get('key')
+      };
+
+      // clear existing timeout
+      var xhr = this.get('xhr');
+      if (xhr) {
+        xhr.abort();
+      }
+
+      // loading
+      this.showLoading();
+
+      // query
+      var xhr = $.ajax({
+        url: acf.get('ajaxurl'),
+        data: acf.prepareForAjax(ajaxData),
+        type: 'post',
+        dataType: 'json',
+        context: this,
+        success: function (json) {
+          // error
+          if (!json || !json.html) {
+            json = {
+              url: false,
+              html: ''
+            };
+          }
+
+          // update vars
+          this.val(json.url);
+          this.$('.canvas-media').html(json.html);
+        },
+        complete: function () {
+          this.hideLoading();
+        }
+      });
+      this.set('xhr', xhr);
+    },
+    clear: function () {
+      this.val('');
+      this.$search().val('');
+      this.$('.canvas-media').html('');
+    },
+    onClickClear: function (e, $el) {
+      this.clear();
+    },
+    onKeypressSearch: function (e, $el) {
+      if (e.which == 13) {
+        e.preventDefault();
+        this.maybeSearch();
+      }
+    },
+    onKeyupSearch: function (e, $el) {
+      if ($el.val()) {
+        this.maybeSearch();
+      }
+    },
+    onChangeSearch: function (e, $el) {
+      this.maybeSearch();
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-page-link.js":
+/*!******************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-page-link.js ***!
+  \******************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.models.SelectField.extend({
+    type: 'page_link'
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-post-object.js":
+/*!********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-post-object.js ***!
+  \********************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.models.SelectField.extend({
+    type: 'post_object'
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-radio.js":
+/*!**************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-radio.js ***!
+  \**************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'radio',
+    events: {
+      'click input[type="radio"]': 'onClick'
+    },
+    $control: function () {
+      return this.$('.acf-radio-list');
+    },
+    $input: function () {
+      return this.$('input:checked');
+    },
+    $inputText: function () {
+      return this.$('input[type="text"]');
+    },
+    getValue: function () {
+      var val = this.$input().val();
+      if (val === 'other' && this.get('other_choice')) {
+        val = this.$inputText().val();
+      }
+      return val;
+    },
+    onClick: function (e, $el) {
+      // vars
+      var $label = $el.parent('label');
+      var selected = $label.hasClass('selected');
+      var val = $el.val();
+
+      // remove previous selected
+      this.$('.selected').removeClass('selected');
+
+      // add active class
+      $label.addClass('selected');
+
+      // allow null
+      if (this.get('allow_null') && selected) {
+        $label.removeClass('selected');
+        $el.prop('checked', false).trigger('change');
+        val = false;
+      }
+
+      // other
+      if (this.get('other_choice')) {
+        // enable
+        if (val === 'other') {
+          this.$inputText().prop('disabled', false);
+
+          // disable
+        } else {
+          this.$inputText().prop('disabled', true);
+        }
+      }
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-range.js":
+/*!**************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-range.js ***!
+  \**************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'range',
+    events: {
+      'input input[type="range"]': 'onChange',
+      'change input': 'onChange'
+    },
+    $input: function () {
+      return this.$('input[type="range"]');
+    },
+    $inputAlt: function () {
+      return this.$('input[type="number"]');
+    },
+    setValue: function (val) {
+      this.busy = true;
+
+      // Update range input (with change).
+      acf.val(this.$input(), val);
+
+      // Update alt input (without change).
+      // Read in input value to inherit min/max validation.
+      acf.val(this.$inputAlt(), this.$input().val(), true);
+      this.busy = false;
+    },
+    onChange: function (e, $el) {
+      if (!this.busy) {
+        this.setValue($el.val());
+      }
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-relationship.js":
+/*!*********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-relationship.js ***!
+  \*********************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'relationship',
+    events: {
+      'keypress [data-filter]': 'onKeypressFilter',
+      'change [data-filter]': 'onChangeFilter',
+      'keyup [data-filter]': 'onChangeFilter',
+      'click .choices-list .acf-rel-item': 'onClickAdd',
+      'keypress .choices-list .acf-rel-item': 'onKeypressFilter',
+      'keypress .values-list .acf-rel-item': 'onKeypressFilter',
+      'click [data-name="remove_item"]': 'onClickRemove'
+    },
+    $control: function () {
+      return this.$('.acf-relationship');
+    },
+    $list: function (list) {
+      return this.$('.' + list + '-list');
+    },
+    $listItems: function (list) {
+      return this.$list(list).find('.acf-rel-item');
+    },
+    $listItem: function (list, id) {
+      return this.$list(list).find('.acf-rel-item[data-id="' + id + '"]');
+    },
+    getValue: function () {
+      var val = [];
+      this.$listItems('values').each(function () {
+        val.push($(this).data('id'));
+      });
+      return val.length ? val : false;
+    },
+    newChoice: function (props) {
+      return ['<li>', '<span tabindex="0" data-id="' + props.id + '" class="acf-rel-item">' + props.text + '</span>', '</li>'].join('');
+    },
+    newValue: function (props) {
+      return ['<li>', '<input type="hidden" name="' + this.getInputName() + '[]" value="' + props.id + '" />', '<span tabindex="0" data-id="' + props.id + '" class="acf-rel-item acf-rel-item-remove">' + props.text, '<a href="#" class="acf-icon -minus small dark" data-name="remove_item"></a>', '</span>', '</li>'].join('');
+    },
+    initialize: function () {
+      // Delay initialization until "interacted with" or "in view".
+      var delayed = this.proxy(acf.once(function () {
+        // Add sortable.
+        this.$list('values').sortable({
+          items: 'li',
+          forceHelperSize: true,
+          forcePlaceholderSize: true,
+          scroll: true,
+          update: this.proxy(function () {
+            this.$input().trigger('change');
+          })
+        });
+
+        // Avoid browser remembering old scroll position and add event.
+        this.$list('choices').scrollTop(0).on('scroll', this.proxy(this.onScrollChoices));
+
+        // Fetch choices.
+        this.fetch();
+      }));
+
+      // Bind "interacted with".
+      this.$el.one('mouseover', delayed);
+      this.$el.one('focus', 'input', delayed);
+
+      // Bind "in view".
+      acf.onceInView(this.$el, delayed);
+    },
+    onScrollChoices: function (e) {
+      // bail early if no more results
+      if (this.get('loading') || !this.get('more')) {
+        return;
+      }
+
+      // Scrolled to bottom
+      var $list = this.$list('choices');
+      var scrollTop = Math.ceil($list.scrollTop());
+      var scrollHeight = Math.ceil($list[0].scrollHeight);
+      var innerHeight = Math.ceil($list.innerHeight());
+      var paged = this.get('paged') || 1;
+      if (scrollTop + innerHeight >= scrollHeight) {
+        // update paged
+        this.set('paged', paged + 1);
+
+        // fetch
+        this.fetch();
+      }
+    },
+    onKeypressFilter: function (e, $el) {
+      // Receive enter key when selecting relationship items.
+      if ($el.hasClass('acf-rel-item-add') && e.which == 13) {
+        this.onClickAdd(e, $el);
+      }
+      // Receive enter key when removing relationship items.
+      if ($el.hasClass('acf-rel-item-remove') && e.which == 13) {
+        this.onClickRemove(e, $el);
+      }
+      // don't submit form
+      if (e.which == 13) {
+        e.preventDefault();
+      }
+    },
+    onChangeFilter: function (e, $el) {
+      // vars
+      var val = $el.val();
+      var filter = $el.data('filter');
+
+      // Bail early if filter has not changed
+      if (this.get(filter) === val) {
+        return;
+      }
+
+      // update attr
+      this.set(filter, val);
+
+      // reset paged
+      this.set('paged', 1);
+
+      // fetch
+      if ($el.is('select')) {
+        this.fetch();
+
+        // search must go through timeout
+      } else {
+        this.maybeFetch();
+      }
+    },
+    onClickAdd: function (e, $el) {
+      // vars
+      var val = this.val();
+      var max = parseInt(this.get('max'));
+
+      // can be added?
+      if ($el.hasClass('disabled')) {
+        return false;
+      }
+
+      // validate
+      if (max > 0 && val && val.length >= max) {
+        // add notice
+        this.showNotice({
+          text: acf.__('Maximum values reached ( {max} values )').replace('{max}', max),
+          type: 'warning'
+        });
+        return false;
+      }
+
+      // disable
+      $el.addClass('disabled');
+
+      // add
+      var html = this.newValue({
+        id: $el.data('id'),
+        text: $el.html()
+      });
+      this.$list('values').append(html);
+
+      // trigger change
+      this.$input().trigger('change');
+    },
+    onClickRemove: function (e, $el) {
+      // Prevent default here because generic handler wont be triggered.
+      e.preventDefault();
+      let $span;
+      // Behavior if triggered from tabbed event.
+      if ($el.hasClass('acf-rel-item-remove')) {
+        $span = $el;
+      } else {
+        // Behavior if triggered through click event.
+        $span = $el.parent();
+      }
+
+      // vars
+      const $li = $span.parent();
+      const id = $span.data('id');
+
+      // remove value
+      $li.remove();
+
+      // show choice
+      this.$listItem('choices', id).removeClass('disabled');
+
+      // trigger change
+      this.$input().trigger('change');
+    },
+    maybeFetch: function () {
+      // vars
+      var timeout = this.get('timeout');
+
+      // abort timeout
+      if (timeout) {
+        clearTimeout(timeout);
+      }
+
+      // fetch
+      timeout = this.setTimeout(this.fetch, 300);
+      this.set('timeout', timeout);
+    },
+    getAjaxData: function () {
+      // load data based on element attributes
+      var ajaxData = this.$control().data();
+      for (var name in ajaxData) {
+        ajaxData[name] = this.get(name);
+      }
+
+      // extra
+      ajaxData.action = 'acf/fields/relationship/query';
+      ajaxData.field_key = this.get('key');
+
+      // Filter.
+      ajaxData = acf.applyFilters('relationship_ajax_data', ajaxData, this);
+
+      // return
+      return ajaxData;
+    },
+    fetch: function () {
+      // abort XHR if this field is already loading AJAX data
+      var xhr = this.get('xhr');
+      if (xhr) {
+        xhr.abort();
+      }
+
+      // add to this.o
+      var ajaxData = this.getAjaxData();
+
+      // clear html if is new query
+      var $choiceslist = this.$list('choices');
+      if (ajaxData.paged == 1) {
+        $choiceslist.html('');
+      }
+
+      // loading
+      var $loading = $('<li><i class="acf-loading"></i> ' + acf.__('Loading') + '</li>');
+      $choiceslist.append($loading);
+      this.set('loading', true);
+
+      // callback
+      var onComplete = function () {
+        this.set('loading', false);
+        $loading.remove();
+      };
+      var onSuccess = function (json) {
+        // no results
+        if (!json || !json.results || !json.results.length) {
+          // prevent pagination
+          this.set('more', false);
+
+          // add message
+          if (this.get('paged') == 1) {
+            this.$list('choices').append('<li>' + acf.__('No matches found') + '</li>');
+          }
+
+          // return
+          return;
+        }
+
+        // set more (allows pagination scroll)
+        this.set('more', json.more);
+
+        // get new results
+        var html = this.walkChoices(json.results);
+        var $html = $(html);
+
+        // apply .disabled to left li's
+        var val = this.val();
+        if (val && val.length) {
+          val.map(function (id) {
+            $html.find('.acf-rel-item[data-id="' + id + '"]').addClass('disabled');
+          });
+        }
+
+        // append
+        $choiceslist.append($html);
+
+        // merge together groups
+        var $prevLabel = false;
+        var $prevList = false;
+        $choiceslist.find('.acf-rel-label').each(function () {
+          var $label = $(this);
+          var $list = $label.siblings('ul');
+          if ($prevLabel && $prevLabel.text() == $label.text()) {
+            $prevList.append($list.children());
+            $(this).parent().remove();
+            return;
+          }
+
+          // update vars
+          $prevLabel = $label;
+          $prevList = $list;
+        });
+      };
+
+      // get results
+      var xhr = $.ajax({
+        url: acf.get('ajaxurl'),
+        dataType: 'json',
+        type: 'post',
+        data: acf.prepareForAjax(ajaxData),
+        context: this,
+        success: onSuccess,
+        complete: onComplete
+      });
+
+      // set
+      this.set('xhr', xhr);
+    },
+    walkChoices: function (data) {
+      // walker
+      var walk = function (data) {
+        // vars
+        var html = '';
+
+        // is array
+        if ($.isArray(data)) {
+          data.map(function (item) {
+            html += walk(item);
+          });
+
+          // is item
+        } else if ($.isPlainObject(data)) {
+          // group
+          if (data.children !== undefined) {
+            html += '<li><span class="acf-rel-label">' + acf.escHtml(data.text) + '</span><ul class="acf-bl">';
+            html += walk(data.children);
+            html += '</ul></li>';
+
+            // single
+          } else {
+            html += '<li><span tabindex="0" class="acf-rel-item acf-rel-item-add" data-id="' + acf.escAttr(data.id) + '">' + acf.escHtml(data.text) + '</span></li>';
+          }
+        }
+
+        // return
+        return html;
+      };
+      return walk(data);
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-select.js":
+/*!***************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-select.js ***!
+  \***************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'select',
+    select2: false,
+    wait: 'load',
+    events: {
+      removeField: 'onRemove',
+      duplicateField: 'onDuplicate'
+    },
+    $input: function () {
+      return this.$('select');
+    },
+    initialize: function () {
+      // vars
+      var $select = this.$input();
+
+      // inherit data
+      this.inherit($select);
+
+      // select2
+      if (this.get('ui')) {
+        // populate ajax_data (allowing custom attribute to already exist)
+        var ajaxAction = this.get('ajax_action');
+        if (!ajaxAction) {
+          ajaxAction = 'acf/fields/' + this.get('type') + '/query';
+        }
+
+        // select2
+        this.select2 = acf.newSelect2($select, {
+          field: this,
+          ajax: this.get('ajax'),
+          multiple: this.get('multiple'),
+          placeholder: this.get('placeholder'),
+          allowNull: this.get('allow_null'),
+          ajaxAction: ajaxAction
+        });
+      }
+    },
+    onRemove: function () {
+      if (this.select2) {
+        this.select2.destroy();
+      }
+    },
+    onDuplicate: function (e, $el, $duplicate) {
+      if (this.select2) {
+        $duplicate.find('.select2-container').remove();
+        $duplicate.find('select').removeClass('select2-hidden-accessible');
+      }
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-tab.js":
+/*!************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-tab.js ***!
+  \************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  // vars
+  var CONTEXT = 'tab';
+  var Field = acf.Field.extend({
+    type: 'tab',
+    wait: '',
+    tabs: false,
+    tab: false,
+    events: {
+      duplicateField: 'onDuplicate'
+    },
+    findFields: function () {
+      let filter = '.acf-field';
+      if (this.get('key') === 'acf_field_settings_tabs') {
+        filter = '.acf-field-settings-main';
+      }
+      if (this.get('key') === 'acf_field_group_settings_tabs') {
+        filter = '.field-group-settings-tab';
+      }
+      return this.$el.nextUntil('.acf-field-tab', filter);
+    },
+    getFields: function () {
+      return acf.getFields(this.findFields());
+    },
+    findTabs: function () {
+      return this.$el.prevAll('.acf-tab-wrap:first');
+    },
+    findTab: function () {
+      return this.$('.acf-tab-button');
+    },
+    initialize: function () {
+      // bail early if is td
+      if (this.$el.is('td')) {
+        this.events = {};
+        return false;
+      }
+
+      // vars
+      var $tabs = this.findTabs();
+      var $tab = this.findTab();
+      var settings = acf.parseArgs($tab.data(), {
+        endpoint: false,
+        placement: '',
+        before: this.$el
+      });
+
+      // create wrap
+      if (!$tabs.length || settings.endpoint) {
+        this.tabs = new Tabs(settings);
+      } else {
+        this.tabs = $tabs.data('acf');
+      }
+
+      // add tab
+      this.tab = this.tabs.addTab($tab, this);
+    },
+    isActive: function () {
+      return this.tab.isActive();
+    },
+    showFields: function () {
+      // show fields
+      this.getFields().map(function (field) {
+        field.show(this.cid, CONTEXT);
+        field.hiddenByTab = false;
+      }, this);
+    },
+    hideFields: function () {
+      // hide fields
+      this.getFields().map(function (field) {
+        field.hide(this.cid, CONTEXT);
+        field.hiddenByTab = this.tab;
+      }, this);
+    },
+    show: function (lockKey) {
+      // show field and store result
+      var visible = acf.Field.prototype.show.apply(this, arguments);
+
+      // check if now visible
+      if (visible) {
+        // show tab
+        this.tab.show();
+
+        // check active tabs
+        this.tabs.refresh();
+      }
+
+      // return
+      return visible;
+    },
+    hide: function (lockKey) {
+      // hide field and store result
+      var hidden = acf.Field.prototype.hide.apply(this, arguments);
+
+      // check if now hidden
+      if (hidden) {
+        // hide tab
+        this.tab.hide();
+
+        // reset tabs if this was active
+        if (this.isActive()) {
+          this.tabs.reset();
+        }
+      }
+
+      // return
+      return hidden;
+    },
+    enable: function (lockKey) {
+      // enable fields
+      this.getFields().map(function (field) {
+        field.enable(CONTEXT);
+      });
+    },
+    disable: function (lockKey) {
+      // disable fields
+      this.getFields().map(function (field) {
+        field.disable(CONTEXT);
+      });
+    },
+    onDuplicate: function (e, $el, $duplicate) {
+      if (this.isActive()) {
+        $duplicate.prevAll('.acf-tab-wrap:first').remove();
+      }
+    }
+  });
+  acf.registerFieldType(Field);
+
+  /**
+   *  tabs
+   *
+   *  description
+   *
+   *  @date	8/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var i = 0;
+  var Tabs = acf.Model.extend({
+    tabs: [],
+    active: false,
+    actions: {
+      refresh: 'onRefresh',
+      close_field_object: 'onCloseFieldObject'
+    },
+    data: {
+      before: false,
+      placement: 'top',
+      index: 0,
+      initialized: false
+    },
+    setup: function (settings) {
+      // data
+      $.extend(this.data, settings);
+
+      // define this prop to avoid scope issues
+      this.tabs = [];
+      this.active = false;
+
+      // vars
+      var placement = this.get('placement');
+      var $before = this.get('before');
+      var $parent = $before.parent();
+
+      // add sidebar for left placement
+      if (placement == 'left' && $parent.hasClass('acf-fields')) {
+        $parent.addClass('-sidebar');
+      }
+
+      // create wrap
+      if ($before.is('tr')) {
+        this.$el = $('<tr class="acf-tab-wrap"><td colspan="2"><ul class="acf-hl acf-tab-group"></ul></td></tr>');
+      } else {
+        let ulClass = 'acf-hl acf-tab-group';
+        if (this.get('key') === 'acf_field_settings_tabs') {
+          ulClass = 'acf-field-settings-tab-bar';
+        }
+        this.$el = $('<div class="acf-tab-wrap -' + placement + '"><ul class="' + ulClass + '"></ul></div>');
+      }
+
+      // append
+      $before.before(this.$el);
+
+      // set index
+      this.set('index', i, true);
+      i++;
+    },
+    initializeTabs: function () {
+      // Bail if tabs are disabled.
+      if ('acf_field_settings_tabs' === this.get('key') && $('#acf-field-group-fields').hasClass('hide-tabs')) {
+        return;
+      }
+
+      // find first visible tab
+      var tab = this.getVisible().shift();
+
+      // remember previous tab state
+      var order = acf.getPreference('this.tabs') || [];
+      var groupIndex = this.get('index');
+      var tabIndex = order[groupIndex];
+      if (this.tabs[tabIndex] && this.tabs[tabIndex].isVisible()) {
+        tab = this.tabs[tabIndex];
+      }
+
+      // select
+      if (tab) {
+        this.selectTab(tab);
+      } else {
+        this.closeTabs();
+      }
+
+      // set local variable used by tabsManager
+      this.set('initialized', true);
+    },
+    getVisible: function () {
+      return this.tabs.filter(function (tab) {
+        return tab.isVisible();
+      });
+    },
+    getActive: function () {
+      return this.active;
+    },
+    setActive: function (tab) {
+      return this.active = tab;
+    },
+    hasActive: function () {
+      return this.active !== false;
+    },
+    isActive: function (tab) {
+      var active = this.getActive();
+      return active && active.cid === tab.cid;
+    },
+    closeActive: function () {
+      if (this.hasActive()) {
+        this.closeTab(this.getActive());
+      }
+    },
+    openTab: function (tab) {
+      // close existing tab
+      this.closeActive();
+
+      // open
+      tab.open();
+
+      // set active
+      this.setActive(tab);
+    },
+    closeTab: function (tab) {
+      // close
+      tab.close();
+
+      // set active
+      this.setActive(false);
+    },
+    closeTabs: function () {
+      this.tabs.map(this.closeTab, this);
+    },
+    selectTab: function (tab) {
+      // close other tabs
+      this.tabs.map(function (t) {
+        if (tab.cid !== t.cid) {
+          this.closeTab(t);
+        }
+      }, this);
+
+      // open
+      this.openTab(tab);
+    },
+    addTab: function ($a, field) {
+      // create <li>
+      var $li = $('<li>' + $a.outerHTML() + '</li>');
+
+      // add settings type class.
+      var classes = $a.attr('class').replace('acf-tab-button', '');
+      $li.addClass(classes);
+
+      // append
+      this.$('ul').append($li);
+
+      // initialize
+      var tab = new Tab({
+        $el: $li,
+        field: field,
+        group: this
+      });
+
+      // store
+      this.tabs.push(tab);
+
+      // return
+      return tab;
+    },
+    reset: function () {
+      // close existing tab
+      this.closeActive();
+
+      // find and active a tab
+      return this.refresh();
+    },
+    refresh: function () {
+      // bail early if active already exists
+      if (this.hasActive()) {
+        return false;
+      }
+      // find next active tab
+      var tab = this.getVisible().shift();
+      // open tab
+      if (tab) {
+        this.openTab(tab);
+      }
+
+      // return
+      return tab;
+    },
+    onRefresh: function () {
+      // only for left placements
+      if (this.get('placement') !== 'left') {
+        return;
+      }
+
+      // vars
+      var $parent = this.$el.parent();
+      var $list = this.$el.children('ul');
+      var attribute = $parent.is('td') ? 'height' : 'min-height';
+
+      // find height (minus 1 for border-bottom)
+      var height = $list.position().top + $list.outerHeight(true) - 1;
+
+      // add css
+      $parent.css(attribute, height);
+    },
+    onCloseFieldObject: function (fieldObject) {
+      const tab = this.getVisible().find(item => {
+        const id = item.$el.closest('div[data-id]').data('id');
+        if (fieldObject.data.id === id) {
+          return item;
+        }
+      });
+      if (tab) {
+        // Wait for field group drawer to close
+        setTimeout(() => {
+          this.openTab(tab);
+        }, 300);
+      }
+    }
+  });
+  var Tab = acf.Model.extend({
+    group: false,
+    field: false,
+    events: {
+      'click a': 'onClick'
+    },
+    index: function () {
+      return this.$el.index();
+    },
+    isVisible: function () {
+      return acf.isVisible(this.$el);
+    },
+    isActive: function () {
+      return this.$el.hasClass('active');
+    },
+    open: function () {
+      // add class
+      this.$el.addClass('active');
+
+      // show field
+      this.field.showFields();
+    },
+    close: function () {
+      // remove class
+      this.$el.removeClass('active');
+
+      // hide field
+      this.field.hideFields();
+    },
+    onClick: function (e, $el) {
+      // prevent default
+      e.preventDefault();
+
+      // toggle
+      this.toggle();
+    },
+    toggle: function () {
+      // bail early if already active
+      if (this.isActive()) {
+        return;
+      }
+
+      // toggle this tab
+      this.group.openTab(this);
+    }
+  });
+  var tabsManager = new acf.Model({
+    priority: 50,
+    actions: {
+      prepare: 'render',
+      append: 'render',
+      unload: 'onUnload',
+      show: 'render',
+      invalid_field: 'onInvalidField'
+    },
+    findTabs: function () {
+      return $('.acf-tab-wrap');
+    },
+    getTabs: function () {
+      return acf.getInstances(this.findTabs());
+    },
+    render: function ($el) {
+      this.getTabs().map(function (tabs) {
+        if (!tabs.get('initialized')) {
+          tabs.initializeTabs();
+        }
+      });
+    },
+    onInvalidField: function (field) {
+      // bail early if busy
+      if (this.busy) {
+        return;
+      }
+
+      // ignore if not hidden by tab
+      if (!field.hiddenByTab) {
+        return;
+      }
+
+      // toggle tab
+      field.hiddenByTab.toggle();
+
+      // ignore other invalid fields
+      this.busy = true;
+      this.setTimeout(function () {
+        this.busy = false;
+      }, 100);
+    },
+    onUnload: function () {
+      // vars
+      var order = [];
+
+      // loop
+      this.getTabs().map(function (group) {
+        // Do not save selected tab on field settings when unloading
+        if (group.$el.children('.acf-field-settings-tab-bar').length) {
+          return true;
+        }
+        var active = group.hasActive() ? group.getActive().index() : 0;
+        order.push(active);
+      });
+
+      // bail if no tabs
+      if (!order.length) {
+        return;
+      }
+
+      // update
+      acf.setPreference('this.tabs', order);
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-taxonomy.js":
+/*!*****************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-taxonomy.js ***!
+  \*****************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'taxonomy',
+    data: {
+      ftype: 'select'
+    },
+    select2: false,
+    wait: 'load',
+    events: {
+      'click a[data-name="add"]': 'onClickAdd',
+      'click input[type="radio"]': 'onClickRadio',
+      removeField: 'onRemove'
+    },
+    $control: function () {
+      return this.$('.acf-taxonomy-field');
+    },
+    $input: function () {
+      return this.getRelatedPrototype().$input.apply(this, arguments);
+    },
+    getRelatedType: function () {
+      // vars
+      var fieldType = this.get('ftype');
+
+      // normalize
+      if (fieldType == 'multi_select') {
+        fieldType = 'select';
+      }
+
+      // return
+      return fieldType;
+    },
+    getRelatedPrototype: function () {
+      return acf.getFieldType(this.getRelatedType()).prototype;
+    },
+    getValue: function () {
+      return this.getRelatedPrototype().getValue.apply(this, arguments);
+    },
+    setValue: function () {
+      return this.getRelatedPrototype().setValue.apply(this, arguments);
+    },
+    initialize: function () {
+      this.getRelatedPrototype().initialize.apply(this, arguments);
+    },
+    onRemove: function () {
+      var proto = this.getRelatedPrototype();
+      if (proto.onRemove) {
+        proto.onRemove.apply(this, arguments);
+      }
+    },
+    onClickAdd: function (e, $el) {
+      // vars
+      var field = this;
+      var popup = false;
+      var $form = false;
+      var $name = false;
+      var $parent = false;
+      var $button = false;
+      var $message = false;
+      var notice = false;
+
+      // step 1.
+      var step1 = function () {
+        // popup
+        popup = acf.newPopup({
+          title: $el.attr('title'),
+          loading: true,
+          width: '300px'
+        });
+
+        // ajax
+        var ajaxData = {
+          action: 'acf/fields/taxonomy/add_term',
+          field_key: field.get('key')
+        };
+
+        // get HTML
+        $.ajax({
+          url: acf.get('ajaxurl'),
+          data: acf.prepareForAjax(ajaxData),
+          type: 'post',
+          dataType: 'html',
+          success: step2
+        });
+      };
+
+      // step 2.
+      var step2 = function (html) {
+        // update popup
+        popup.loading(false);
+        popup.content(html);
+
+        // vars
+        $form = popup.$('form');
+        $name = popup.$('input[name="term_name"]');
+        $parent = popup.$('select[name="term_parent"]');
+        $button = popup.$('.acf-submit-button');
+
+        // focus
+        $name.trigger('focus');
+
+        // submit form
+        popup.on('submit', 'form', step3);
+      };
+
+      // step 3.
+      var step3 = function (e, $el) {
+        // prevent
+        e.preventDefault();
+        e.stopImmediatePropagation();
+
+        // basic validation
+        if ($name.val() === '') {
+          $name.trigger('focus');
+          return false;
+        }
+
+        // disable
+        acf.startButtonLoading($button);
+
+        // ajax
+        var ajaxData = {
+          action: 'acf/fields/taxonomy/add_term',
+          field_key: field.get('key'),
+          term_name: $name.val(),
+          term_parent: $parent.length ? $parent.val() : 0
+        };
+        $.ajax({
+          url: acf.get('ajaxurl'),
+          data: acf.prepareForAjax(ajaxData),
+          type: 'post',
+          dataType: 'json',
+          success: step4
+        });
+      };
+
+      // step 4.
+      var step4 = function (json) {
+        // enable
+        acf.stopButtonLoading($button);
+
+        // remove prev notice
+        if (notice) {
+          notice.remove();
+        }
+
+        // success
+        if (acf.isAjaxSuccess(json)) {
+          // clear name
+          $name.val('');
+
+          // update term lists
+          step5(json.data);
+
+          // notice
+          notice = acf.newNotice({
+            type: 'success',
+            text: acf.getAjaxMessage(json),
+            target: $form,
+            timeout: 2000,
+            dismiss: false
+          });
+        } else {
+          // notice
+          notice = acf.newNotice({
+            type: 'error',
+            text: acf.getAjaxError(json),
+            target: $form,
+            timeout: 2000,
+            dismiss: false
+          });
+        }
+
+        // focus
+        $name.trigger('focus');
+      };
+
+      // step 5.
+      var step5 = function (term) {
+        // update parent dropdown
+        var $option = $('<option value="' + term.term_id + '">' + term.term_label + '</option>');
+        if (term.term_parent) {
+          $parent.children('option[value="' + term.term_parent + '"]').after($option);
+        } else {
+          $parent.append($option);
+        }
+
+        // add this new term to all taxonomy field
+        var fields = acf.getFields({
+          type: 'taxonomy'
+        });
+        fields.map(function (otherField) {
+          if (otherField.get('taxonomy') == field.get('taxonomy')) {
+            otherField.appendTerm(term);
+          }
+        });
+
+        // select
+        field.selectTerm(term.term_id);
+      };
+
+      // run
+      step1();
+    },
+    appendTerm: function (term) {
+      if (this.getRelatedType() == 'select') {
+        this.appendTermSelect(term);
+      } else {
+        this.appendTermCheckbox(term);
+      }
+    },
+    appendTermSelect: function (term) {
+      this.select2.addOption({
+        id: term.term_id,
+        text: term.term_label
+      });
+    },
+    appendTermCheckbox: function (term) {
+      // vars
+      var name = this.$('[name]:first').attr('name');
+      var $ul = this.$('ul:first');
+
+      // allow multiple selection
+      if (this.getRelatedType() == 'checkbox') {
+        name += '[]';
+      }
+
+      // create new li
+      var $li = $(['<li data-id="' + term.term_id + '">', '<label>', '<input type="' + this.get('ftype') + '" value="' + term.term_id + '" name="' + name + '" /> ', '<span>' + term.term_name + '</span>', '</label>', '</li>'].join(''));
+
+      // find parent
+      if (term.term_parent) {
+        // vars
+        var $parent = $ul.find('li[data-id="' + term.term_parent + '"]');
+
+        // update vars
+        $ul = $parent.children('ul');
+
+        // create ul
+        if (!$ul.exists()) {
+          $ul = $('<ul class="children acf-bl"></ul>');
+          $parent.append($ul);
+        }
+      }
+
+      // append
+      $ul.append($li);
+    },
+    selectTerm: function (id) {
+      if (this.getRelatedType() == 'select') {
+        this.select2.selectOption(id);
+      } else {
+        var $input = this.$('input[value="' + id + '"]');
+        $input.prop('checked', true).trigger('change');
+      }
+    },
+    onClickRadio: function (e, $el) {
+      // vars
+      var $label = $el.parent('label');
+      var selected = $label.hasClass('selected');
+
+      // remove previous selected
+      this.$('.selected').removeClass('selected');
+
+      // add active class
+      $label.addClass('selected');
+
+      // allow null
+      if (this.get('allow_null') && selected) {
+        $label.removeClass('selected');
+        $el.prop('checked', false).trigger('change');
+      }
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-time-picker.js":
+/*!********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-time-picker.js ***!
+  \********************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.models.DatePickerField.extend({
+    type: 'time_picker',
+    $control: function () {
+      return this.$('.acf-time-picker');
+    },
+    initialize: function () {
+      // vars
+      var $input = this.$input();
+      var $inputText = this.$inputText();
+
+      // args
+      var args = {
+        timeFormat: this.get('time_format'),
+        altField: $input,
+        altFieldTimeOnly: false,
+        altTimeFormat: 'HH:mm:ss',
+        showButtonPanel: true,
+        controlType: 'select',
+        oneLine: true,
+        closeText: acf.get('dateTimePickerL10n').selectText,
+        timeOnly: true
+      };
+
+      // add custom 'Close = Select' functionality
+      args.onClose = function (value, dp_instance, t_instance) {
+        // vars
+        var $close = dp_instance.dpDiv.find('.ui-datepicker-close');
+
+        // if clicking close button
+        if (!value && $close.is(':hover')) {
+          t_instance._updateDateTime();
+        }
+      };
+
+      // filter
+      args = acf.applyFilters('time_picker_args', args, this);
+
+      // add date time picker
+      acf.newTimePicker($inputText, args);
+
+      // action
+      acf.doAction('time_picker_init', $inputText, args, this);
+    }
+  });
+  acf.registerFieldType(Field);
+
+  // add
+  acf.newTimePicker = function ($input, args) {
+    // bail early if no datepicker library
+    if (typeof $.timepicker === 'undefined') {
+      return false;
+    }
+
+    // defaults
+    args = args || {};
+
+    // initialize
+    $input.timepicker(args);
+
+    // wrap the datepicker (only if it hasn't already been wrapped)
+    if ($('body > #ui-datepicker-div').exists()) {
+      $('body > #ui-datepicker-div').wrap('<div class="acf-ui-datepicker" />');
+    }
+  };
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-true-false.js":
+/*!*******************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-true-false.js ***!
+  \*******************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'true_false',
+    events: {
+      'change .acf-switch-input': 'onChange',
+      'focus .acf-switch-input': 'onFocus',
+      'blur .acf-switch-input': 'onBlur',
+      'keypress .acf-switch-input': 'onKeypress'
+    },
+    $input: function () {
+      return this.$('input[type="checkbox"]');
+    },
+    $switch: function () {
+      return this.$('.acf-switch');
+    },
+    getValue: function () {
+      return this.$input().prop('checked') ? 1 : 0;
+    },
+    initialize: function () {
+      this.render();
+    },
+    render: function () {
+      // vars
+      var $switch = this.$switch();
+
+      // bail early if no $switch
+      if (!$switch.length) return;
+
+      // vars
+      var $on = $switch.children('.acf-switch-on');
+      var $off = $switch.children('.acf-switch-off');
+      var width = Math.max($on.width(), $off.width());
+
+      // bail early if no width
+      if (!width) return;
+
+      // set widths
+      $on.css('min-width', width);
+      $off.css('min-width', width);
+    },
+    switchOn: function () {
+      this.$input().prop('checked', true);
+      this.$switch().addClass('-on');
+    },
+    switchOff: function () {
+      this.$input().prop('checked', false);
+      this.$switch().removeClass('-on');
+    },
+    onChange: function (e, $el) {
+      if ($el.prop('checked')) {
+        this.switchOn();
+      } else {
+        this.switchOff();
+      }
+    },
+    onFocus: function (e, $el) {
+      this.$switch().addClass('-focus');
+    },
+    onBlur: function (e, $el) {
+      this.$switch().removeClass('-focus');
+    },
+    onKeypress: function (e, $el) {
+      // left
+      if (e.keyCode === 37) {
+        return this.switchOff();
+      }
+
+      // right
+      if (e.keyCode === 39) {
+        return this.switchOn();
+      }
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-url.js":
+/*!************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-url.js ***!
+  \************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'url',
+    events: {
+      'keyup input[type="url"]': 'onkeyup'
+    },
+    $control: function () {
+      return this.$('.acf-input-wrap');
+    },
+    $input: function () {
+      return this.$('input[type="url"]');
+    },
+    initialize: function () {
+      this.render();
+    },
+    isValid: function () {
+      // vars
+      var val = this.val();
+
+      // bail early if no val
+      if (!val) {
+        return false;
+      }
+
+      // url
+      if (val.indexOf('://') !== -1) {
+        return true;
+      }
+
+      // protocol relative url
+      if (val.indexOf('//') === 0) {
+        return true;
+      }
+
+      // return
+      return false;
+    },
+    render: function () {
+      // add class
+      if (this.isValid()) {
+        this.$control().addClass('-valid');
+      } else {
+        this.$control().removeClass('-valid');
+      }
+    },
+    onkeyup: function (e, $el) {
+      this.render();
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-user.js":
+/*!*************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-user.js ***!
+  \*************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.models.SelectField.extend({
+    type: 'user'
+  });
+  acf.registerFieldType(Field);
+  acf.addFilter('select2_ajax_data', function (data, args, $input, field, select2) {
+    if (!field) {
+      return data;
+    }
+    const query_nonce = field.get('queryNonce');
+    if (query_nonce && query_nonce.length) {
+      data.user_query_nonce = query_nonce;
+    }
+    return data;
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-wysiwyg.js":
+/*!****************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field-wysiwyg.js ***!
+  \****************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Field = acf.Field.extend({
+    type: 'wysiwyg',
+    wait: 'load',
+    events: {
+      'mousedown .acf-editor-wrap.delay': 'onMousedown',
+      unmountField: 'disableEditor',
+      remountField: 'enableEditor',
+      removeField: 'disableEditor'
+    },
+    $control: function () {
+      return this.$('.acf-editor-wrap');
+    },
+    $input: function () {
+      return this.$('textarea');
+    },
+    getMode: function () {
+      return this.$control().hasClass('tmce-active') ? 'visual' : 'text';
+    },
+    initialize: function () {
+      // initializeEditor if no delay
+      if (!this.$control().hasClass('delay')) {
+        this.initializeEditor();
+      }
+    },
+    initializeEditor: function () {
+      // vars
+      var $wrap = this.$control();
+      var $textarea = this.$input();
+      var args = {
+        tinymce: true,
+        quicktags: true,
+        toolbar: this.get('toolbar'),
+        mode: this.getMode(),
+        field: this
+      };
+
+      // generate new id
+      var oldId = $textarea.attr('id');
+      var newId = acf.uniqueId('acf-editor-');
+
+      // Backup textarea data.
+      var inputData = $textarea.data();
+      var inputVal = $textarea.val();
+
+      // rename
+      acf.rename({
+        target: $wrap,
+        search: oldId,
+        replace: newId,
+        destructive: true
+      });
+
+      // update id
+      this.set('id', newId, true);
+
+      // apply data to new textarea (acf.rename creates a new textarea element due to destructive mode)
+      // fixes bug where conditional logic "disabled" is lost during "screen_check"
+      this.$input().data(inputData).val(inputVal);
+
+      // initialize
+      acf.tinymce.initialize(newId, args);
+    },
+    onMousedown: function (e) {
+      // prevent default
+      e.preventDefault();
+
+      // remove delay class
+      var $wrap = this.$control();
+      $wrap.removeClass('delay');
+      $wrap.find('.acf-editor-toolbar').remove();
+
+      // initialize
+      this.initializeEditor();
+    },
+    enableEditor: function () {
+      if (this.getMode() == 'visual') {
+        acf.tinymce.enable(this.get('id'));
+      }
+    },
+    disableEditor: function () {
+      acf.tinymce.destroy(this.get('id'));
+    }
+  });
+  acf.registerFieldType(Field);
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field.js":
+/*!********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-field.js ***!
+  \********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  // vars
+  var storage = [];
+
+  /**
+   *  acf.Field
+   *
+   *  description
+   *
+   *  @date	23/3/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.Field = acf.Model.extend({
+    // field type
+    type: '',
+    // class used to avoid nested event triggers
+    eventScope: '.acf-field',
+    // initialize events on 'ready'
+    wait: 'ready',
+    /**
+     *  setup
+     *
+     *  Called during the constructor function to setup this field ready for initialization
+     *
+     *  @date	8/5/18
+     *  @since	5.6.9
+     *
+     *  @param	jQuery $field The field element.
+     *  @return	void
+     */
+
+    setup: function ($field) {
+      // set $el
+      this.$el = $field;
+
+      // inherit $field data
+      this.inherit($field);
+
+      // inherit controll data
+      this.inherit(this.$control());
+    },
+    /**
+     *  val
+     *
+     *  Sets or returns the field's value
+     *
+     *  @date	8/5/18
+     *  @since	5.6.9
+     *
+     *  @param	mixed val Optional. The value to set
+     *  @return	mixed
+     */
+
+    val: function (val) {
+      // Set.
+      if (val !== undefined) {
+        return this.setValue(val);
+
+        // Get.
+      } else {
+        return this.prop('disabled') ? null : this.getValue();
+      }
+    },
+    /**
+     *  getValue
+     *
+     *  returns the field's value
+     *
+     *  @date	8/5/18
+     *  @since	5.6.9
+     *
+     *  @param	void
+     *  @return	mixed
+     */
+
+    getValue: function () {
+      return this.$input().val();
+    },
+    /**
+     *  setValue
+     *
+     *  sets the field's value and returns true if changed
+     *
+     *  @date	8/5/18
+     *  @since	5.6.9
+     *
+     *  @param	mixed val
+     *  @return	boolean. True if changed.
+     */
+
+    setValue: function (val) {
+      return acf.val(this.$input(), val);
+    },
+    /**
+     *  __
+     *
+     *  i18n helper to be removed
+     *
+     *  @date	8/5/18
+     *  @since	5.6.9
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    __: function (string) {
+      return acf._e(this.type, string);
+    },
+    /**
+     *  $control
+     *
+     *  returns the control jQuery element used for inheriting data. Uses this.control setting.
+     *
+     *  @date	8/5/18
+     *  @since	5.6.9
+     *
+     *  @param	void
+     *  @return	jQuery
+     */
+
+    $control: function () {
+      return false;
+    },
+    /**
+     *  $input
+     *
+     *  returns the input jQuery element used for saving values. Uses this.input setting.
+     *
+     *  @date	8/5/18
+     *  @since	5.6.9
+     *
+     *  @param	void
+     *  @return	jQuery
+     */
+
+    $input: function () {
+      return this.$('[name]:first');
+    },
+    /**
+     *  $inputWrap
+     *
+     *  description
+     *
+     *  @date	12/5/18
+     *  @since	5.6.9
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    $inputWrap: function () {
+      return this.$('.acf-input:first');
+    },
+    /**
+     *  $inputWrap
+     *
+     *  description
+     *
+     *  @date	12/5/18
+     *  @since	5.6.9
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    $labelWrap: function () {
+      return this.$('.acf-label:first');
+    },
+    /**
+     *  getInputName
+     *
+     *  Returns the field's input name
+     *
+     *  @date	8/5/18
+     *  @since	5.6.9
+     *
+     *  @param	void
+     *  @return	string
+     */
+
+    getInputName: function () {
+      return this.$input().attr('name') || '';
+    },
+    /**
+     *  parent
+     *
+     *  returns the field's parent field or false on failure.
+     *
+     *  @date	8/5/18
+     *  @since	5.6.9
+     *
+     *  @param	void
+     *  @return	object|false
+     */
+
+    parent: function () {
+      // vars
+      var parents = this.parents();
+
+      // return
+      return parents.length ? parents[0] : false;
+    },
+    /**
+     *  parents
+     *
+     *  description
+     *
+     *  @date	9/7/18
+     *  @since	5.6.9
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    parents: function () {
+      // vars
+      var $parents = this.$el.parents('.acf-field');
+
+      // convert
+      var parents = acf.getFields($parents);
+
+      // return
+      return parents;
+    },
+    show: function (lockKey, context) {
+      // show field and store result
+      var changed = acf.show(this.$el, lockKey);
+
+      // do action if visibility has changed
+      if (changed) {
+        this.prop('hidden', false);
+        acf.doAction('show_field', this, context);
+      }
+
+      // return
+      return changed;
+    },
+    hide: function (lockKey, context) {
+      // hide field and store result
+      var changed = acf.hide(this.$el, lockKey);
+
+      // do action if visibility has changed
+      if (changed) {
+        this.prop('hidden', true);
+        acf.doAction('hide_field', this, context);
+      }
+
+      // return
+      return changed;
+    },
+    enable: function (lockKey, context) {
+      // enable field and store result
+      var changed = acf.enable(this.$el, lockKey);
+
+      // do action if disabled has changed
+      if (changed) {
+        this.prop('disabled', false);
+        acf.doAction('enable_field', this, context);
+      }
+
+      // return
+      return changed;
+    },
+    disable: function (lockKey, context) {
+      // disabled field and store result
+      var changed = acf.disable(this.$el, lockKey);
+
+      // do action if disabled has changed
+      if (changed) {
+        this.prop('disabled', true);
+        acf.doAction('disable_field', this, context);
+      }
+
+      // return
+      return changed;
+    },
+    showEnable: function (lockKey, context) {
+      // enable
+      this.enable.apply(this, arguments);
+
+      // show and return true if changed
+      return this.show.apply(this, arguments);
+    },
+    hideDisable: function (lockKey, context) {
+      // disable
+      this.disable.apply(this, arguments);
+
+      // hide and return true if changed
+      return this.hide.apply(this, arguments);
+    },
+    showNotice: function (props) {
+      // ensure object
+      if (typeof props !== 'object') {
+        props = {
+          text: props
+        };
+      }
+
+      // remove old notice
+      if (this.notice) {
+        this.notice.remove();
+      }
+
+      // create new notice
+      props.target = this.$inputWrap();
+      this.notice = acf.newNotice(props);
+    },
+    removeNotice: function (timeout) {
+      if (this.notice) {
+        this.notice.away(timeout || 0);
+        this.notice = false;
+      }
+    },
+    showError: function (message) {
+      // add class
+      this.$el.addClass('acf-error');
+
+      // add message
+      if (message !== undefined) {
+        this.showNotice({
+          text: message,
+          type: 'error',
+          dismiss: false
+        });
+      }
+
+      // action
+      acf.doAction('invalid_field', this);
+
+      // add event
+      this.$el.one('focus change', 'input, select, textarea', $.proxy(this.removeError, this));
+    },
+    removeError: function () {
+      // remove class
+      this.$el.removeClass('acf-error');
+
+      // remove notice
+      this.removeNotice(250);
+
+      // action
+      acf.doAction('valid_field', this);
+    },
+    trigger: function (name, args, bubbles) {
+      // allow some events to bubble
+      if (name == 'invalidField') {
+        bubbles = true;
+      }
+
+      // return
+      return acf.Model.prototype.trigger.apply(this, [name, args, bubbles]);
+    }
+  });
+
+  /**
+   *  newField
+   *
+   *  description
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.newField = function ($field) {
+    // vars
+    var type = $field.data('type');
+    var mid = modelId(type);
+    var model = acf.models[mid] || acf.Field;
+
+    // instantiate
+    var field = new model($field);
+
+    // actions
+    acf.doAction('new_field', field);
+
+    // return
+    return field;
+  };
+
+  /**
+   *  mid
+   *
+   *  Calculates the model ID for a field type
+   *
+   *  @date	15/12/17
+   *  @since	5.6.5
+   *
+   *  @param	string type
+   *  @return	string
+   */
+
+  var modelId = function (type) {
+    return acf.strPascalCase(type || '') + 'Field';
+  };
+
+  /**
+   *  registerFieldType
+   *
+   *  description
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.registerFieldType = function (model) {
+    // vars
+    var proto = model.prototype;
+    var type = proto.type;
+    var mid = modelId(type);
+
+    // store model
+    acf.models[mid] = model;
+
+    // store reference
+    storage.push(type);
+  };
+
+  /**
+   *  acf.getFieldType
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.getFieldType = function (type) {
+    var mid = modelId(type);
+    return acf.models[mid] || false;
+  };
+
+  /**
+   *  acf.getFieldTypes
+   *
+   *  description
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.getFieldTypes = function (args) {
+    // defaults
+    args = acf.parseArgs(args, {
+      category: ''
+      // hasValue: true
+    });
+
+    // clonse available types
+    var types = [];
+
+    // loop
+    storage.map(function (type) {
+      // vars
+      var model = acf.getFieldType(type);
+      var proto = model.prototype;
+
+      // check operator
+      if (args.category && proto.category !== args.category) {
+        return;
+      }
+
+      // append
+      types.push(model);
+    });
+
+    // return
+    return types;
+  };
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-fields.js":
+/*!*********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-fields.js ***!
+  \*********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   *  findFields
+   *
+   *  Returns a jQuery selection object of acf fields.
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	object $args {
+   *		Optional. Arguments to find fields.
+   *
+   *		@type string			key			The field's key (data-attribute).
+   *		@type string			name		The field's name (data-attribute).
+   *		@type string			type		The field's type (data-attribute).
+   *		@type string			is			jQuery selector to compare against.
+   *		@type jQuery			parent		jQuery element to search within.
+   *		@type jQuery			sibling		jQuery element to search alongside.
+   *		@type limit				int			The number of fields to find.
+   *		@type suppressFilters	bool		Whether to allow filters to add/remove results. Default behaviour will ignore clone fields.
+   *  }
+   *  @return	jQuery
+   */
+
+  acf.findFields = function (args) {
+    // vars
+    var selector = '.acf-field';
+    var $fields = false;
+
+    // args
+    args = acf.parseArgs(args, {
+      key: '',
+      name: '',
+      type: '',
+      is: '',
+      parent: false,
+      sibling: false,
+      limit: false,
+      visible: false,
+      suppressFilters: false,
+      excludeSubFields: false
+    });
+
+    // filter args
+    if (!args.suppressFilters) {
+      args = acf.applyFilters('find_fields_args', args);
+    }
+
+    // key
+    if (args.key) {
+      selector += '[data-key="' + args.key + '"]';
+    }
+
+    // type
+    if (args.type) {
+      selector += '[data-type="' + args.type + '"]';
+    }
+
+    // name
+    if (args.name) {
+      selector += '[data-name="' + args.name + '"]';
+    }
+
+    // is
+    if (args.is) {
+      selector += args.is;
+    }
+
+    // visibility
+    if (args.visible) {
+      selector += ':visible';
+    }
+    if (!args.suppressFilters) {
+      selector = acf.applyFilters('find_fields_selector', selector, args);
+    }
+
+    // query
+    if (args.parent) {
+      $fields = args.parent.find(selector);
+      // exclude sub fields if required (only if a parent is provided)
+      if (args.excludeSubFields) {
+        $fields = $fields.not(args.parent.find('.acf-is-subfields .acf-field'));
+      }
+    } else if (args.sibling) {
+      $fields = args.sibling.siblings(selector);
+    } else {
+      $fields = $(selector);
+    }
+
+    // filter
+    if (!args.suppressFilters) {
+      $fields = $fields.not('.acf-clone .acf-field');
+      $fields = acf.applyFilters('find_fields', $fields);
+    }
+
+    // limit
+    if (args.limit) {
+      $fields = $fields.slice(0, args.limit);
+    }
+
+    // return
+    return $fields;
+  };
+
+  /**
+   *  findField
+   *
+   *  Finds a specific field with jQuery
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	string key 		The field's key.
+   *  @param	jQuery $parent	jQuery element to search within.
+   *  @return	jQuery
+   */
+
+  acf.findField = function (key, $parent) {
+    return acf.findFields({
+      key: key,
+      limit: 1,
+      parent: $parent,
+      suppressFilters: true
+    });
+  };
+
+  /**
+   *  getField
+   *
+   *  Returns a field instance
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	jQuery|string $field	jQuery element or field key.
+   *  @return	object
+   */
+
+  acf.getField = function ($field) {
+    // allow jQuery
+    if ($field instanceof jQuery) {
+      // find fields
+    } else {
+      $field = acf.findField($field);
+    }
+
+    // instantiate
+    var field = $field.data('acf');
+    if (!field) {
+      field = acf.newField($field);
+    }
+
+    // return
+    return field;
+  };
+
+  /**
+   *  getFields
+   *
+   *  Returns multiple field instances
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	jQuery|object $fields	jQuery elements or query args.
+   *  @return	array
+   */
+
+  acf.getFields = function ($fields) {
+    // allow jQuery
+    if ($fields instanceof jQuery) {
+      // find fields
+    } else {
+      $fields = acf.findFields($fields);
+    }
+
+    // loop
+    var fields = [];
+    $fields.each(function () {
+      var field = acf.getField($(this));
+      fields.push(field);
+    });
+
+    // return
+    return fields;
+  };
+
+  /**
+   *  findClosestField
+   *
+   *  Returns the closest jQuery field element
+   *
+   *  @date	9/4/18
+   *  @since	5.6.9
+   *
+   *  @param	jQuery $el
+   *  @return	jQuery
+   */
+
+  acf.findClosestField = function ($el) {
+    return $el.closest('.acf-field');
+  };
+
+  /**
+   *  getClosestField
+   *
+   *  Returns the closest field instance
+   *
+   *  @date	22/1/18
+   *  @since	5.6.5
+   *
+   *  @param	jQuery $el
+   *  @return	object
+   */
+
+  acf.getClosestField = function ($el) {
+    var $field = acf.findClosestField($el);
+    return this.getField($field);
+  };
+
+  /**
+   *  addGlobalFieldAction
+   *
+   *  Sets up callback logic for global field actions
+   *
+   *  @date	15/6/18
+   *  @since	5.6.9
+   *
+   *  @param	string action
+   *  @return	void
+   */
+
+  var addGlobalFieldAction = function (action) {
+    // vars
+    var globalAction = action;
+    var pluralAction = action + '_fields'; // ready_fields
+    var singleAction = action + '_field'; // ready_field
+
+    // global action
+    var globalCallback = function ($el /*, arg1, arg2, etc*/) {
+      //console.log( action, arguments );
+
+      // get args [$el, ...]
+      var args = acf.arrayArgs(arguments);
+      var extraArgs = args.slice(1);
+
+      // find fields
+      var fields = acf.getFields({
+        parent: $el
+      });
+
+      // check
+      if (fields.length) {
+        // pluralAction
+        var pluralArgs = [pluralAction, fields].concat(extraArgs);
+        acf.doAction.apply(null, pluralArgs);
+      }
+    };
+
+    // plural action
+    var pluralCallback = function (fields /*, arg1, arg2, etc*/) {
+      //console.log( pluralAction, arguments );
+
+      // get args [fields, ...]
+      var args = acf.arrayArgs(arguments);
+      var extraArgs = args.slice(1);
+
+      // loop
+      fields.map(function (field, i) {
+        //setTimeout(function(){
+        // singleAction
+        var singleArgs = [singleAction, field].concat(extraArgs);
+        acf.doAction.apply(null, singleArgs);
+        //}, i * 100);
+      });
+    };
+
+    // add actions
+    acf.addAction(globalAction, globalCallback);
+    acf.addAction(pluralAction, pluralCallback);
+
+    // also add single action
+    addSingleFieldAction(action);
+  };
+
+  /**
+   *  addSingleFieldAction
+   *
+   *  Sets up callback logic for single field actions
+   *
+   *  @date	15/6/18
+   *  @since	5.6.9
+   *
+   *  @param	string action
+   *  @return	void
+   */
+
+  var addSingleFieldAction = function (action) {
+    // vars
+    var singleAction = action + '_field'; // ready_field
+    var singleEvent = action + 'Field'; // readyField
+
+    // single action
+    var singleCallback = function (field /*, arg1, arg2, etc*/) {
+      //console.log( singleAction, arguments );
+
+      // get args [field, ...]
+      var args = acf.arrayArgs(arguments);
+      var extraArgs = args.slice(1);
+
+      // action variations (ready_field/type=image)
+      var variations = ['type', 'name', 'key'];
+      variations.map(function (variation) {
+        // vars
+        var prefix = '/' + variation + '=' + field.get(variation);
+
+        // singleAction
+        args = [singleAction + prefix, field].concat(extraArgs);
+        acf.doAction.apply(null, args);
+      });
+
+      // event
+      if (singleFieldEvents.indexOf(action) > -1) {
+        field.trigger(singleEvent, extraArgs);
+      }
+    };
+
+    // add actions
+    acf.addAction(singleAction, singleCallback);
+  };
+
+  // vars
+  var globalFieldActions = ['prepare', 'ready', 'load', 'append', 'remove', 'unmount', 'remount', 'sortstart', 'sortstop', 'show', 'hide', 'unload'];
+  var singleFieldActions = ['valid', 'invalid', 'enable', 'disable', 'new', 'duplicate'];
+  var singleFieldEvents = ['remove', 'unmount', 'remount', 'sortstart', 'sortstop', 'show', 'hide', 'unload', 'valid', 'invalid', 'enable', 'disable', 'duplicate'];
+
+  // add
+  globalFieldActions.map(addGlobalFieldAction);
+  singleFieldActions.map(addSingleFieldAction);
+
+  /**
+   *  fieldsEventManager
+   *
+   *  Manages field actions and events
+   *
+   *  @date	15/12/17
+   *  @since	5.6.5
+   *
+   *  @param	void
+   *  @param	void
+   */
+
+  var fieldsEventManager = new acf.Model({
+    id: 'fieldsEventManager',
+    events: {
+      'click .acf-field a[href="#"]': 'onClick',
+      'change .acf-field': 'onChange'
+    },
+    onClick: function (e) {
+      // prevent default of any link with an href of #
+      e.preventDefault();
+    },
+    onChange: function () {
+      // preview hack allows post to save with no title or content
+      $('#_acf_changed').val(1);
+    }
+  });
+  var duplicateFieldsManager = new acf.Model({
+    id: 'duplicateFieldsManager',
+    actions: {
+      duplicate: 'onDuplicate',
+      duplicate_fields: 'onDuplicateFields'
+    },
+    onDuplicate: function ($el, $el2) {
+      var fields = acf.getFields({
+        parent: $el
+      });
+      if (fields.length) {
+        var $fields = acf.findFields({
+          parent: $el2
+        });
+        acf.doAction('duplicate_fields', fields, $fields);
+      }
+    },
+    onDuplicateFields: function (fields, duplicates) {
+      fields.map(function (field, i) {
+        acf.doAction('duplicate_field', field, $(duplicates[i]));
+      });
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-helpers.js":
+/*!**********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-helpers.js ***!
+  \**********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   *  refreshHelper
+   *
+   *  description
+   *
+   *  @date	1/7/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var refreshHelper = new acf.Model({
+    priority: 90,
+    actions: {
+      new_field: 'refresh',
+      show_field: 'refresh',
+      hide_field: 'refresh',
+      remove_field: 'refresh',
+      unmount_field: 'refresh',
+      remount_field: 'refresh'
+    },
+    refresh: function () {
+      acf.refresh();
+    }
+  });
+
+  /**
+   * mountHelper
+   *
+   * Adds compatiblity for the 'unmount' and 'remount' actions added in 5.8.0
+   *
+   * @date	7/3/19
+   * @since	5.7.14
+   *
+   * @param	void
+   * @return	void
+   */
+  var mountHelper = new acf.Model({
+    priority: 1,
+    actions: {
+      sortstart: 'onSortstart',
+      sortstop: 'onSortstop'
+    },
+    onSortstart: function ($item) {
+      acf.doAction('unmount', $item);
+    },
+    onSortstop: function ($item) {
+      acf.doAction('remount', $item);
+    }
+  });
+
+  /**
+   *  sortableHelper
+   *
+   *  Adds compatibility for sorting a <tr> element
+   *
+   *  @date	6/3/18
+   *  @since	5.6.9
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var sortableHelper = new acf.Model({
+    actions: {
+      sortstart: 'onSortstart'
+    },
+    onSortstart: function ($item, $placeholder) {
+      // if $item is a tr, apply some css to the elements
+      if ($item.is('tr')) {
+        // replace $placeholder children with a single td
+        // fixes "width calculation issues" due to conditional logic hiding some children
+        $placeholder.html('<td style="padding:0;" colspan="' + $placeholder.children().length + '"></td>');
+
+        // add helper class to remove absolute positioning
+        $item.addClass('acf-sortable-tr-helper');
+
+        // set fixed widths for children
+        $item.children().each(function () {
+          $(this).width($(this).width());
+        });
+
+        // mimic height
+        $placeholder.height($item.height() + 'px');
+
+        // remove class
+        $item.removeClass('acf-sortable-tr-helper');
+      }
+    }
+  });
+
+  /**
+   *  duplicateHelper
+   *
+   *  Fixes browser bugs when duplicating an element
+   *
+   *  @date	6/3/18
+   *  @since	5.6.9
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var duplicateHelper = new acf.Model({
+    actions: {
+      after_duplicate: 'onAfterDuplicate'
+    },
+    onAfterDuplicate: function ($el, $el2) {
+      // get original values
+      var vals = [];
+      $el.find('select').each(function (i) {
+        vals.push($(this).val());
+      });
+
+      // set duplicate values
+      $el2.find('select').each(function (i) {
+        $(this).val(vals[i]);
+      });
+    }
+  });
+
+  /**
+   *  tableHelper
+   *
+   *  description
+   *
+   *  @date	6/3/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var tableHelper = new acf.Model({
+    id: 'tableHelper',
+    priority: 20,
+    actions: {
+      refresh: 'renderTables'
+    },
+    renderTables: function ($el) {
+      // loop
+      var self = this;
+      $('.acf-table:visible').each(function () {
+        self.renderTable($(this));
+      });
+    },
+    renderTable: function ($table) {
+      // vars
+      var $ths = $table.find('> thead > tr:visible > th[data-key]');
+      var $tds = $table.find('> tbody > tr:visible > td[data-key]');
+
+      // bail early if no thead
+      if (!$ths.length || !$tds.length) {
+        return false;
+      }
+
+      // visiblity
+      $ths.each(function (i) {
+        // vars
+        var $th = $(this);
+        var key = $th.data('key');
+        var $cells = $tds.filter('[data-key="' + key + '"]');
+        var $hidden = $cells.filter('.acf-hidden');
+
+        // always remove empty and allow cells to be hidden
+        $cells.removeClass('acf-empty');
+
+        // hide $th if all cells are hidden
+        if ($cells.length === $hidden.length) {
+          acf.hide($th);
+
+          // force all hidden cells to appear empty
+        } else {
+          acf.show($th);
+          $hidden.addClass('acf-empty');
+        }
+      });
+
+      // clear width
+      $ths.css('width', 'auto');
+
+      // get visible
+      $ths = $ths.not('.acf-hidden');
+
+      // vars
+      var availableWidth = 100;
+      var colspan = $ths.length;
+
+      // set custom widths first
+      var $fixedWidths = $ths.filter('[data-width]');
+      $fixedWidths.each(function () {
+        var width = $(this).data('width');
+        $(this).css('width', width + '%');
+        availableWidth -= width;
+      });
+
+      // set auto widths
+      var $auoWidths = $ths.not('[data-width]');
+      if ($auoWidths.length) {
+        var width = availableWidth / $auoWidths.length;
+        $auoWidths.css('width', width + '%');
+        availableWidth = 0;
+      }
+
+      // avoid stretching issue
+      if (availableWidth > 0) {
+        $ths.last().css('width', 'auto');
+      }
+
+      // update colspan on collapsed
+      $tds.filter('.-collapsed-target').each(function () {
+        // vars
+        var $td = $(this);
+
+        // check if collapsed
+        if ($td.parent().hasClass('-collapsed')) {
+          $td.attr('colspan', $ths.length);
+        } else {
+          $td.removeAttr('colspan');
+        }
+      });
+    }
+  });
+
+  /**
+   *  fieldsHelper
+   *
+   *  description
+   *
+   *  @date	6/3/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var fieldsHelper = new acf.Model({
+    id: 'fieldsHelper',
+    priority: 30,
+    actions: {
+      refresh: 'renderGroups'
+    },
+    renderGroups: function () {
+      // loop
+      var self = this;
+      $('.acf-fields:visible').each(function () {
+        self.renderGroup($(this));
+      });
+    },
+    renderGroup: function ($el) {
+      // vars
+      var top = 0;
+      var height = 0;
+      var $row = $();
+
+      // get fields
+      var $fields = $el.children('.acf-field[data-width]:visible');
+
+      // bail early if no fields
+      if (!$fields.length) {
+        return false;
+      }
+
+      // bail early if is .-left
+      if ($el.hasClass('-left')) {
+        $fields.removeAttr('data-width');
+        $fields.css('width', 'auto');
+        return false;
+      }
+
+      // reset fields
+      $fields.removeClass('-r0 -c0').css({
+        'min-height': 0
+      });
+
+      // loop
+      $fields.each(function (i) {
+        // vars
+        var $field = $(this);
+        var position = $field.position();
+        var thisTop = Math.ceil(position.top);
+        var thisLeft = Math.ceil(position.left);
+
+        // detect change in row
+        if ($row.length && thisTop > top) {
+          // set previous heights
+          $row.css({
+            'min-height': height + 'px'
+          });
+
+          // update position due to change in row above
+          position = $field.position();
+          thisTop = Math.ceil(position.top);
+          thisLeft = Math.ceil(position.left);
+
+          // reset vars
+          top = 0;
+          height = 0;
+          $row = $();
+        }
+
+        // rtl
+        if (acf.get('rtl')) {
+          thisLeft = Math.ceil($field.parent().width() - (position.left + $field.outerWidth()));
+        }
+
+        // add classes
+        if (thisTop == 0) {
+          $field.addClass('-r0');
+        } else if (thisLeft == 0) {
+          $field.addClass('-c0');
+        }
+
+        // get height after class change
+        // - add 1 for subpixel rendering
+        var thisHeight = Math.ceil($field.outerHeight()) + 1;
+
+        // set height
+        height = Math.max(height, thisHeight);
+
+        // set y
+        top = Math.max(top, thisTop);
+
+        // append
+        $row = $row.add($field);
+      });
+
+      // clean up
+      if ($row.length) {
+        $row.css({
+          'min-height': height + 'px'
+        });
+      }
+    }
+  });
+
+  /**
+   * Adds a body class when holding down the "shift" key.
+   *
+   * @date	06/05/2020
+   * @since	5.9.0
+   */
+  var bodyClassShiftHelper = new acf.Model({
+    id: 'bodyClassShiftHelper',
+    events: {
+      keydown: 'onKeyDown',
+      keyup: 'onKeyUp'
+    },
+    isShiftKey: function (e) {
+      return e.keyCode === 16;
+    },
+    onKeyDown: function (e) {
+      if (this.isShiftKey(e)) {
+        $('body').addClass('acf-keydown-shift');
+      }
+    },
+    onKeyUp: function (e) {
+      if (this.isShiftKey(e)) {
+        $('body').removeClass('acf-keydown-shift');
+      }
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-media.js":
+/*!********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-media.js ***!
+  \********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   *  acf.newMediaPopup
+   *
+   *  description
+   *
+   *  @date	10/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.newMediaPopup = function (args) {
+    // args
+    var popup = null;
+    var args = acf.parseArgs(args, {
+      mode: 'select',
+      // 'select', 'edit'
+      title: '',
+      // 'Upload Image'
+      button: '',
+      // 'Select Image'
+      type: '',
+      // 'image', ''
+      field: false,
+      // field instance
+      allowedTypes: '',
+      // '.jpg, .png, etc'
+      library: 'all',
+      // 'all', 'uploadedTo'
+      multiple: false,
+      // false, true, 'add'
+      attachment: 0,
+      // the attachment to edit
+      autoOpen: true,
+      // open the popup automatically
+      open: function () {},
+      // callback after close
+      select: function () {},
+      // callback after select
+      close: function () {} // callback after close
+    });
+
+    // initialize
+    if (args.mode == 'edit') {
+      popup = new acf.models.EditMediaPopup(args);
+    } else {
+      popup = new acf.models.SelectMediaPopup(args);
+    }
+
+    // open popup (allow frame customization before opening)
+    if (args.autoOpen) {
+      setTimeout(function () {
+        popup.open();
+      }, 1);
+    }
+
+    // action
+    acf.doAction('new_media_popup', popup);
+
+    // return
+    return popup;
+  };
+
+  /**
+   *  getPostID
+   *
+   *  description
+   *
+   *  @date	10/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var getPostID = function () {
+    var postID = acf.get('post_id');
+    return acf.isNumeric(postID) ? postID : 0;
+  };
+
+  /**
+   *  acf.getMimeTypes
+   *
+   *  description
+   *
+   *  @date	11/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.getMimeTypes = function () {
+    return this.get('mimeTypes');
+  };
+  acf.getMimeType = function (name) {
+    // vars
+    var allTypes = acf.getMimeTypes();
+
+    // search
+    if (allTypes[name] !== undefined) {
+      return allTypes[name];
+    }
+
+    // some types contain a mixed key such as "jpg|jpeg|jpe"
+    for (var key in allTypes) {
+      if (key.indexOf(name) !== -1) {
+        return allTypes[key];
+      }
+    }
+
+    // return
+    return false;
+  };
+
+  /**
+   *  MediaPopup
+   *
+   *  description
+   *
+   *  @date	10/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var MediaPopup = acf.Model.extend({
+    id: 'MediaPopup',
+    data: {},
+    defaults: {},
+    frame: false,
+    setup: function (props) {
+      $.extend(this.data, props);
+    },
+    initialize: function () {
+      // vars
+      var options = this.getFrameOptions();
+
+      // add states
+      this.addFrameStates(options);
+
+      // create frame
+      var frame = wp.media(options);
+
+      // add args reference
+      frame.acf = this;
+
+      // add events
+      this.addFrameEvents(frame, options);
+
+      // strore frame
+      this.frame = frame;
+    },
+    open: function () {
+      this.frame.open();
+    },
+    close: function () {
+      this.frame.close();
+    },
+    remove: function () {
+      this.frame.detach();
+      this.frame.remove();
+    },
+    getFrameOptions: function () {
+      // vars
+      var options = {
+        title: this.get('title'),
+        multiple: this.get('multiple'),
+        library: {},
+        states: []
+      };
+
+      // type
+      if (this.get('type')) {
+        options.library.type = this.get('type');
+      }
+
+      // type
+      if (this.get('library') === 'uploadedTo') {
+        options.library.uploadedTo = getPostID();
+      }
+
+      // attachment
+      if (this.get('attachment')) {
+        options.library.post__in = [this.get('attachment')];
+      }
+
+      // button
+      if (this.get('button')) {
+        options.button = {
+          text: this.get('button')
+        };
+      }
+
+      // return
+      return options;
+    },
+    addFrameStates: function (options) {
+      // create query
+      var Query = wp.media.query(options.library);
+
+      // add _acfuploader
+      // this is super wack!
+      // if you add _acfuploader to the options.library args, new uploads will not be added to the library view.
+      // this has been traced back to the wp.media.model.Query initialize function (which can't be overriden)
+      // Adding any custom args will cause the Attahcments to not observe the uploader queue
+      // To bypass this security issue, we add in the args AFTER the Query has been initialized
+      // options.library._acfuploader = settings.field;
+      if (this.get('field') && acf.isset(Query, 'mirroring', 'args')) {
+        Query.mirroring.args._acfuploader = this.get('field');
+      }
+
+      // add states
+      options.states.push(
+      // main state
+      new wp.media.controller.Library({
+        library: Query,
+        multiple: this.get('multiple'),
+        title: this.get('title'),
+        priority: 20,
+        filterable: 'all',
+        editable: true,
+        allowLocalEdits: true
+      }));
+
+      // edit image functionality (added in WP 3.9)
+      if (acf.isset(wp, 'media', 'controller', 'EditImage')) {
+        options.states.push(new wp.media.controller.EditImage());
+      }
+    },
+    addFrameEvents: function (frame, options) {
+      // log all events
+      //frame.on('all', function( e ) {
+      //	console.log( 'frame all: %o', e );
+      //});
+
+      // add class
+      frame.on('open', function () {
+        this.$el.closest('.media-modal').addClass('acf-media-modal -' + this.acf.get('mode'));
+      }, frame);
+
+      // edit image view
+      // source: media-views.js:2410 editImageContent()
+      frame.on('content:render:edit-image', function () {
+        var image = this.state().get('image');
+        var view = new wp.media.view.EditImage({
+          model: image,
+          controller: this
+        }).render();
+        this.content.set(view);
+
+        // after creating the wrapper view, load the actual editor via an ajax call
+        view.loadEditor();
+      }, frame);
+
+      // update toolbar button
+      //frame.on( 'toolbar:create:select', function( toolbar ) {
+      //	toolbar.view = new wp.media.view.Toolbar.Select({
+      //		text: frame.options._button,
+      //		controller: this
+      //	});
+      //}, frame );
+
+      // on select
+      frame.on('select', function () {
+        // vars
+        var selection = frame.state().get('selection');
+
+        // if selecting images
+        if (selection) {
+          // loop
+          selection.each(function (attachment, i) {
+            frame.acf.get('select').apply(frame.acf, [attachment, i]);
+          });
+        }
+      });
+
+      // on close
+      frame.on('close', function () {
+        // callback and remove
+        setTimeout(function () {
+          frame.acf.get('close').apply(frame.acf);
+          frame.acf.remove();
+        }, 1);
+      });
+    }
+  });
+
+  /**
+   *  acf.models.SelectMediaPopup
+   *
+   *  description
+   *
+   *  @date	10/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.models.SelectMediaPopup = MediaPopup.extend({
+    id: 'SelectMediaPopup',
+    setup: function (props) {
+      // default button
+      if (!props.button) {
+        props.button = acf._x('Select', 'verb');
+      }
+
+      // parent
+      MediaPopup.prototype.setup.apply(this, arguments);
+    },
+    addFrameEvents: function (frame, options) {
+      // plupload
+      // adds _acfuploader param to validate uploads
+      if (acf.isset(_wpPluploadSettings, 'defaults', 'multipart_params')) {
+        // add _acfuploader so that Uploader will inherit
+        _wpPluploadSettings.defaults.multipart_params._acfuploader = this.get('field');
+
+        // remove acf_field so future Uploaders won't inherit
+        frame.on('open', function () {
+          delete _wpPluploadSettings.defaults.multipart_params._acfuploader;
+        });
+      }
+
+      // browse
+      frame.on('content:activate:browse', function () {
+        // vars
+        var toolbar = false;
+
+        // populate above vars making sure to allow for failure
+        // perhaps toolbar does not exist because the frame open is Upload Files
+        try {
+          toolbar = frame.content.get().toolbar;
+        } catch (e) {
+          console.log(e);
+          return;
+        }
+
+        // callback
+        frame.acf.customizeFilters.apply(frame.acf, [toolbar]);
+      });
+
+      // parent
+      MediaPopup.prototype.addFrameEvents.apply(this, arguments);
+    },
+    customizeFilters: function (toolbar) {
+      // vars
+      var filters = toolbar.get('filters');
+
+      // image
+      if (this.get('type') == 'image') {
+        // update all
+        filters.filters.all.text = acf.__('All images');
+
+        // remove some filters
+        delete filters.filters.audio;
+        delete filters.filters.video;
+        delete filters.filters.image;
+
+        // update all filters to show images
+        $.each(filters.filters, function (i, filter) {
+          filter.props.type = filter.props.type || 'image';
+        });
+      }
+
+      // specific types
+      if (this.get('allowedTypes')) {
+        // convert ".jpg, .png" into ["jpg", "png"]
+        var allowedTypes = this.get('allowedTypes').split(' ').join('').split('.').join('').split(',');
+
+        // loop
+        allowedTypes.map(function (name) {
+          // get type
+          var mimeType = acf.getMimeType(name);
+
+          // bail early if no type
+          if (!mimeType) return;
+
+          // create new filter
+          var newFilter = {
+            text: mimeType,
+            props: {
+              status: null,
+              type: mimeType,
+              uploadedTo: null,
+              orderby: 'date',
+              order: 'DESC'
+            },
+            priority: 20
+          };
+
+          // append
+          filters.filters[mimeType] = newFilter;
+        });
+      }
+
+      // uploaded to post
+      if (this.get('library') === 'uploadedTo') {
+        // vars
+        var uploadedTo = this.frame.options.library.uploadedTo;
+
+        // remove some filters
+        delete filters.filters.unattached;
+        delete filters.filters.uploaded;
+
+        // add uploadedTo to filters
+        $.each(filters.filters, function (i, filter) {
+          filter.text += ' (' + acf.__('Uploaded to this post') + ')';
+          filter.props.uploadedTo = uploadedTo;
+        });
+      }
+
+      // add _acfuploader to filters
+      var field = this.get('field');
+      $.each(filters.filters, function (k, filter) {
+        filter.props._acfuploader = field;
+      });
+
+      // add _acfuplaoder to search
+      var search = toolbar.get('search');
+      search.model.attributes._acfuploader = field;
+
+      // render (custom function added to prototype)
+      if (filters.renderFilters) {
+        filters.renderFilters();
+      }
+    }
+  });
+
+  /**
+   *  acf.models.EditMediaPopup
+   *
+   *  description
+   *
+   *  @date	10/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.models.EditMediaPopup = MediaPopup.extend({
+    id: 'SelectMediaPopup',
+    setup: function (props) {
+      // default button
+      if (!props.button) {
+        props.button = acf._x('Update', 'verb');
+      }
+
+      // parent
+      MediaPopup.prototype.setup.apply(this, arguments);
+    },
+    addFrameEvents: function (frame, options) {
+      // add class
+      frame.on('open', function () {
+        // add class
+        this.$el.closest('.media-modal').addClass('acf-expanded');
+
+        // set to browse
+        if (this.content.mode() != 'browse') {
+          this.content.mode('browse');
+        }
+
+        // set selection
+        var state = this.state();
+        var selection = state.get('selection');
+        var attachment = wp.media.attachment(frame.acf.get('attachment'));
+        selection.add(attachment);
+      }, frame);
+
+      // parent
+      MediaPopup.prototype.addFrameEvents.apply(this, arguments);
+    }
+  });
+
+  /**
+   *  customizePrototypes
+   *
+   *  description
+   *
+   *  @date	11/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var customizePrototypes = new acf.Model({
+    id: 'customizePrototypes',
+    wait: 'ready',
+    initialize: function () {
+      // bail early if no media views
+      if (!acf.isset(window, 'wp', 'media', 'view')) {
+        return;
+      }
+
+      // fix bug where CPT without "editor" does not set post.id setting which then prevents uploadedTo from working
+      var postID = getPostID();
+      if (postID && acf.isset(wp, 'media', 'view', 'settings', 'post')) {
+        wp.media.view.settings.post.id = postID;
+      }
+
+      // customize
+      this.customizeAttachmentsButton();
+      this.customizeAttachmentsRouter();
+      this.customizeAttachmentFilters();
+      this.customizeAttachmentCompat();
+      this.customizeAttachmentLibrary();
+    },
+    customizeAttachmentsButton: function () {
+      // validate
+      if (!acf.isset(wp, 'media', 'view', 'Button')) {
+        return;
+      }
+
+      // Extend
+      var Button = wp.media.view.Button;
+      wp.media.view.Button = Button.extend({
+        // Fix bug where "Select" button appears blank after editing an image.
+        // Do this by simplifying Button initialize function and avoid deleting this.options.
+        initialize: function () {
+          var options = _.defaults(this.options, this.defaults);
+          this.model = new Backbone.Model(options);
+          this.listenTo(this.model, 'change', this.render);
+        }
+      });
+    },
+    customizeAttachmentsRouter: function () {
+      // validate
+      if (!acf.isset(wp, 'media', 'view', 'Router')) {
+        return;
+      }
+
+      // vars
+      var Parent = wp.media.view.Router;
+
+      // extend
+      wp.media.view.Router = Parent.extend({
+        addExpand: function () {
+          // vars
+          var $a = $(['<a href="#" class="acf-expand-details">', '<span class="is-closed"><i class="acf-icon -left -small"></i>' + acf.__('Expand Details') + '</span>', '<span class="is-open"><i class="acf-icon -right -small"></i>' + acf.__('Collapse Details') + '</span>', '</a>'].join(''));
+
+          // add events
+          $a.on('click', function (e) {
+            e.preventDefault();
+            var $div = $(this).closest('.media-modal');
+            if ($div.hasClass('acf-expanded')) {
+              $div.removeClass('acf-expanded');
+            } else {
+              $div.addClass('acf-expanded');
+            }
+          });
+
+          // append
+          this.$el.append($a);
+        },
+        initialize: function () {
+          // initialize
+          Parent.prototype.initialize.apply(this, arguments);
+
+          // add buttons
+          this.addExpand();
+
+          // return
+          return this;
+        }
+      });
+    },
+    customizeAttachmentFilters: function () {
+      // validate
+      if (!acf.isset(wp, 'media', 'view', 'AttachmentFilters', 'All')) {
+        return;
+      }
+
+      // vars
+      var Parent = wp.media.view.AttachmentFilters.All;
+
+      // renderFilters
+      // copied from media-views.js:6939
+      Parent.prototype.renderFilters = function () {
+        // Build `<option>` elements.
+        this.$el.html(_.chain(this.filters).map(function (filter, value) {
+          return {
+            el: $('<option></option>').val(value).html(filter.text)[0],
+            priority: filter.priority || 50
+          };
+        }, this).sortBy('priority').pluck('el').value());
+      };
+    },
+    customizeAttachmentCompat: function () {
+      // validate
+      if (!acf.isset(wp, 'media', 'view', 'AttachmentCompat')) {
+        return;
+      }
+
+      // vars
+      var AttachmentCompat = wp.media.view.AttachmentCompat;
+      var timeout = false;
+
+      // extend
+      wp.media.view.AttachmentCompat = AttachmentCompat.extend({
+        render: function () {
+          // WP bug
+          // When multiple media frames exist on the same page (WP content, WYSIWYG, image, file ),
+          // WP creates multiple instances of this AttachmentCompat view.
+          // Each instance will attempt to render when a new modal is created.
+          // Use a property to avoid this and only render once per instance.
+          if (this.rendered) {
+            return this;
+          }
+
+          // render HTML
+          AttachmentCompat.prototype.render.apply(this, arguments);
+
+          // when uploading, render is called twice.
+          // ignore first render by checking for #acf-form-data element
+          if (!this.$('#acf-form-data').length) {
+            return this;
+          }
+
+          // clear timeout
+          clearTimeout(timeout);
+
+          // setTimeout
+          timeout = setTimeout($.proxy(function () {
+            this.rendered = true;
+            acf.doAction('append', this.$el);
+          }, this), 50);
+
+          // return
+          return this;
+        },
+        save: function (event) {
+          var data = {};
+          if (event) {
+            event.preventDefault();
+          }
+
+          //_.each( this.$el.serializeArray(), function( pair ) {
+          //	data[ pair.name ] = pair.value;
+          //});
+
+          // Serialize data more thoroughly to allow chckbox inputs to save.
+          data = acf.serializeForAjax(this.$el);
+          this.controller.trigger('attachment:compat:waiting', ['waiting']);
+          this.model.saveCompat(data).always(_.bind(this.postSave, this));
+        }
+      });
+    },
+    customizeAttachmentLibrary: function () {
+      // validate
+      if (!acf.isset(wp, 'media', 'view', 'Attachment', 'Library')) {
+        return;
+      }
+
+      // vars
+      var AttachmentLibrary = wp.media.view.Attachment.Library;
+
+      // extend
+      wp.media.view.Attachment.Library = AttachmentLibrary.extend({
+        render: function () {
+          // vars
+          var popup = acf.isget(this, 'controller', 'acf');
+          var attributes = acf.isget(this, 'model', 'attributes');
+
+          // check vars exist to avoid errors
+          if (popup && attributes) {
+            // show errors
+            if (attributes.acf_errors) {
+              this.$el.addClass('acf-disabled');
+            }
+
+            // disable selected
+            var selected = popup.get('selected');
+            if (selected && selected.indexOf(attributes.id) > -1) {
+              this.$el.addClass('acf-selected');
+            }
+          }
+
+          // render
+          return AttachmentLibrary.prototype.render.apply(this, arguments);
+        },
+        /*
+         *  toggleSelection
+         *
+         *  This function is called before an attachment is selected
+         *  A good place to check for errors and prevent the 'select' function from being fired
+         *
+         *  @type	function
+         *  @date	29/09/2016
+         *  @since	5.4.0
+         *
+         *  @param	options (object)
+         *  @return	n/a
+         */
+
+        toggleSelection: function (options) {
+          // vars
+          // source: wp-includes/js/media-views.js:2880
+          var collection = this.collection,
+            selection = this.options.selection,
+            model = this.model,
+            single = selection.single();
+
+          // vars
+          var frame = this.controller;
+          var errors = acf.isget(this, 'model', 'attributes', 'acf_errors');
+          var $sidebar = frame.$el.find('.media-frame-content .media-sidebar');
+
+          // remove previous error
+          $sidebar.children('.acf-selection-error').remove();
+
+          // show attachment details
+          $sidebar.children().removeClass('acf-hidden');
+
+          // add message
+          if (frame && errors) {
+            // vars
+            var filename = acf.isget(this, 'model', 'attributes', 'filename');
+
+            // hide attachment details
+            // Gallery field continues to show previously selected attachment...
+            $sidebar.children().addClass('acf-hidden');
+
+            // append message
+            $sidebar.prepend(['<div class="acf-selection-error">', '<span class="selection-error-label">' + acf.__('Restricted') + '</span>', '<span class="selection-error-filename">' + filename + '</span>', '<span class="selection-error-message">' + errors + '</span>', '</div>'].join(''));
+
+            // reset selection (unselects all attachments)
+            selection.reset();
+
+            // set single (attachment displayed in sidebar)
+            selection.single(model);
+
+            // return and prevent 'select' form being fired
+            return;
+          }
+
+          // return
+          return AttachmentLibrary.prototype.toggleSelection.apply(this, arguments);
+        }
+      });
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-postbox.js":
+/*!**********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-postbox.js ***!
+  \**********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   * postboxManager
+   *
+   * Manages postboxes on the screen.
+   *
+   * @date	25/5/19
+   * @since	5.8.1
+   *
+   * @param	void
+   * @return	void
+   */
+  var postboxManager = new acf.Model({
+    wait: 'prepare',
+    priority: 1,
+    initialize: function () {
+      (acf.get('postboxes') || []).map(acf.newPostbox);
+    }
+  });
+
+  /**
+   *  acf.getPostbox
+   *
+   *  Returns a postbox instance.
+   *
+   *  @date	23/9/18
+   *  @since	5.7.7
+   *
+   *  @param	mixed $el Either a jQuery element or the postbox id.
+   *  @return	object
+   */
+  acf.getPostbox = function ($el) {
+    // allow string parameter
+    if (typeof arguments[0] == 'string') {
+      $el = $('#' + arguments[0]);
+    }
+
+    // return instance
+    return acf.getInstance($el);
+  };
+
+  /**
+   *  acf.getPostboxes
+   *
+   *  Returns an array of postbox instances.
+   *
+   *  @date	23/9/18
+   *  @since	5.7.7
+   *
+   *  @param	void
+   *  @return	array
+   */
+  acf.getPostboxes = function () {
+    return acf.getInstances($('.acf-postbox'));
+  };
+
+  /**
+   *  acf.newPostbox
+   *
+   *  Returns a new postbox instance for the given props.
+   *
+   *  @date	20/9/18
+   *  @since	5.7.6
+   *
+   *  @param	object props The postbox properties.
+   *  @return	object
+   */
+  acf.newPostbox = function (props) {
+    return new acf.models.Postbox(props);
+  };
+
+  /**
+   *  acf.models.Postbox
+   *
+   *  The postbox model.
+   *
+   *  @date	20/9/18
+   *  @since	5.7.6
+   *
+   *  @param	void
+   *  @return	void
+   */
+  acf.models.Postbox = acf.Model.extend({
+    data: {
+      id: '',
+      key: '',
+      style: 'default',
+      label: 'top',
+      edit: ''
+    },
+    setup: function (props) {
+      // compatibilty
+      if (props.editLink) {
+        props.edit = props.editLink;
+      }
+
+      // extend data
+      $.extend(this.data, props);
+
+      // set $el
+      this.$el = this.$postbox();
+    },
+    $postbox: function () {
+      return $('#' + this.get('id'));
+    },
+    $hide: function () {
+      return $('#' + this.get('id') + '-hide');
+    },
+    $hideLabel: function () {
+      return this.$hide().parent();
+    },
+    $hndle: function () {
+      return this.$('> .hndle');
+    },
+    $handleActions: function () {
+      return this.$('> .postbox-header .handle-actions');
+    },
+    $inside: function () {
+      return this.$('> .inside');
+    },
+    isVisible: function () {
+      return this.$el.hasClass('acf-hidden');
+    },
+    isHiddenByScreenOptions: function () {
+      return this.$el.hasClass('hide-if-js') || this.$el.css('display') == 'none';
+    },
+    initialize: function () {
+      // Add default class.
+      this.$el.addClass('acf-postbox');
+
+      // Add field group style class (ignore in block editor).
+      if (acf.get('editor') !== 'block') {
+        var style = this.get('style');
+        if (style !== 'default') {
+          this.$el.addClass(style);
+        }
+      }
+
+      // Add .inside class.
+      this.$inside().addClass('acf-fields').addClass('-' + this.get('label'));
+
+      // Append edit link.
+      var edit = this.get('edit');
+      if (edit) {
+        var html = '<a href="' + edit + '" class="dashicons dashicons-admin-generic acf-hndle-cog acf-js-tooltip" title="' + acf.__('Edit field group') + '"></a>';
+        var $handleActions = this.$handleActions();
+        if ($handleActions.length) {
+          $handleActions.prepend(html);
+        } else {
+          this.$hndle().append(html);
+        }
+      }
+
+      // Show postbox.
+      this.show();
+    },
+    show: function () {
+      // If disabled by screen options, set checked to false and return.
+      if (this.$el.hasClass('hide-if-js')) {
+        this.$hide().prop('checked', false);
+        return;
+      }
+
+      // Show label.
+      this.$hideLabel().show();
+
+      // toggle on checkbox
+      this.$hide().prop('checked', true);
+
+      // Show postbox
+      this.$el.show().removeClass('acf-hidden');
+
+      // Do action.
+      acf.doAction('show_postbox', this);
+    },
+    enable: function () {
+      acf.enable(this.$el, 'postbox');
+    },
+    showEnable: function () {
+      this.enable();
+      this.show();
+    },
+    hide: function () {
+      // Hide label.
+      this.$hideLabel().hide();
+
+      // Hide postbox
+      this.$el.hide().addClass('acf-hidden');
+
+      // Do action.
+      acf.doAction('hide_postbox', this);
+    },
+    disable: function () {
+      acf.disable(this.$el, 'postbox');
+    },
+    hideDisable: function () {
+      this.disable();
+      this.hide();
+    },
+    html: function (html) {
+      // Update HTML.
+      this.$inside().html(html);
+
+      // Do action.
+      acf.doAction('append', this.$el);
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-screen.js":
+/*!*********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-screen.js ***!
+  \*********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  acf.screen = new acf.Model({
+    active: true,
+    xhr: false,
+    timeout: false,
+    wait: 'load',
+    events: {
+      'change #page_template': 'onChange',
+      'change #parent_id': 'onChange',
+      'change #post-formats-select': 'onChange',
+      'change .categorychecklist': 'onChange',
+      'change .tagsdiv': 'onChange',
+      'change .acf-taxonomy-field[data-save="1"]': 'onChange',
+      'change #product-type': 'onChange'
+    },
+    isPost: function () {
+      return acf.get('screen') === 'post';
+    },
+    isUser: function () {
+      return acf.get('screen') === 'user';
+    },
+    isTaxonomy: function () {
+      return acf.get('screen') === 'taxonomy';
+    },
+    isAttachment: function () {
+      return acf.get('screen') === 'attachment';
+    },
+    isNavMenu: function () {
+      return acf.get('screen') === 'nav_menu';
+    },
+    isWidget: function () {
+      return acf.get('screen') === 'widget';
+    },
+    isComment: function () {
+      return acf.get('screen') === 'comment';
+    },
+    getPageTemplate: function () {
+      var $el = $('#page_template');
+      return $el.length ? $el.val() : null;
+    },
+    getPageParent: function (e, $el) {
+      var $el = $('#parent_id');
+      return $el.length ? $el.val() : null;
+    },
+    getPageType: function (e, $el) {
+      return this.getPageParent() ? 'child' : 'parent';
+    },
+    getPostType: function () {
+      return $('#post_type').val();
+    },
+    getPostFormat: function (e, $el) {
+      var $el = $('#post-formats-select input:checked');
+      if ($el.length) {
+        var val = $el.val();
+        return val == '0' ? 'standard' : val;
+      }
+      return null;
+    },
+    getPostCoreTerms: function () {
+      // vars
+      var terms = {};
+
+      // serialize WP taxonomy postboxes
+      var data = acf.serialize($('.categorydiv, .tagsdiv'));
+
+      // use tax_input (tag, custom-taxonomy) when possible.
+      // this data is already formatted in taxonomy => [terms].
+      if (data.tax_input) {
+        terms = data.tax_input;
+      }
+
+      // append "category" which uses a different name
+      if (data.post_category) {
+        terms.category = data.post_category;
+      }
+
+      // convert any string values (tags) into array format
+      for (var tax in terms) {
+        if (!acf.isArray(terms[tax])) {
+          terms[tax] = terms[tax].split(/,[\s]?/);
+        }
+      }
+
+      // return
+      return terms;
+    },
+    getPostTerms: function () {
+      // Get core terms.
+      var terms = this.getPostCoreTerms();
+
+      // loop over taxonomy fields and add their values
+      acf.getFields({
+        type: 'taxonomy'
+      }).map(function (field) {
+        // ignore fields that don't save
+        if (!field.get('save')) {
+          return;
+        }
+
+        // vars
+        var val = field.val();
+        var tax = field.get('taxonomy');
+
+        // check val
+        if (val) {
+          // ensure terms exists
+          terms[tax] = terms[tax] || [];
+
+          // ensure val is an array
+          val = acf.isArray(val) ? val : [val];
+
+          // append
+          terms[tax] = terms[tax].concat(val);
+        }
+      });
+
+      // add WC product type
+      if ((productType = this.getProductType()) !== null) {
+        terms.product_type = [productType];
+      }
+
+      // remove duplicate values
+      for (var tax in terms) {
+        terms[tax] = acf.uniqueArray(terms[tax]);
+      }
+
+      // return
+      return terms;
+    },
+    getProductType: function () {
+      var $el = $('#product-type');
+      return $el.length ? $el.val() : null;
+    },
+    check: function () {
+      // bail early if not for post
+      if (acf.get('screen') !== 'post') {
+        return;
+      }
+
+      // abort XHR if is already loading AJAX data
+      if (this.xhr) {
+        this.xhr.abort();
+      }
+
+      // vars
+      var ajaxData = acf.parseArgs(this.data, {
+        action: 'acf/ajax/check_screen',
+        screen: acf.get('screen'),
+        exists: []
+      });
+
+      // post id
+      if (this.isPost()) {
+        ajaxData.post_id = acf.get('post_id');
+      }
+
+      // post type
+      if ((postType = this.getPostType()) !== null) {
+        ajaxData.post_type = postType;
+      }
+
+      // page template
+      if ((pageTemplate = this.getPageTemplate()) !== null) {
+        ajaxData.page_template = pageTemplate;
+      }
+
+      // page parent
+      if ((pageParent = this.getPageParent()) !== null) {
+        ajaxData.page_parent = pageParent;
+      }
+
+      // page type
+      if ((pageType = this.getPageType()) !== null) {
+        ajaxData.page_type = pageType;
+      }
+
+      // post format
+      if ((postFormat = this.getPostFormat()) !== null) {
+        ajaxData.post_format = postFormat;
+      }
+
+      // post terms
+      if ((postTerms = this.getPostTerms()) !== null) {
+        ajaxData.post_terms = postTerms;
+      }
+
+      // add array of existing postboxes to increase performance and reduce JSON HTML
+      acf.getPostboxes().map(function (postbox) {
+        ajaxData.exists.push(postbox.get('key'));
+      });
+
+      // filter
+      ajaxData = acf.applyFilters('check_screen_args', ajaxData);
+
+      // success
+      var onSuccess = function (json) {
+        // Render post screen.
+        if (acf.get('screen') == 'post') {
+          this.renderPostScreen(json);
+
+          // Render user screen.
+        } else if (acf.get('screen') == 'user') {
+          this.renderUserScreen(json);
+        }
+
+        // action
+        acf.doAction('check_screen_complete', json, ajaxData);
+      };
+
+      // ajax
+      this.xhr = $.ajax({
+        url: acf.get('ajaxurl'),
+        data: acf.prepareForAjax(ajaxData),
+        type: 'post',
+        dataType: 'json',
+        context: this,
+        success: onSuccess
+      });
+    },
+    onChange: function (e, $el) {
+      this.setTimeout(this.check, 1);
+    },
+    renderPostScreen: function (data) {
+      // Helper function to copy events
+      var copyEvents = function ($from, $to) {
+        var events = $._data($from[0]).events;
+        for (var type in events) {
+          for (var i = 0; i < events[type].length; i++) {
+            $to.on(type, events[type][i].handler);
+          }
+        }
+      };
+
+      // Helper function to sort metabox.
+      var sortMetabox = function (id, ids) {
+        // Find position of id within ids.
+        var index = ids.indexOf(id);
+
+        // Bail early if index not found.
+        if (index == -1) {
+          return false;
+        }
+
+        // Loop over metaboxes behind (in reverse order).
+        for (var i = index - 1; i >= 0; i--) {
+          if ($('#' + ids[i]).length) {
+            return $('#' + ids[i]).after($('#' + id));
+          }
+        }
+
+        // Loop over metaboxes infront.
+        for (var i = index + 1; i < ids.length; i++) {
+          if ($('#' + ids[i]).length) {
+            return $('#' + ids[i]).before($('#' + id));
+          }
+        }
+
+        // Return false if not sorted.
+        return false;
+      };
+
+      // Keep track of visible and hidden postboxes.
+      data.visible = [];
+      data.hidden = [];
+
+      // Show these postboxes.
+      data.results = data.results.map(function (result, i) {
+        // vars
+        var postbox = acf.getPostbox(result.id);
+
+        // Prevent "acf_after_title" position in Block Editor.
+        if (acf.isGutenberg() && result.position == 'acf_after_title') {
+          result.position = 'normal';
+        }
+
+        // Create postbox if doesn't exist.
+        if (!postbox) {
+          var wpMinorVersion = parseFloat(acf.get('wp_version'));
+          if (wpMinorVersion >= 5.5) {
+            var postboxHeader = ['<div class="postbox-header">', '<h2 class="hndle ui-sortable-handle">', '<span>' + acf.escHtml(result.title) + '</span>', '</h2>', '<div class="handle-actions hide-if-no-js">', '<button type="button" class="handlediv" aria-expanded="true">', '<span class="screen-reader-text">Toggle panel: ' + acf.escHtml(result.title) + '</span>', '<span class="toggle-indicator" aria-hidden="true"></span>', '</button>', '</div>', '</div>'].join('');
+          } else {
+            var postboxHeader = ['<button type="button" class="handlediv" aria-expanded="true">', '<span class="screen-reader-text">Toggle panel: ' + acf.escHtml(result.title) + '</span>', '<span class="toggle-indicator" aria-hidden="true"></span>', '</button>', '<h2 class="hndle ui-sortable-handle">', '<span>' + acf.escHtml(result.title) + '</span>', '</h2>'].join('');
+          }
+
+          // Ensure result.classes is set.
+          if (!result.classes) result.classes = '';
+
+          // Create it.
+          var $postbox = $(['<div id="' + result.id + '" class="postbox ' + result.classes + '">', postboxHeader, '<div class="inside">', result.html, '</div>', '</div>'].join(''));
+
+          // Create new hide toggle.
+          if ($('#adv-settings').length) {
+            var $prefs = $('#adv-settings .metabox-prefs');
+            var $label = $(['<label for="' + result.id + '-hide">', '<input class="hide-postbox-tog" name="' + result.id + '-hide" type="checkbox" id="' + result.id + '-hide" value="' + result.id + '" checked="checked">', ' ' + result.title, '</label>'].join(''));
+
+            // Copy default WP events onto checkbox.
+            copyEvents($prefs.find('input').first(), $label.find('input'));
+
+            // Append hide label
+            $prefs.append($label);
+          }
+
+          // Copy default WP events onto metabox.
+          if ($('.postbox').length) {
+            copyEvents($('.postbox .handlediv').first(), $postbox.children('.handlediv'));
+            copyEvents($('.postbox .hndle').first(), $postbox.children('.hndle'));
+          }
+
+          // Append metabox to the bottom of "side-sortables".
+          if (result.position === 'side') {
+            $('#' + result.position + '-sortables').append($postbox);
+
+            // Prepend metabox to the top of "normal-sortbables".
+          } else {
+            $('#' + result.position + '-sortables').prepend($postbox);
+          }
+
+          // Position metabox amongst existing ACF metaboxes within the same location.
+          var order = [];
+          data.results.map(function (_result) {
+            if (result.position === _result.position && $('#' + result.position + '-sortables #' + _result.id).length) {
+              order.push(_result.id);
+            }
+          });
+          sortMetabox(result.id, order);
+
+          // Check 'sorted' for user preference.
+          if (data.sorted) {
+            // Loop over each position (acf_after_title, side, normal).
+            for (var position in data.sorted) {
+              let order = data.sorted[position];
+              if (typeof order !== 'string') {
+                continue;
+              }
+
+              // Explode string into array of ids.
+              order = order.split(',');
+
+              // Position metabox relative to order.
+              if (sortMetabox(result.id, order)) {
+                break;
+              }
+            }
+          }
+
+          // Initalize it (modifies HTML).
+          postbox = acf.newPostbox(result);
+
+          // Trigger action.
+          acf.doAction('append', $postbox);
+          acf.doAction('append_postbox', postbox);
+        }
+
+        // show postbox
+        postbox.showEnable();
+
+        // append
+        data.visible.push(result.id);
+
+        // Return result (may have changed).
+        return result;
+      });
+
+      // Hide these postboxes.
+      acf.getPostboxes().map(function (postbox) {
+        if (data.visible.indexOf(postbox.get('id')) === -1) {
+          // Hide postbox.
+          postbox.hideDisable();
+
+          // Append to data.
+          data.hidden.push(postbox.get('id'));
+        }
+      });
+
+      // Update style.
+      $('#acf-style').html(data.style);
+
+      // Do action.
+      acf.doAction('refresh_post_screen', data);
+    },
+    renderUserScreen: function (json) {}
+  });
+
+  /**
+   *  gutenScreen
+   *
+   *  Adds compatibility with the Gutenberg edit screen.
+   *
+   *  @date	11/12/18
+   *  @since	5.8.0
+   *
+   *  @param	void
+   *  @return	void
+   */
+  var gutenScreen = new acf.Model({
+    // Keep a reference to the most recent post attributes.
+    postEdits: {},
+    // Wait until assets have been loaded.
+    wait: 'prepare',
+    initialize: function () {
+      // Bail early if not Gutenberg.
+      if (!acf.isGutenberg()) {
+        return;
+      }
+
+      // Listen for changes (use debounced version as this can fires often).
+      wp.data.subscribe(acf.debounce(this.onChange).bind(this));
+
+      // Customize "acf.screen.get" functions.
+      acf.screen.getPageTemplate = this.getPageTemplate;
+      acf.screen.getPageParent = this.getPageParent;
+      acf.screen.getPostType = this.getPostType;
+      acf.screen.getPostFormat = this.getPostFormat;
+      acf.screen.getPostCoreTerms = this.getPostCoreTerms;
+
+      // Disable unload
+      acf.unload.disable();
+
+      // Refresh metaboxes since WP 5.3.
+      var wpMinorVersion = parseFloat(acf.get('wp_version'));
+      if (wpMinorVersion >= 5.3) {
+        this.addAction('refresh_post_screen', this.onRefreshPostScreen);
+      }
+
+      // Trigger "refresh" after WP has moved metaboxes into place.
+      wp.domReady(acf.refresh);
+    },
+    onChange: function () {
+      // Determine attributes that can trigger a refresh.
+      var attributes = ['template', 'parent', 'format'];
+
+      // Append taxonomy attribute names to this list.
+      (wp.data.select('core').getTaxonomies() || []).map(function (taxonomy) {
+        attributes.push(taxonomy.rest_base);
+      });
+
+      // Get relevant current post edits.
+      var _postEdits = wp.data.select('core/editor').getPostEdits();
+      var postEdits = {};
+      attributes.map(function (k) {
+        if (_postEdits[k] !== undefined) {
+          postEdits[k] = _postEdits[k];
+        }
+      });
+
+      // Detect change.
+      if (JSON.stringify(postEdits) !== JSON.stringify(this.postEdits)) {
+        this.postEdits = postEdits;
+
+        // Check screen.
+        acf.screen.check();
+      }
+    },
+    getPageTemplate: function () {
+      return wp.data.select('core/editor').getEditedPostAttribute('template');
+    },
+    getPageParent: function (e, $el) {
+      return wp.data.select('core/editor').getEditedPostAttribute('parent');
+    },
+    getPostType: function () {
+      return wp.data.select('core/editor').getEditedPostAttribute('type');
+    },
+    getPostFormat: function (e, $el) {
+      return wp.data.select('core/editor').getEditedPostAttribute('format');
+    },
+    getPostCoreTerms: function () {
+      // vars
+      var terms = {};
+
+      // Loop over taxonomies.
+      var taxonomies = wp.data.select('core').getTaxonomies() || [];
+      taxonomies.map(function (taxonomy) {
+        // Append selected taxonomies to terms object.
+        var postTerms = wp.data.select('core/editor').getEditedPostAttribute(taxonomy.rest_base);
+        if (postTerms) {
+          terms[taxonomy.slug] = postTerms;
+        }
+      });
+
+      // return
+      return terms;
+    },
+    /**
+     * onRefreshPostScreen
+     *
+     * Fires after the Post edit screen metaboxs are refreshed to update the Block Editor API state.
+     *
+     * @date	11/11/19
+     * @since	5.8.7
+     *
+     * @param	object data The "check_screen" JSON response data.
+     * @return	void
+     */
+    onRefreshPostScreen: function (data) {
+      // Extract vars.
+      var select = wp.data.select('core/edit-post');
+      var dispatch = wp.data.dispatch('core/edit-post');
+
+      // Load current metabox locations and data.
+      var locations = {};
+      select.getActiveMetaBoxLocations().map(function (location) {
+        locations[location] = select.getMetaBoxesPerLocation(location);
+      });
+
+      // Generate flat array of existing ids.
+      var ids = [];
+      for (var k in locations) {
+        locations[k].map(function (m) {
+          ids.push(m.id);
+        });
+      }
+
+      // Append new ACF metaboxes (ignore those which already exist).
+      data.results.filter(function (r) {
+        return ids.indexOf(r.id) === -1;
+      }).map(function (result, i) {
+        // Ensure location exists.
+        var location = result.position;
+        locations[location] = locations[location] || [];
+
+        // Append.
+        locations[location].push({
+          id: result.id,
+          title: result.title
+        });
+      });
+
+      // Remove hidden ACF metaboxes.
+      for (var k in locations) {
+        locations[k] = locations[k].filter(function (m) {
+          return data.hidden.indexOf(m.id) === -1;
+        });
+      }
+
+      // Update state.
+      dispatch.setAvailableMetaBoxesPerLocation(locations);
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-select2.js":
+/*!**********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-select2.js ***!
+  \**********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   *  acf.newSelect2
+   *
+   *  description
+   *
+   *  @date	13/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.newSelect2 = function ($select, props) {
+    // defaults
+    props = acf.parseArgs(props, {
+      allowNull: false,
+      placeholder: '',
+      multiple: false,
+      field: false,
+      ajax: false,
+      ajaxAction: '',
+      ajaxData: function (data) {
+        return data;
+      },
+      ajaxResults: function (json) {
+        return json;
+      }
+    });
+
+    // initialize
+    if (getVersion() == 4) {
+      var select2 = new Select2_4($select, props);
+    } else {
+      var select2 = new Select2_3($select, props);
+    }
+
+    // actions
+    acf.doAction('new_select2', select2);
+
+    // return
+    return select2;
+  };
+
+  /**
+   *  getVersion
+   *
+   *  description
+   *
+   *  @date	13/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  function getVersion() {
+    // v4
+    if (acf.isset(window, 'jQuery', 'fn', 'select2', 'amd')) {
+      return 4;
+    }
+
+    // v3
+    if (acf.isset(window, 'Select2')) {
+      return 3;
+    }
+
+    // return
+    return false;
+  }
+
+  /**
+   *  Select2
+   *
+   *  description
+   *
+   *  @date	13/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var Select2 = acf.Model.extend({
+    setup: function ($select, props) {
+      $.extend(this.data, props);
+      this.$el = $select;
+    },
+    initialize: function () {},
+    selectOption: function (value) {
+      var $option = this.getOption(value);
+      if (!$option.prop('selected')) {
+        $option.prop('selected', true).trigger('change');
+      }
+    },
+    unselectOption: function (value) {
+      var $option = this.getOption(value);
+      if ($option.prop('selected')) {
+        $option.prop('selected', false).trigger('change');
+      }
+    },
+    getOption: function (value) {
+      return this.$('option[value="' + value + '"]');
+    },
+    addOption: function (option) {
+      // defaults
+      option = acf.parseArgs(option, {
+        id: '',
+        text: '',
+        selected: false
+      });
+
+      // vars
+      var $option = this.getOption(option.id);
+
+      // append
+      if (!$option.length) {
+        $option = $('<option></option>');
+        $option.html(option.text);
+        $option.attr('value', option.id);
+        $option.prop('selected', option.selected);
+        this.$el.append($option);
+      }
+
+      // chain
+      return $option;
+    },
+    getValue: function () {
+      // vars
+      var val = [];
+      var $options = this.$el.find('option:selected');
+
+      // bail early if no selected
+      if (!$options.exists()) {
+        return val;
+      }
+
+      // sort by attribute
+      $options = $options.sort(function (a, b) {
+        return +a.getAttribute('data-i') - +b.getAttribute('data-i');
+      });
+
+      // loop
+      $options.each(function () {
+        var $el = $(this);
+        val.push({
+          $el: $el,
+          id: $el.attr('value'),
+          text: $el.text()
+        });
+      });
+
+      // return
+      return val;
+    },
+    mergeOptions: function () {},
+    getChoices: function () {
+      // callback
+      var crawl = function ($parent) {
+        // vars
+        var choices = [];
+
+        // loop
+        $parent.children().each(function () {
+          // vars
+          var $child = $(this);
+
+          // optgroup
+          if ($child.is('optgroup')) {
+            choices.push({
+              text: $child.attr('label'),
+              children: crawl($child)
+            });
+
+            // option
+          } else {
+            choices.push({
+              id: $child.attr('value'),
+              text: $child.text()
+            });
+          }
+        });
+
+        // return
+        return choices;
+      };
+
+      // crawl
+      return crawl(this.$el);
+    },
+    getAjaxData: function (params) {
+      // vars
+      var ajaxData = {
+        action: this.get('ajaxAction'),
+        s: params.term || '',
+        paged: params.page || 1
+      };
+
+      // field helper
+      var field = this.get('field');
+      if (field) {
+        ajaxData.field_key = field.get('key');
+      }
+
+      // callback
+      var callback = this.get('ajaxData');
+      if (callback) {
+        ajaxData = callback.apply(this, [ajaxData, params]);
+      }
+
+      // filter
+      ajaxData = acf.applyFilters('select2_ajax_data', ajaxData, this.data, this.$el, field || false, this);
+
+      // return
+      return acf.prepareForAjax(ajaxData);
+    },
+    getAjaxResults: function (json, params) {
+      // defaults
+      json = acf.parseArgs(json, {
+        results: false,
+        more: false
+      });
+
+      // callback
+      var callback = this.get('ajaxResults');
+      if (callback) {
+        json = callback.apply(this, [json, params]);
+      }
+
+      // filter
+      json = acf.applyFilters('select2_ajax_results', json, params, this);
+
+      // return
+      return json;
+    },
+    processAjaxResults: function (json, params) {
+      // vars
+      var json = this.getAjaxResults(json, params);
+
+      // change more to pagination
+      if (json.more) {
+        json.pagination = {
+          more: true
+        };
+      }
+
+      // merge together groups
+      setTimeout($.proxy(this.mergeOptions, this), 1);
+
+      // return
+      return json;
+    },
+    destroy: function () {
+      // destroy via api
+      if (this.$el.data('select2')) {
+        this.$el.select2('destroy');
+      }
+
+      // destory via HTML (duplicating HTML does not contain data)
+      this.$el.siblings('.select2-container').remove();
+    }
+  });
+
+  /**
+   *  Select2_4
+   *
+   *  description
+   *
+   *  @date	13/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var Select2_4 = Select2.extend({
+    initialize: function () {
+      // vars
+      var $select = this.$el;
+      var options = {
+        width: '100%',
+        allowClear: this.get('allowNull'),
+        placeholder: this.get('placeholder'),
+        multiple: this.get('multiple'),
+        data: [],
+        escapeMarkup: function (markup) {
+          if (typeof markup !== 'string') {
+            return markup;
+          }
+          return acf.escHtml(markup);
+        }
+      };
+
+      // Only use the template if SelectWoo is not loaded to work around https://github.com/woocommerce/woocommerce/pull/30473
+      if (!acf.isset(window, 'jQuery', 'fn', 'selectWoo')) {
+        options.templateSelection = function (selection) {
+          var $selection = $('<span class="acf-selection"></span>');
+          $selection.html(acf.escHtml(selection.text));
+          $selection.data('element', selection.element);
+          return $selection;
+        };
+      }
+
+      // multiple
+      if (options.multiple) {
+        // reorder options
+        this.getValue().map(function (item) {
+          item.$el.detach().appendTo($select);
+        });
+      }
+
+      // Temporarily remove conflicting attribute.
+      var attrAjax = $select.attr('data-ajax');
+      if (attrAjax !== undefined) {
+        $select.removeData('ajax');
+        $select.removeAttr('data-ajax');
+      }
+
+      // ajax
+      if (this.get('ajax')) {
+        options.ajax = {
+          url: acf.get('ajaxurl'),
+          delay: 250,
+          dataType: 'json',
+          type: 'post',
+          cache: false,
+          data: $.proxy(this.getAjaxData, this),
+          processResults: $.proxy(this.processAjaxResults, this)
+        };
+      }
+
+      // filter for 3rd party customization
+      //options = acf.applyFilters( 'select2_args', options, $select, this );
+      var field = this.get('field');
+      options = acf.applyFilters('select2_args', options, $select, this.data, field || false, this);
+
+      // add select2
+      $select.select2(options);
+
+      // get container (Select2 v4 does not return this from constructor)
+      var $container = $select.next('.select2-container');
+
+      // multiple
+      if (options.multiple) {
+        // vars
+        var $ul = $container.find('ul');
+
+        // sortable
+        $ul.sortable({
+          stop: function (e) {
+            // loop
+            $ul.find('.select2-selection__choice').each(function () {
+              // Attempt to use .data if it exists (select2 version < 4.0.6) or use our template data instead.
+              if ($(this).data('data')) {
+                var $option = $($(this).data('data').element);
+              } else {
+                var $option = $($(this).find('span.acf-selection').data('element'));
+              }
+
+              // detach and re-append to end
+              $option.detach().appendTo($select);
+            });
+
+            // trigger change on input (JS error if trigger on select)
+            $select.trigger('change');
+          }
+        });
+
+        // on select, move to end
+        $select.on('select2:select', this.proxy(function (e) {
+          this.getOption(e.params.data.id).detach().appendTo(this.$el);
+        }));
+      }
+
+      // add handler to auto-focus searchbox (for jQuery 3.6)
+      $select.on('select2:open', () => {
+        $('.select2-container--open .select2-search__field').get(-1).focus();
+      });
+
+      // add class
+      $container.addClass('-acf');
+
+      // Add back temporarily removed attr.
+      if (attrAjax !== undefined) {
+        $select.attr('data-ajax', attrAjax);
+      }
+
+      // action for 3rd party customization
+      acf.doAction('select2_init', $select, options, this.data, field || false, this);
+    },
+    mergeOptions: function () {
+      // vars
+      var $prevOptions = false;
+      var $prevGroup = false;
+
+      // loop
+      $('.select2-results__option[role="group"]').each(function () {
+        // vars
+        var $options = $(this).children('ul');
+        var $group = $(this).children('strong');
+
+        // compare to previous
+        if ($prevGroup && $prevGroup.text() === $group.text()) {
+          $prevOptions.append($options.children());
+          $(this).remove();
+          return;
+        }
+
+        // update vars
+        $prevOptions = $options;
+        $prevGroup = $group;
+      });
+    }
+  });
+
+  /**
+   *  Select2_3
+   *
+   *  description
+   *
+   *  @date	13/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var Select2_3 = Select2.extend({
+    initialize: function () {
+      // vars
+      var $select = this.$el;
+      var value = this.getValue();
+      var multiple = this.get('multiple');
+      var options = {
+        width: '100%',
+        allowClear: this.get('allowNull'),
+        placeholder: this.get('placeholder'),
+        separator: '||',
+        multiple: this.get('multiple'),
+        data: this.getChoices(),
+        escapeMarkup: function (string) {
+          return acf.escHtml(string);
+        },
+        dropdownCss: {
+          'z-index': '999999999'
+        },
+        initSelection: function (element, callback) {
+          if (multiple) {
+            callback(value);
+          } else {
+            callback(value.shift());
+          }
+        }
+      };
+
+      // get hidden input
+      var $input = $select.siblings('input');
+      if (!$input.length) {
+        $input = $('<input type="hidden" />');
+        $select.before($input);
+      }
+
+      // set input value
+      inputValue = value.map(function (item) {
+        return item.id;
+      }).join('||');
+      $input.val(inputValue);
+
+      // multiple
+      if (options.multiple) {
+        // reorder options
+        value.map(function (item) {
+          item.$el.detach().appendTo($select);
+        });
+      }
+
+      // remove blank option as we have a clear all button
+      if (options.allowClear) {
+        options.data = options.data.filter(function (item) {
+          return item.id !== '';
+        });
+      }
+
+      // remove conflicting atts
+      $select.removeData('ajax');
+      $select.removeAttr('data-ajax');
+
+      // ajax
+      if (this.get('ajax')) {
+        options.ajax = {
+          url: acf.get('ajaxurl'),
+          quietMillis: 250,
+          dataType: 'json',
+          type: 'post',
+          cache: false,
+          data: $.proxy(this.getAjaxData, this),
+          results: $.proxy(this.processAjaxResults, this)
+        };
+      }
+
+      // filter for 3rd party customization
+      var field = this.get('field');
+      options = acf.applyFilters('select2_args', options, $select, this.data, field || false, this);
+
+      // add select2
+      $input.select2(options);
+
+      // get container
+      var $container = $input.select2('container');
+
+      // helper to find this select's option
+      var getOption = $.proxy(this.getOption, this);
+
+      // multiple
+      if (options.multiple) {
+        // vars
+        var $ul = $container.find('ul');
+
+        // sortable
+        $ul.sortable({
+          stop: function () {
+            // loop
+            $ul.find('.select2-search-choice').each(function () {
+              // vars
+              var data = $(this).data('select2Data');
+              var $option = getOption(data.id);
+
+              // detach and re-append to end
+              $option.detach().appendTo($select);
+            });
+
+            // trigger change on input (JS error if trigger on select)
+            $select.trigger('change');
+          }
+        });
+      }
+
+      // on select, create option and move to end
+      $input.on('select2-selecting', function (e) {
+        // vars
+        var item = e.choice;
+        var $option = getOption(item.id);
+
+        // create if doesn't exist
+        if (!$option.length) {
+          $option = $('<option value="' + item.id + '">' + item.text + '</option>');
+        }
+
+        // detach and re-append to end
+        $option.detach().appendTo($select);
+      });
+
+      // add class
+      $container.addClass('-acf');
+
+      // action for 3rd party customization
+      acf.doAction('select2_init', $select, options, this.data, field || false, this);
+
+      // change
+      $input.on('change', function () {
+        var val = $input.val();
+        if (val.indexOf('||')) {
+          val = val.split('||');
+        }
+        $select.val(val).trigger('change');
+      });
+
+      // hide select
+      $select.hide();
+    },
+    mergeOptions: function () {
+      // vars
+      var $prevOptions = false;
+      var $prevGroup = false;
+
+      // loop
+      $('#select2-drop .select2-result-with-children').each(function () {
+        // vars
+        var $options = $(this).children('ul');
+        var $group = $(this).children('.select2-result-label');
+
+        // compare to previous
+        if ($prevGroup && $prevGroup.text() === $group.text()) {
+          $prevGroup.append($options.children());
+          $(this).remove();
+          return;
+        }
+
+        // update vars
+        $prevOptions = $options;
+        $prevGroup = $group;
+      });
+    },
+    getAjaxData: function (term, page) {
+      // create Select2 v4 params
+      var params = {
+        term: term,
+        page: page
+      };
+
+      // filter
+      var field = this.get('field');
+      params = acf.applyFilters('select2_ajax_data', params, this.data, this.$el, field || false, this);
+
+      // return
+      return Select2.prototype.getAjaxData.apply(this, [params]);
+    }
+  });
+
+  // manager
+  var select2Manager = new acf.Model({
+    priority: 5,
+    wait: 'prepare',
+    actions: {
+      duplicate: 'onDuplicate'
+    },
+    initialize: function () {
+      // vars
+      var locale = acf.get('locale');
+      var rtl = acf.get('rtl');
+      var l10n = acf.get('select2L10n');
+      var version = getVersion();
+
+      // bail early if no l10n
+      if (!l10n) {
+        return false;
+      }
+
+      // bail early if 'en'
+      if (locale.indexOf('en') === 0) {
+        return false;
+      }
+
+      // initialize
+      if (version == 4) {
+        this.addTranslations4();
+      } else if (version == 3) {
+        this.addTranslations3();
+      }
+    },
+    addTranslations4: function () {
+      // vars
+      var l10n = acf.get('select2L10n');
+      var locale = acf.get('locale');
+
+      // modify local to match html[lang] attribute (used by Select2)
+      locale = locale.replace('_', '-');
+
+      // select2L10n
+      var select2L10n = {
+        errorLoading: function () {
+          return l10n.load_fail;
+        },
+        inputTooLong: function (args) {
+          var overChars = args.input.length - args.maximum;
+          if (overChars > 1) {
+            return l10n.input_too_long_n.replace('%d', overChars);
+          }
+          return l10n.input_too_long_1;
+        },
+        inputTooShort: function (args) {
+          var remainingChars = args.minimum - args.input.length;
+          if (remainingChars > 1) {
+            return l10n.input_too_short_n.replace('%d', remainingChars);
+          }
+          return l10n.input_too_short_1;
+        },
+        loadingMore: function () {
+          return l10n.load_more;
+        },
+        maximumSelected: function (args) {
+          var maximum = args.maximum;
+          if (maximum > 1) {
+            return l10n.selection_too_long_n.replace('%d', maximum);
+          }
+          return l10n.selection_too_long_1;
+        },
+        noResults: function () {
+          return l10n.matches_0;
+        },
+        searching: function () {
+          return l10n.searching;
+        }
+      };
+
+      // append
+      jQuery.fn.select2.amd.define('select2/i18n/' + locale, [], function () {
+        return select2L10n;
+      });
+    },
+    addTranslations3: function () {
+      // vars
+      var l10n = acf.get('select2L10n');
+      var locale = acf.get('locale');
+
+      // modify local to match html[lang] attribute (used by Select2)
+      locale = locale.replace('_', '-');
+
+      // select2L10n
+      var select2L10n = {
+        formatMatches: function (matches) {
+          if (matches > 1) {
+            return l10n.matches_n.replace('%d', matches);
+          }
+          return l10n.matches_1;
+        },
+        formatNoMatches: function () {
+          return l10n.matches_0;
+        },
+        formatAjaxError: function () {
+          return l10n.load_fail;
+        },
+        formatInputTooShort: function (input, min) {
+          var remainingChars = min - input.length;
+          if (remainingChars > 1) {
+            return l10n.input_too_short_n.replace('%d', remainingChars);
+          }
+          return l10n.input_too_short_1;
+        },
+        formatInputTooLong: function (input, max) {
+          var overChars = input.length - max;
+          if (overChars > 1) {
+            return l10n.input_too_long_n.replace('%d', overChars);
+          }
+          return l10n.input_too_long_1;
+        },
+        formatSelectionTooBig: function (maximum) {
+          if (maximum > 1) {
+            return l10n.selection_too_long_n.replace('%d', maximum);
+          }
+          return l10n.selection_too_long_1;
+        },
+        formatLoadMore: function () {
+          return l10n.load_more;
+        },
+        formatSearching: function () {
+          return l10n.searching;
+        }
+      };
+
+      // ensure locales exists
+      $.fn.select2.locales = $.fn.select2.locales || {};
+
+      // append
+      $.fn.select2.locales[locale] = select2L10n;
+      $.extend($.fn.select2.defaults, select2L10n);
+    },
+    onDuplicate: function ($el, $el2) {
+      $el2.find('.select2-container').remove();
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-tinymce.js":
+/*!**********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-tinymce.js ***!
+  \**********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  acf.tinymce = {
+    /*
+     *  defaults
+     *
+     *  This function will return default mce and qt settings
+     *
+     *  @type	function
+     *  @date	18/8/17
+     *  @since	5.6.0
+     *
+     *  @param	$post_id (int)
+     *  @return	$post_id (int)
+     */
+
+    defaults: function () {
+      // bail early if no tinyMCEPreInit
+      if (typeof tinyMCEPreInit === 'undefined') return false;
+
+      // vars
+      var defaults = {
+        tinymce: tinyMCEPreInit.mceInit.acf_content,
+        quicktags: tinyMCEPreInit.qtInit.acf_content
+      };
+
+      // return
+      return defaults;
+    },
+    /*
+     *  initialize
+     *
+     *  This function will initialize the tinymce and quicktags instances
+     *
+     *  @type	function
+     *  @date	18/8/17
+     *  @since	5.6.0
+     *
+     *  @param	$post_id (int)
+     *  @return	$post_id (int)
+     */
+
+    initialize: function (id, args) {
+      // defaults
+      args = acf.parseArgs(args, {
+        tinymce: true,
+        quicktags: true,
+        toolbar: 'full',
+        mode: 'visual',
+        // visual,text
+        field: false
+      });
+
+      // tinymce
+      if (args.tinymce) {
+        this.initializeTinymce(id, args);
+      }
+
+      // quicktags
+      if (args.quicktags) {
+        this.initializeQuicktags(id, args);
+      }
+    },
+    /*
+     *  initializeTinymce
+     *
+     *  This function will initialize the tinymce instance
+     *
+     *  @type	function
+     *  @date	18/8/17
+     *  @since	5.6.0
+     *
+     *  @param	$post_id (int)
+     *  @return	$post_id (int)
+     */
+
+    initializeTinymce: function (id, args) {
+      // vars
+      var $textarea = $('#' + id);
+      var defaults = this.defaults();
+      var toolbars = acf.get('toolbars');
+      var field = args.field || false;
+      var $field = field.$el || false;
+
+      // bail early
+      if (typeof tinymce === 'undefined') return false;
+      if (!defaults) return false;
+
+      // check if exists
+      if (tinymce.get(id)) {
+        return this.enable(id);
+      }
+
+      // settings
+      var init = $.extend({}, defaults.tinymce, args.tinymce);
+      init.id = id;
+      init.selector = '#' + id;
+
+      // toolbar
+      var toolbar = args.toolbar;
+      if (toolbar && toolbars && toolbars[toolbar]) {
+        for (var i = 1; i <= 4; i++) {
+          init['toolbar' + i] = toolbars[toolbar][i] || '';
+        }
+      }
+
+      // event
+      init.setup = function (ed) {
+        ed.on('change', function (e) {
+          ed.save(); // save to textarea
+          $textarea.trigger('change');
+        });
+
+        // Fix bug where Gutenberg does not hear "mouseup" event and tries to select multiple blocks.
+        ed.on('mouseup', function (e) {
+          var event = new MouseEvent('mouseup');
+          window.dispatchEvent(event);
+        });
+
+        // Temporarily comment out. May not be necessary due to wysiwyg field actions.
+        //ed.on('unload', function(e) {
+        //	acf.tinymce.remove( id );
+        //});
+      };
+
+      // disable wp_autoresize_on (no solution yet for fixed toolbar)
+      init.wp_autoresize_on = false;
+
+      // Enable wpautop allowing value to save without <p> tags.
+      // Only if the "TinyMCE Advanced" plugin hasn't already set this functionality.
+      if (!init.tadv_noautop) {
+        init.wpautop = true;
+      }
+
+      // hook for 3rd party customization
+      init = acf.applyFilters('wysiwyg_tinymce_settings', init, id, field);
+
+      // z-index fix (caused too many conflicts)
+      //if( acf.isset(tinymce,'ui','FloatPanel') ) {
+      //	tinymce.ui.FloatPanel.zIndex = 900000;
+      //}
+
+      // store settings
+      tinyMCEPreInit.mceInit[id] = init;
+
+      // visual tab is active
+      if (args.mode == 'visual') {
+        // init
+        var result = tinymce.init(init);
+
+        // get editor
+        var ed = tinymce.get(id);
+
+        // validate
+        if (!ed) {
+          return false;
+        }
+
+        // add reference
+        ed.acf = args.field;
+
+        // action
+        acf.doAction('wysiwyg_tinymce_init', ed, ed.id, init, field);
+      }
+    },
+    /*
+     *  initializeQuicktags
+     *
+     *  This function will initialize the quicktags instance
+     *
+     *  @type	function
+     *  @date	18/8/17
+     *  @since	5.6.0
+     *
+     *  @param	$post_id (int)
+     *  @return	$post_id (int)
+     */
+
+    initializeQuicktags: function (id, args) {
+      // vars
+      var defaults = this.defaults();
+
+      // bail early
+      if (typeof quicktags === 'undefined') return false;
+      if (!defaults) return false;
+
+      // settings
+      var init = $.extend({}, defaults.quicktags, args.quicktags);
+      init.id = id;
+
+      // filter
+      var field = args.field || false;
+      var $field = field.$el || false;
+      init = acf.applyFilters('wysiwyg_quicktags_settings', init, init.id, field);
+
+      // store settings
+      tinyMCEPreInit.qtInit[id] = init;
+
+      // init
+      var ed = quicktags(init);
+
+      // validate
+      if (!ed) {
+        return false;
+      }
+
+      // generate HTML
+      this.buildQuicktags(ed);
+
+      // action for 3rd party customization
+      acf.doAction('wysiwyg_quicktags_init', ed, ed.id, init, field);
+    },
+    /*
+     *  buildQuicktags
+     *
+     *  This function will build the quicktags HTML
+     *
+     *  @type	function
+     *  @date	18/8/17
+     *  @since	5.6.0
+     *
+     *  @param	$post_id (int)
+     *  @return	$post_id (int)
+     */
+
+    buildQuicktags: function (ed) {
+      var canvas,
+        name,
+        settings,
+        theButtons,
+        html,
+        ed,
+        id,
+        i,
+        use,
+        instanceId,
+        defaults = ',strong,em,link,block,del,ins,img,ul,ol,li,code,more,close,';
+      canvas = ed.canvas;
+      name = ed.name;
+      settings = ed.settings;
+      html = '';
+      theButtons = {};
+      use = '';
+      instanceId = ed.id;
+
+      // set buttons
+      if (settings.buttons) {
+        use = ',' + settings.buttons + ',';
+      }
+      for (i in edButtons) {
+        if (!edButtons[i]) {
+          continue;
+        }
+        id = edButtons[i].id;
+        if (use && defaults.indexOf(',' + id + ',') !== -1 && use.indexOf(',' + id + ',') === -1) {
+          continue;
+        }
+        if (!edButtons[i].instance || edButtons[i].instance === instanceId) {
+          theButtons[id] = edButtons[i];
+          if (edButtons[i].html) {
+            html += edButtons[i].html(name + '_');
+          }
+        }
+      }
+      if (use && use.indexOf(',dfw,') !== -1) {
+        theButtons.dfw = new QTags.DFWButton();
+        html += theButtons.dfw.html(name + '_');
+      }
+      if ('rtl' === document.getElementsByTagName('html')[0].dir) {
+        theButtons.textdirection = new QTags.TextDirectionButton();
+        html += theButtons.textdirection.html(name + '_');
+      }
+      ed.toolbar.innerHTML = html;
+      ed.theButtons = theButtons;
+      if (typeof jQuery !== 'undefined') {
+        jQuery(document).triggerHandler('quicktags-init', [ed]);
+      }
+    },
+    disable: function (id) {
+      this.destroyTinymce(id);
+    },
+    remove: function (id) {
+      this.destroyTinymce(id);
+    },
+    destroy: function (id) {
+      this.destroyTinymce(id);
+    },
+    destroyTinymce: function (id) {
+      // bail early
+      if (typeof tinymce === 'undefined') return false;
+
+      // get editor
+      var ed = tinymce.get(id);
+
+      // bail early if no editor
+      if (!ed) return false;
+
+      // save
+      ed.save();
+
+      // destroy editor
+      ed.destroy();
+
+      // return
+      return true;
+    },
+    enable: function (id) {
+      this.enableTinymce(id);
+    },
+    enableTinymce: function (id) {
+      // bail early
+      if (typeof switchEditors === 'undefined') return false;
+
+      // bail early if not initialized
+      if (typeof tinyMCEPreInit.mceInit[id] === 'undefined') return false;
+
+      // Ensure textarea element is visible
+      // - Fixes bug in block editor when switching between "Block" and "Document" tabs.
+      $('#' + id).show();
+
+      // toggle
+      switchEditors.go(id, 'tmce');
+
+      // return
+      return true;
+    }
+  };
+  var editorManager = new acf.Model({
+    // hook in before fieldsEventManager, conditions, etc
+    priority: 5,
+    actions: {
+      prepare: 'onPrepare',
+      ready: 'onReady'
+    },
+    onPrepare: function () {
+      // find hidden editor which may exist within a field
+      var $div = $('#acf-hidden-wp-editor');
+
+      // move to footer
+      if ($div.exists()) {
+        $div.appendTo('body');
+      }
+    },
+    onReady: function () {
+      // Restore wp.editor functions used by tinymce removed in WP5.
+      if (acf.isset(window, 'wp', 'oldEditor')) {
+        wp.editor.autop = wp.oldEditor.autop;
+        wp.editor.removep = wp.oldEditor.removep;
+      }
+
+      // bail early if no tinymce
+      if (!acf.isset(window, 'tinymce', 'on')) return;
+
+      // restore default activeEditor
+      tinymce.on('AddEditor', function (data) {
+        // vars
+        var editor = data.editor;
+
+        // bail early if not 'acf'
+        if (editor.id.substr(0, 3) !== 'acf') return;
+
+        // override if 'content' exists
+        editor = tinymce.editors.content || editor;
+
+        // update vars
+        tinymce.activeEditor = editor;
+        wpActiveEditor = editor.id;
+      });
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-unload.js":
+/*!*********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-unload.js ***!
+  \*********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  acf.unload = new acf.Model({
+    wait: 'load',
+    active: true,
+    changed: false,
+    actions: {
+      validation_failure: 'startListening',
+      validation_success: 'stopListening'
+    },
+    events: {
+      'change form .acf-field': 'startListening',
+      'submit form': 'stopListening'
+    },
+    enable: function () {
+      this.active = true;
+    },
+    disable: function () {
+      this.active = false;
+    },
+    reset: function () {
+      this.stopListening();
+    },
+    startListening: function () {
+      // bail early if already changed, not active
+      if (this.changed || !this.active) {
+        return;
+      }
+
+      // update
+      this.changed = true;
+
+      // add event
+      $(window).on('beforeunload', this.onUnload);
+    },
+    stopListening: function () {
+      // update
+      this.changed = false;
+
+      // remove event
+      $(window).off('beforeunload', this.onUnload);
+    },
+    onUnload: function () {
+      return acf.__('The changes you made will be lost if you navigate away from this page');
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-validation.js":
+/*!*************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-validation.js ***!
+  \*************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   *  Validator
+   *
+   *  The model for validating forms
+   *
+   *  @date	4/9/18
+   *  @since	5.7.5
+   *
+   *  @param	void
+   *  @return	void
+   */
+  var Validator = acf.Model.extend({
+    /** @var string The model identifier. */
+    id: 'Validator',
+    /** @var object The model data. */
+    data: {
+      /** @var array The form errors. */
+      errors: [],
+      /** @var object The form notice. */
+      notice: null,
+      /** @var string The form status. loading, invalid, valid */
+      status: ''
+    },
+    /** @var object The model events. */
+    events: {
+      'changed:status': 'onChangeStatus'
+    },
+    /**
+     *  addErrors
+     *
+     *  Adds errors to the form.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	array errors An array of errors.
+     *  @return	void
+     */
+    addErrors: function (errors) {
+      errors.map(this.addError, this);
+    },
+    /**
+     *  addError
+     *
+     *  Adds and error to the form.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	object error An error object containing input and message.
+     *  @return	void
+     */
+    addError: function (error) {
+      this.data.errors.push(error);
+    },
+    /**
+     *  hasErrors
+     *
+     *  Returns true if the form has errors.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	void
+     *  @return	bool
+     */
+    hasErrors: function () {
+      return this.data.errors.length;
+    },
+    /**
+     *  clearErrors
+     *
+     *  Removes any errors.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	void
+     *  @return	void
+     */
+    clearErrors: function () {
+      return this.data.errors = [];
+    },
+    /**
+     *  getErrors
+     *
+     *  Returns the forms errors.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	void
+     *  @return	array
+     */
+    getErrors: function () {
+      return this.data.errors;
+    },
+    /**
+     *  getFieldErrors
+     *
+     *  Returns the forms field errors.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	void
+     *  @return	array
+     */
+    getFieldErrors: function () {
+      // vars
+      var errors = [];
+      var inputs = [];
+
+      // loop
+      this.getErrors().map(function (error) {
+        // bail early if global
+        if (!error.input) return;
+
+        // update if exists
+        var i = inputs.indexOf(error.input);
+        if (i > -1) {
+          errors[i] = error;
+
+          // update
+        } else {
+          errors.push(error);
+          inputs.push(error.input);
+        }
+      });
+
+      // return
+      return errors;
+    },
+    /**
+     *  getGlobalErrors
+     *
+     *  Returns the forms global errors (errors without a specific input).
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	void
+     *  @return	array
+     */
+    getGlobalErrors: function () {
+      // return array of errors that contain no input
+      return this.getErrors().filter(function (error) {
+        return !error.input;
+      });
+    },
+    /**
+     *  showErrors
+     *
+     *  Displays all errors for this form.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	void
+     *  @return	void
+     */
+    showErrors: function () {
+      // bail early if no errors
+      if (!this.hasErrors()) {
+        return;
+      }
+
+      // vars
+      var fieldErrors = this.getFieldErrors();
+      var globalErrors = this.getGlobalErrors();
+
+      // vars
+      var errorCount = 0;
+      var $scrollTo = false;
+
+      // loop
+      fieldErrors.map(function (error) {
+        // get input
+        var $input = this.$('[name="' + error.input + '"]').first();
+
+        // if $_POST value was an array, this $input may not exist
+        if (!$input.length) {
+          $input = this.$('[name^="' + error.input + '"]').first();
+        }
+
+        // bail early if input doesn't exist
+        if (!$input.length) {
+          return;
+        }
+
+        // increase
+        errorCount++;
+
+        // get field
+        var field = acf.getClosestField($input);
+
+        // make sure the postbox containing this field is not hidden by screen options
+        ensureFieldPostBoxIsVisible(field.$el);
+
+        // show error
+        field.showError(error.message);
+
+        // set $scrollTo
+        if (!$scrollTo) {
+          $scrollTo = field.$el;
+        }
+      }, this);
+
+      // errorMessage
+      var errorMessage = acf.__('Validation failed');
+      globalErrors.map(function (error) {
+        errorMessage += '. ' + error.message;
+      });
+      if (errorCount == 1) {
+        errorMessage += '. ' + acf.__('1 field requires attention');
+      } else if (errorCount > 1) {
+        errorMessage += '. ' + acf.__('%d fields require attention').replace('%d', errorCount);
+      }
+
+      // notice
+      if (this.has('notice')) {
+        this.get('notice').update({
+          type: 'error',
+          text: errorMessage
+        });
+      } else {
+        var notice = acf.newNotice({
+          type: 'error',
+          text: errorMessage,
+          target: this.$el
+        });
+        this.set('notice', notice);
+      }
+
+      // if no $scrollTo, set to message
+      if (!$scrollTo) {
+        $scrollTo = this.get('notice').$el;
+      }
+
+      // timeout
+      setTimeout(function () {
+        $('html, body').animate({
+          scrollTop: $scrollTo.offset().top - $(window).height() / 2
+        }, 500);
+      }, 10);
+    },
+    /**
+     *  onChangeStatus
+     *
+     *  Update the form class when changing the 'status' data
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	object e The event object.
+     *  @param	jQuery $el The form element.
+     *  @param	string value The new status.
+     *  @param	string prevValue The old status.
+     *  @return	void
+     */
+    onChangeStatus: function (e, $el, value, prevValue) {
+      this.$el.removeClass('is-' + prevValue).addClass('is-' + value);
+    },
+    /**
+     *  validate
+     *
+     *  Vaildates the form via AJAX.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	object args A list of settings to customize the validation process.
+     *  @return	bool True if the form is valid.
+     */
+    validate: function (args) {
+      // default args
+      args = acf.parseArgs(args, {
+        // trigger event
+        event: false,
+        // reset the form after submit
+        reset: false,
+        // loading callback
+        loading: function () {},
+        // complete callback
+        complete: function () {},
+        // failure callback
+        failure: function () {},
+        // success callback
+        success: function ($form) {
+          $form.submit();
+        }
+      });
+
+      // return true if is valid - allows form submit
+      if (this.get('status') == 'valid') {
+        return true;
+      }
+
+      // return false if is currently validating - prevents form submit
+      if (this.get('status') == 'validating') {
+        return false;
+      }
+
+      // return true if no ACF fields exist (no need to validate)
+      if (!this.$('.acf-field').length) {
+        return true;
+      }
+
+      // if event is provided, create a new success callback.
+      if (args.event) {
+        var event = $.Event(null, args.event);
+        args.success = function () {
+          acf.enableSubmit($(event.target)).trigger(event);
+        };
+      }
+
+      // action for 3rd party
+      acf.doAction('validation_begin', this.$el);
+
+      // lock form
+      acf.lockForm(this.$el);
+
+      // loading callback
+      args.loading(this.$el, this);
+
+      // update status
+      this.set('status', 'validating');
+
+      // success callback
+      var onSuccess = function (json) {
+        // validate
+        if (!acf.isAjaxSuccess(json)) {
+          return;
+        }
+
+        // filter
+        var data = acf.applyFilters('validation_complete', json.data, this.$el, this);
+
+        // add errors
+        if (!data.valid) {
+          this.addErrors(data.errors);
+        }
+      };
+
+      // complete
+      var onComplete = function () {
+        // unlock form
+        acf.unlockForm(this.$el);
+
+        // failure
+        if (this.hasErrors()) {
+          // update status
+          this.set('status', 'invalid');
+
+          // action
+          acf.doAction('validation_failure', this.$el, this);
+
+          // display errors
+          this.showErrors();
+
+          // failure callback
+          args.failure(this.$el, this);
+
+          // success
+        } else {
+          // update status
+          this.set('status', 'valid');
+
+          // remove previous error message
+          if (this.has('notice')) {
+            this.get('notice').update({
+              type: 'success',
+              text: acf.__('Validation successful'),
+              timeout: 1000
+            });
+          }
+
+          // action
+          acf.doAction('validation_success', this.$el, this);
+          acf.doAction('submit', this.$el);
+
+          // success callback (submit form)
+          args.success(this.$el, this);
+
+          // lock form
+          acf.lockForm(this.$el);
+
+          // reset
+          if (args.reset) {
+            this.reset();
+          }
+        }
+
+        // complete callback
+        args.complete(this.$el, this);
+
+        // clear errors
+        this.clearErrors();
+      };
+
+      // serialize form data
+      var data = acf.serialize(this.$el);
+      data.action = 'acf/validate_save_post';
+
+      // ajax
+      $.ajax({
+        url: acf.get('ajaxurl'),
+        data: acf.prepareForAjax(data),
+        type: 'post',
+        dataType: 'json',
+        context: this,
+        success: onSuccess,
+        complete: onComplete
+      });
+
+      // return false to fail validation and allow AJAX
+      return false;
+    },
+    /**
+     *  setup
+     *
+     *  Called during the constructor function to setup this instance
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	jQuery $form The form element.
+     *  @return	void
+     */
+    setup: function ($form) {
+      // set $el
+      this.$el = $form;
+    },
+    /**
+     *  reset
+     *
+     *  Rests the validation to be used again.
+     *
+     *  @date	6/9/18
+     *  @since	5.7.5
+     *
+     *  @param	void
+     *  @return	void
+     */
+    reset: function () {
+      // reset data
+      this.set('errors', []);
+      this.set('notice', null);
+      this.set('status', '');
+
+      // unlock form
+      acf.unlockForm(this.$el);
+    }
+  });
+
+  /**
+   *  getValidator
+   *
+   *  Returns the instance for a given form element.
+   *
+   *  @date	4/9/18
+   *  @since	5.7.5
+   *
+   *  @param	jQuery $el The form element.
+   *  @return	object
+   */
+  var getValidator = function ($el) {
+    // instantiate
+    var validator = $el.data('acf');
+    if (!validator) {
+      validator = new Validator($el);
+    }
+
+    // return
+    return validator;
+  };
+
+  /**
+   *  acf.validateForm
+   *
+   *  A helper function for the Validator.validate() function.
+   *  Returns true if form is valid, or fetches a validation request and returns false.
+   *
+   *  @date	4/4/18
+   *  @since	5.6.9
+   *
+   *  @param	object args A list of settings to customize the validation process.
+   *  @return	bool
+   */
+
+  acf.validateForm = function (args) {
+    return getValidator(args.form).validate(args);
+  };
+
+  /**
+   *  acf.enableSubmit
+   *
+   *  Enables a submit button and returns the element.
+   *
+   *  @date	30/8/18
+   *  @since	5.7.4
+   *
+   *  @param	jQuery $submit The submit button.
+   *  @return	jQuery
+   */
+  acf.enableSubmit = function ($submit) {
+    return $submit.removeClass('disabled').removeAttr('disabled');
+  };
+
+  /**
+   *  acf.disableSubmit
+   *
+   *  Disables a submit button and returns the element.
+   *
+   *  @date	30/8/18
+   *  @since	5.7.4
+   *
+   *  @param	jQuery $submit The submit button.
+   *  @return	jQuery
+   */
+  acf.disableSubmit = function ($submit) {
+    return $submit.addClass('disabled').attr('disabled', true);
+  };
+
+  /**
+   *  acf.showSpinner
+   *
+   *  Shows the spinner element.
+   *
+   *  @date	4/9/18
+   *  @since	5.7.5
+   *
+   *  @param	jQuery $spinner The spinner element.
+   *  @return	jQuery
+   */
+  acf.showSpinner = function ($spinner) {
+    $spinner.addClass('is-active'); // add class (WP > 4.2)
+    $spinner.css('display', 'inline-block'); // css (WP < 4.2)
+    return $spinner;
+  };
+
+  /**
+   *  acf.hideSpinner
+   *
+   *  Hides the spinner element.
+   *
+   *  @date	4/9/18
+   *  @since	5.7.5
+   *
+   *  @param	jQuery $spinner The spinner element.
+   *  @return	jQuery
+   */
+  acf.hideSpinner = function ($spinner) {
+    $spinner.removeClass('is-active'); // add class (WP > 4.2)
+    $spinner.css('display', 'none'); // css (WP < 4.2)
+    return $spinner;
+  };
+
+  /**
+   *  acf.lockForm
+   *
+   *  Locks a form by disabeling its primary inputs and showing a spinner.
+   *
+   *  @date	4/9/18
+   *  @since	5.7.5
+   *
+   *  @param	jQuery $form The form element.
+   *  @return	jQuery
+   */
+  acf.lockForm = function ($form) {
+    // vars
+    var $wrap = findSubmitWrap($form);
+    var $submit = $wrap.find('.button, [type="submit"]').not('.acf-nav, .acf-repeater-add-row');
+    var $spinner = $wrap.find('.spinner, .acf-spinner');
+
+    // hide all spinners (hides the preview spinner)
+    acf.hideSpinner($spinner);
+
+    // lock
+    acf.disableSubmit($submit);
+    acf.showSpinner($spinner.last());
+    return $form;
+  };
+
+  /**
+   *  acf.unlockForm
+   *
+   *  Unlocks a form by enabeling its primary inputs and hiding all spinners.
+   *
+   *  @date	4/9/18
+   *  @since	5.7.5
+   *
+   *  @param	jQuery $form The form element.
+   *  @return	jQuery
+   */
+  acf.unlockForm = function ($form) {
+    // vars
+    var $wrap = findSubmitWrap($form);
+    var $submit = $wrap.find('.button, [type="submit"]').not('.acf-nav, .acf-repeater-add-row');
+    var $spinner = $wrap.find('.spinner, .acf-spinner');
+
+    // unlock
+    acf.enableSubmit($submit);
+    acf.hideSpinner($spinner);
+    return $form;
+  };
+
+  /**
+   *  findSubmitWrap
+   *
+   *  An internal function to find the 'primary' form submit wrapping element.
+   *
+   *  @date	4/9/18
+   *  @since	5.7.5
+   *
+   *  @param	jQuery $form The form element.
+   *  @return	jQuery
+   */
+  var findSubmitWrap = function ($form) {
+    // default post submit div
+    var $wrap = $form.find('#submitdiv');
+    if ($wrap.length) {
+      return $wrap;
+    }
+
+    // 3rd party publish box
+    var $wrap = $form.find('#submitpost');
+    if ($wrap.length) {
+      return $wrap;
+    }
+
+    // term, user
+    var $wrap = $form.find('p.submit').last();
+    if ($wrap.length) {
+      return $wrap;
+    }
+
+    // front end form
+    var $wrap = $form.find('.acf-form-submit');
+    if ($wrap.length) {
+      return $wrap;
+    }
+
+    // default
+    return $form;
+  };
+
+  /**
+   * A debounced function to trigger a form submission.
+   *
+   * @date	15/07/2020
+   * @since	5.9.0
+   *
+   * @param	type Var Description.
+   * @return	type Description.
+   */
+  var submitFormDebounced = acf.debounce(function ($form) {
+    $form.submit();
+  });
+
+  /**
+   * Ensure field is visible for validation errors
+   *
+   * @date	20/10/2021
+   * @since	5.11.0
+   */
+  var ensureFieldPostBoxIsVisible = function ($el) {
+    // Find the postbox element containing this field.
+    var $postbox = $el.parents('.acf-postbox');
+    if ($postbox.length) {
+      var acf_postbox = acf.getPostbox($postbox);
+      if (acf_postbox && acf_postbox.isHiddenByScreenOptions()) {
+        // Rather than using .show() here, we don't want the field to appear next reload.
+        // So just temporarily show the field group so validation can complete.
+        acf_postbox.$el.removeClass('hide-if-js');
+        acf_postbox.$el.css('display', '');
+      }
+    }
+  };
+
+  /**
+   * Ensure metaboxes which contain browser validation failures are visible.
+   *
+   * @date	20/10/2021
+   * @since	5.11.0
+   */
+  var ensureInvalidFieldVisibility = function () {
+    // Load each ACF input field and check it's browser validation state.
+    var $inputs = $('.acf-field input');
+    $inputs.each(function () {
+      if (!this.checkValidity()) {
+        // Field is invalid, so we need to make sure it's metabox is visible.
+        ensureFieldPostBoxIsVisible($(this));
+      }
+    });
+  };
+
+  /**
+   *  acf.validation
+   *
+   *  Global validation logic
+   *
+   *  @date	4/4/18
+   *  @since	5.6.9
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  acf.validation = new acf.Model({
+    /** @var string The model identifier. */
+    id: 'validation',
+    /** @var bool The active state. Set to false before 'prepare' to prevent validation. */
+    active: true,
+    /** @var string The model initialize time. */
+    wait: 'prepare',
+    /** @var object The model actions. */
+    actions: {
+      ready: 'addInputEvents',
+      append: 'addInputEvents'
+    },
+    /** @var object The model events. */
+    events: {
+      'click input[type="submit"]': 'onClickSubmit',
+      'click button[type="submit"]': 'onClickSubmit',
+      //'click #editor .editor-post-publish-button': 'onClickSubmitGutenberg',
+      'click #save-post': 'onClickSave',
+      'submit form#post': 'onSubmitPost',
+      'submit form': 'onSubmit'
+    },
+    /**
+     *  initialize
+     *
+     *  Called when initializing the model.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	void
+     *  @return	void
+     */
+    initialize: function () {
+      // check 'validation' setting
+      if (!acf.get('validation')) {
+        this.active = false;
+        this.actions = {};
+        this.events = {};
+      }
+    },
+    /**
+     *  enable
+     *
+     *  Enables validation.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	void
+     *  @return	void
+     */
+    enable: function () {
+      this.active = true;
+    },
+    /**
+     *  disable
+     *
+     *  Disables validation.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	void
+     *  @return	void
+     */
+    disable: function () {
+      this.active = false;
+    },
+    /**
+     *  reset
+     *
+     *  Rests the form validation to be used again
+     *
+     *  @date	6/9/18
+     *  @since	5.7.5
+     *
+     *  @param	jQuery $form The form element.
+     *  @return	void
+     */
+    reset: function ($form) {
+      getValidator($form).reset();
+    },
+    /**
+     *  addInputEvents
+     *
+     *  Adds 'invalid' event listeners to HTML inputs.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	jQuery $el The element being added / readied.
+     *  @return	void
+     */
+    addInputEvents: function ($el) {
+      // Bug exists in Safari where custom "invalid" handling prevents draft from saving.
+      if (acf.get('browser') === 'safari') return;
+
+      // vars
+      var $inputs = $('.acf-field [name]', $el);
+
+      // check
+      if ($inputs.length) {
+        this.on($inputs, 'invalid', 'onInvalid');
+      }
+    },
+    /**
+     *  onInvalid
+     *
+     *  Callback for the 'invalid' event.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	object e The event object.
+     *  @param	jQuery $el The input element.
+     *  @return	void
+     */
+    onInvalid: function (e, $el) {
+      // prevent default
+      // - prevents browser error message
+      // - also fixes chrome bug where 'hidden-by-tab' field throws focus error
+      e.preventDefault();
+
+      // vars
+      var $form = $el.closest('form');
+
+      // check form exists
+      if ($form.length) {
+        // add error to validator
+        getValidator($form).addError({
+          input: $el.attr('name'),
+          message: acf.strEscape(e.target.validationMessage)
+        });
+
+        // trigger submit on $form
+        // - allows for "save", "preview" and "publish" to work
+        submitFormDebounced($form);
+      }
+    },
+    /**
+     *  onClickSubmit
+     *
+     *  Callback when clicking submit.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	object e The event object.
+     *  @param	jQuery $el The input element.
+     *  @return	void
+     */
+    onClickSubmit: function (e, $el) {
+      // Some browsers (safari) force their browser validation before our AJAX validation,
+      // so we need to make sure fields are visible earlier than showErrors()
+      ensureInvalidFieldVisibility();
+
+      // store the "click event" for later use in this.onSubmit()
+      this.set('originalEvent', e);
+    },
+    /**
+     *  onClickSave
+     *
+     *  Set ignore to true when saving a draft.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	object e The event object.
+     *  @param	jQuery $el The input element.
+     *  @return	void
+     */
+    onClickSave: function (e, $el) {
+      this.set('ignore', true);
+    },
+    /**
+     *  onClickSubmitGutenberg
+     *
+     *  Custom validation event for the gutenberg editor.
+     *
+     *  @date	29/10/18
+     *  @since	5.8.0
+     *
+     *  @param	object e The event object.
+     *  @param	jQuery $el The input element.
+     *  @return	void
+     */
+    onClickSubmitGutenberg: function (e, $el) {
+      // validate
+      var valid = acf.validateForm({
+        form: $('#editor'),
+        event: e,
+        reset: true,
+        failure: function ($form, validator) {
+          var $notice = validator.get('notice').$el;
+          $notice.appendTo('.components-notice-list');
+          $notice.find('.acf-notice-dismiss').removeClass('small');
+        }
+      });
+
+      // if not valid, stop event and allow validation to continue
+      if (!valid) {
+        e.preventDefault();
+        e.stopImmediatePropagation();
+      }
+    },
+    /**
+     * onSubmitPost
+     *
+     * Callback when the 'post' form is submit.
+     *
+     * @date	5/3/19
+     * @since	5.7.13
+     *
+     * @param	object e The event object.
+     * @param	jQuery $el The input element.
+     * @return	void
+     */
+    onSubmitPost: function (e, $el) {
+      // Check if is preview.
+      if ($('input#wp-preview').val() === 'dopreview') {
+        // Ignore validation.
+        this.set('ignore', true);
+
+        // Unlock form to fix conflict with core "submit.edit-post" event causing all submit buttons to be disabled.
+        acf.unlockForm($el);
+      }
+    },
+    /**
+     *  onSubmit
+     *
+     *  Callback when the form is submit.
+     *
+     *  @date	4/9/18
+     *  @since	5.7.5
+     *
+     *  @param	object e The event object.
+     *  @param	jQuery $el The input element.
+     *  @return	void
+     */
+    onSubmit: function (e, $el) {
+      // Allow form to submit if...
+      if (
+      // Validation has been disabled.
+      !this.active ||
+      // Or this event is to be ignored.
+      this.get('ignore') ||
+      // Or this event has already been prevented.
+      e.isDefaultPrevented()) {
+        // Return early and call reset function.
+        return this.allowSubmit();
+      }
+
+      // Validate form.
+      var valid = acf.validateForm({
+        form: $el,
+        event: this.get('originalEvent')
+      });
+
+      // If not valid, stop event to prevent form submit.
+      if (!valid) {
+        e.preventDefault();
+      }
+    },
+    /**
+     * allowSubmit
+     *
+     * Resets data during onSubmit when the form is allowed to submit.
+     *
+     * @date	5/3/19
+     * @since	5.7.13
+     *
+     * @param	void
+     * @return	void
+     */
+    allowSubmit: function () {
+      // Reset "ignore" state.
+      this.set('ignore', false);
+
+      // Reset "originalEvent" object.
+      this.set('originalEvent', false);
+
+      // Return true
+      return true;
+    }
+  });
+  var gutenbergValidation = new acf.Model({
+    wait: 'prepare',
+    initialize: function () {
+      // Bail early if not Gutenberg.
+      if (!acf.isGutenberg()) {
+        return;
+      }
+
+      // Custommize the editor.
+      this.customizeEditor();
+    },
+    customizeEditor: function () {
+      // Extract vars.
+      var editor = wp.data.dispatch('core/editor');
+      var editorSelect = wp.data.select('core/editor');
+      var notices = wp.data.dispatch('core/notices');
+
+      // Backup original method.
+      var savePost = editor.savePost;
+
+      // Listen for changes to post status and perform actions:
+      // a) Enable validation for "publish" action.
+      // b) Remember last non "publish" status used for restoring after validation fail.
+      var useValidation = false;
+      var lastPostStatus = '';
+      wp.data.subscribe(function () {
+        var postStatus = editorSelect.getEditedPostAttribute('status');
+        useValidation = postStatus === 'publish' || postStatus === 'future';
+        lastPostStatus = postStatus !== 'publish' ? postStatus : lastPostStatus;
+      });
+
+      // Create validation version.
+      editor.savePost = function (options) {
+        options = options || {};
+
+        // Backup vars.
+        var _this = this;
+        var _args = arguments;
+
+        // Perform validation within a Promise.
+        return new Promise(function (resolve, reject) {
+          // Bail early if is autosave or preview.
+          if (options.isAutosave || options.isPreview) {
+            return resolve('Validation ignored (autosave).');
+          }
+
+          // Bail early if validation is not needed.
+          if (!useValidation) {
+            return resolve('Validation ignored (draft).');
+          }
+
+          // Validate the editor form.
+          var valid = acf.validateForm({
+            form: $('#editor'),
+            reset: true,
+            complete: function ($form, validator) {
+              // Always unlock the form after AJAX.
+              editor.unlockPostSaving('acf');
+            },
+            failure: function ($form, validator) {
+              // Get validation error and append to Gutenberg notices.
+              var notice = validator.get('notice');
+              notices.createErrorNotice(notice.get('text'), {
+                id: 'acf-validation',
+                isDismissible: true
+              });
+              notice.remove();
+
+              // Restore last non "publish" status.
+              if (lastPostStatus) {
+                editor.editPost({
+                  status: lastPostStatus
+                });
+              }
+
+              // Rejext promise and prevent savePost().
+              reject('Validation failed.');
+            },
+            success: function () {
+              notices.removeNotice('acf-validation');
+
+              // Resolve promise and allow savePost().
+              resolve('Validation success.');
+            }
+          });
+
+          // Resolve promise and allow savePost() if no validation is needed.
+          if (valid) {
+            resolve('Validation bypassed.');
+
+            // Otherwise, lock the form and wait for AJAX response.
+          } else {
+            editor.lockPostSaving('acf');
+          }
+        }).then(function () {
+          return savePost.apply(_this, _args);
+        }).catch(function (err) {
+          // Nothing to do here, user is alerted of validation issues.
+        });
+      };
+    }
+  });
+})(jQuery);
+
+/***/ })
+
+/******/ 	});
+/************************************************************************/
+/******/ 	// The module cache
+/******/ 	var __webpack_module_cache__ = {};
+/******/ 	
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/ 		// Check if module is in cache
+/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
+/******/ 		if (cachedModule !== undefined) {
+/******/ 			return cachedModule.exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = __webpack_module_cache__[moduleId] = {
+/******/ 			// no module.id needed
+/******/ 			// no module.loaded needed
+/******/ 			exports: {}
+/******/ 		};
+/******/ 	
+/******/ 		// Execute the module function
+/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/ 	
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/ 	
+/************************************************************************/
+/******/ 	/* webpack/runtime/compat get default export */
+/******/ 	!function() {
+/******/ 		// getDefaultExport function for compatibility with non-harmony modules
+/******/ 		__webpack_require__.n = function(module) {
+/******/ 			var getter = module && module.__esModule ?
+/******/ 				function() { return module['default']; } :
+/******/ 				function() { return module; };
+/******/ 			__webpack_require__.d(getter, { a: getter });
+/******/ 			return getter;
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/define property getters */
+/******/ 	!function() {
+/******/ 		// define getter functions for harmony exports
+/******/ 		__webpack_require__.d = function(exports, definition) {
+/******/ 			for(var key in definition) {
+/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ 				}
+/******/ 			}
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
+/******/ 	!function() {
+/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/make namespace object */
+/******/ 	!function() {
+/******/ 		// define __esModule on exports
+/******/ 		__webpack_require__.r = function(exports) {
+/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 			}
+/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be in strict mode.
+!function() {
+"use strict";
+/*!*******************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/acf-input.js ***!
+  \*******************************************************************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _acf_field_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_acf-field.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field.js");
+/* harmony import */ var _acf_field_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_acf_field_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _acf_fields_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_acf-fields.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-fields.js");
+/* harmony import */ var _acf_fields_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_acf_fields_js__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _acf_field_accordion_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_acf-field-accordion.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-accordion.js");
+/* harmony import */ var _acf_field_accordion_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_acf_field_accordion_js__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _acf_field_button_group_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_acf-field-button-group.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-button-group.js");
+/* harmony import */ var _acf_field_button_group_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_acf_field_button_group_js__WEBPACK_IMPORTED_MODULE_3__);
+/* harmony import */ var _acf_field_checkbox_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_acf-field-checkbox.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-checkbox.js");
+/* harmony import */ var _acf_field_checkbox_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_acf_field_checkbox_js__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var _acf_field_color_picker_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_acf-field-color-picker.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-color-picker.js");
+/* harmony import */ var _acf_field_color_picker_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_acf_field_color_picker_js__WEBPACK_IMPORTED_MODULE_5__);
+/* harmony import */ var _acf_field_date_picker_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_acf-field-date-picker.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-picker.js");
+/* harmony import */ var _acf_field_date_picker_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_acf_field_date_picker_js__WEBPACK_IMPORTED_MODULE_6__);
+/* harmony import */ var _acf_field_date_time_picker_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_acf-field-date-time-picker.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-date-time-picker.js");
+/* harmony import */ var _acf_field_date_time_picker_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_acf_field_date_time_picker_js__WEBPACK_IMPORTED_MODULE_7__);
+/* harmony import */ var _acf_field_google_map_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./_acf-field-google-map.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-google-map.js");
+/* harmony import */ var _acf_field_google_map_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_acf_field_google_map_js__WEBPACK_IMPORTED_MODULE_8__);
+/* harmony import */ var _acf_field_image_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_acf-field-image.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-image.js");
+/* harmony import */ var _acf_field_image_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_acf_field_image_js__WEBPACK_IMPORTED_MODULE_9__);
+/* harmony import */ var _acf_field_file_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./_acf-field-file.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-file.js");
+/* harmony import */ var _acf_field_file_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_acf_field_file_js__WEBPACK_IMPORTED_MODULE_10__);
+/* harmony import */ var _acf_field_link_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./_acf-field-link.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-link.js");
+/* harmony import */ var _acf_field_link_js__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(_acf_field_link_js__WEBPACK_IMPORTED_MODULE_11__);
+/* harmony import */ var _acf_field_oembed_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./_acf-field-oembed.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-oembed.js");
+/* harmony import */ var _acf_field_oembed_js__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_acf_field_oembed_js__WEBPACK_IMPORTED_MODULE_12__);
+/* harmony import */ var _acf_field_radio_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./_acf-field-radio.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-radio.js");
+/* harmony import */ var _acf_field_radio_js__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_acf_field_radio_js__WEBPACK_IMPORTED_MODULE_13__);
+/* harmony import */ var _acf_field_range_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./_acf-field-range.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-range.js");
+/* harmony import */ var _acf_field_range_js__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_acf_field_range_js__WEBPACK_IMPORTED_MODULE_14__);
+/* harmony import */ var _acf_field_relationship_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./_acf-field-relationship.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-relationship.js");
+/* harmony import */ var _acf_field_relationship_js__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(_acf_field_relationship_js__WEBPACK_IMPORTED_MODULE_15__);
+/* harmony import */ var _acf_field_select_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./_acf-field-select.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-select.js");
+/* harmony import */ var _acf_field_select_js__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(_acf_field_select_js__WEBPACK_IMPORTED_MODULE_16__);
+/* harmony import */ var _acf_field_tab_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./_acf-field-tab.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-tab.js");
+/* harmony import */ var _acf_field_tab_js__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(_acf_field_tab_js__WEBPACK_IMPORTED_MODULE_17__);
+/* harmony import */ var _acf_field_post_object_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./_acf-field-post-object.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-post-object.js");
+/* harmony import */ var _acf_field_post_object_js__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(_acf_field_post_object_js__WEBPACK_IMPORTED_MODULE_18__);
+/* harmony import */ var _acf_field_page_link_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./_acf-field-page-link.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-page-link.js");
+/* harmony import */ var _acf_field_page_link_js__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(_acf_field_page_link_js__WEBPACK_IMPORTED_MODULE_19__);
+/* harmony import */ var _acf_field_user_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./_acf-field-user.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-user.js");
+/* harmony import */ var _acf_field_user_js__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(_acf_field_user_js__WEBPACK_IMPORTED_MODULE_20__);
+/* harmony import */ var _acf_field_taxonomy_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./_acf-field-taxonomy.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-taxonomy.js");
+/* harmony import */ var _acf_field_taxonomy_js__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(_acf_field_taxonomy_js__WEBPACK_IMPORTED_MODULE_21__);
+/* harmony import */ var _acf_field_time_picker_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./_acf-field-time-picker.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-time-picker.js");
+/* harmony import */ var _acf_field_time_picker_js__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(_acf_field_time_picker_js__WEBPACK_IMPORTED_MODULE_22__);
+/* harmony import */ var _acf_field_true_false_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./_acf-field-true-false.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-true-false.js");
+/* harmony import */ var _acf_field_true_false_js__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_acf_field_true_false_js__WEBPACK_IMPORTED_MODULE_23__);
+/* harmony import */ var _acf_field_url_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./_acf-field-url.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-url.js");
+/* harmony import */ var _acf_field_url_js__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_acf_field_url_js__WEBPACK_IMPORTED_MODULE_24__);
+/* harmony import */ var _acf_field_wysiwyg_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./_acf-field-wysiwyg.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-field-wysiwyg.js");
+/* harmony import */ var _acf_field_wysiwyg_js__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(_acf_field_wysiwyg_js__WEBPACK_IMPORTED_MODULE_25__);
+/* harmony import */ var _acf_condition_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./_acf-condition.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-condition.js");
+/* harmony import */ var _acf_condition_js__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(_acf_condition_js__WEBPACK_IMPORTED_MODULE_26__);
+/* harmony import */ var _acf_conditions_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./_acf-conditions.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-conditions.js");
+/* harmony import */ var _acf_conditions_js__WEBPACK_IMPORTED_MODULE_27___default = /*#__PURE__*/__webpack_require__.n(_acf_conditions_js__WEBPACK_IMPORTED_MODULE_27__);
+/* harmony import */ var _acf_condition_types_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./_acf-condition-types.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-condition-types.js");
+/* harmony import */ var _acf_condition_types_js__WEBPACK_IMPORTED_MODULE_28___default = /*#__PURE__*/__webpack_require__.n(_acf_condition_types_js__WEBPACK_IMPORTED_MODULE_28__);
+/* harmony import */ var _acf_unload_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./_acf-unload.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-unload.js");
+/* harmony import */ var _acf_unload_js__WEBPACK_IMPORTED_MODULE_29___default = /*#__PURE__*/__webpack_require__.n(_acf_unload_js__WEBPACK_IMPORTED_MODULE_29__);
+/* harmony import */ var _acf_postbox_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./_acf-postbox.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-postbox.js");
+/* harmony import */ var _acf_postbox_js__WEBPACK_IMPORTED_MODULE_30___default = /*#__PURE__*/__webpack_require__.n(_acf_postbox_js__WEBPACK_IMPORTED_MODULE_30__);
+/* harmony import */ var _acf_media_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./_acf-media.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-media.js");
+/* harmony import */ var _acf_media_js__WEBPACK_IMPORTED_MODULE_31___default = /*#__PURE__*/__webpack_require__.n(_acf_media_js__WEBPACK_IMPORTED_MODULE_31__);
+/* harmony import */ var _acf_screen_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./_acf-screen.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-screen.js");
+/* harmony import */ var _acf_screen_js__WEBPACK_IMPORTED_MODULE_32___default = /*#__PURE__*/__webpack_require__.n(_acf_screen_js__WEBPACK_IMPORTED_MODULE_32__);
+/* harmony import */ var _acf_select2_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./_acf-select2.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-select2.js");
+/* harmony import */ var _acf_select2_js__WEBPACK_IMPORTED_MODULE_33___default = /*#__PURE__*/__webpack_require__.n(_acf_select2_js__WEBPACK_IMPORTED_MODULE_33__);
+/* harmony import */ var _acf_tinymce_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./_acf-tinymce.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-tinymce.js");
+/* harmony import */ var _acf_tinymce_js__WEBPACK_IMPORTED_MODULE_34___default = /*#__PURE__*/__webpack_require__.n(_acf_tinymce_js__WEBPACK_IMPORTED_MODULE_34__);
+/* harmony import */ var _acf_validation_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./_acf-validation.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-validation.js");
+/* harmony import */ var _acf_validation_js__WEBPACK_IMPORTED_MODULE_35___default = /*#__PURE__*/__webpack_require__.n(_acf_validation_js__WEBPACK_IMPORTED_MODULE_35__);
+/* harmony import */ var _acf_helpers_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./_acf-helpers.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-helpers.js");
+/* harmony import */ var _acf_helpers_js__WEBPACK_IMPORTED_MODULE_36___default = /*#__PURE__*/__webpack_require__.n(_acf_helpers_js__WEBPACK_IMPORTED_MODULE_36__);
+/* harmony import */ var _acf_compatibility_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./_acf-compatibility.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-compatibility.js");
+/* harmony import */ var _acf_compatibility_js__WEBPACK_IMPORTED_MODULE_37___default = /*#__PURE__*/__webpack_require__.n(_acf_compatibility_js__WEBPACK_IMPORTED_MODULE_37__);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}();
+/******/ })()
+;
+//# sourceMappingURL=acf-input.js.map

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/acf-input.js.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/acf-input.min.js


+ 4403 - 0
inc/acf/assets/build/js/acf.js

@@ -0,0 +1,4403 @@
+/******/ (function() { // webpackBootstrap
+/******/ 	var __webpack_modules__ = ({
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-hooks.js":
+/*!********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-hooks.js ***!
+  \********************************************************************/
+/***/ (function() {
+
+(function (window, undefined) {
+  'use strict';
+
+  /**
+   * Handles managing all events for whatever you plug it into. Priorities for hooks are based on lowest to highest in
+   * that, lowest priority hooks are fired first.
+   */
+  var EventManager = function () {
+    /**
+     * Maintain a reference to the object scope so our public methods never get confusing.
+     */
+    var MethodsAvailable = {
+      removeFilter: removeFilter,
+      applyFilters: applyFilters,
+      addFilter: addFilter,
+      removeAction: removeAction,
+      doAction: doAction,
+      addAction: addAction,
+      storage: getStorage
+    };
+
+    /**
+     * Contains the hooks that get registered with this EventManager. The array for storage utilizes a "flat"
+     * object literal such that looking up the hook utilizes the native object literal hash.
+     */
+    var STORAGE = {
+      actions: {},
+      filters: {}
+    };
+    function getStorage() {
+      return STORAGE;
+    }
+
+    /**
+     * Adds an action to the event manager.
+     *
+     * @param action Must contain namespace.identifier
+     * @param callback Must be a valid callback function before this action is added
+     * @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook
+     * @param [context] Supply a value to be used for this
+     */
+    function addAction(action, callback, priority, context) {
+      if (typeof action === 'string' && typeof callback === 'function') {
+        priority = parseInt(priority || 10, 10);
+        _addHook('actions', action, callback, priority, context);
+      }
+      return MethodsAvailable;
+    }
+
+    /**
+     * Performs an action if it exists. You can pass as many arguments as you want to this function; the only rule is
+     * that the first argument must always be the action.
+     */
+    function doAction( /* action, arg1, arg2, ... */
+    ) {
+      var args = Array.prototype.slice.call(arguments);
+      var action = args.shift();
+      if (typeof action === 'string') {
+        _runHook('actions', action, args);
+      }
+      return MethodsAvailable;
+    }
+
+    /**
+     * Removes the specified action if it contains a namespace.identifier & exists.
+     *
+     * @param action The action to remove
+     * @param [callback] Callback function to remove
+     */
+    function removeAction(action, callback) {
+      if (typeof action === 'string') {
+        _removeHook('actions', action, callback);
+      }
+      return MethodsAvailable;
+    }
+
+    /**
+     * Adds a filter to the event manager.
+     *
+     * @param filter Must contain namespace.identifier
+     * @param callback Must be a valid callback function before this action is added
+     * @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook
+     * @param [context] Supply a value to be used for this
+     */
+    function addFilter(filter, callback, priority, context) {
+      if (typeof filter === 'string' && typeof callback === 'function') {
+        priority = parseInt(priority || 10, 10);
+        _addHook('filters', filter, callback, priority, context);
+      }
+      return MethodsAvailable;
+    }
+
+    /**
+     * Performs a filter if it exists. You should only ever pass 1 argument to be filtered. The only rule is that
+     * the first argument must always be the filter.
+     */
+    function applyFilters( /* filter, filtered arg, arg2, ... */
+    ) {
+      var args = Array.prototype.slice.call(arguments);
+      var filter = args.shift();
+      if (typeof filter === 'string') {
+        return _runHook('filters', filter, args);
+      }
+      return MethodsAvailable;
+    }
+
+    /**
+     * Removes the specified filter if it contains a namespace.identifier & exists.
+     *
+     * @param filter The action to remove
+     * @param [callback] Callback function to remove
+     */
+    function removeFilter(filter, callback) {
+      if (typeof filter === 'string') {
+        _removeHook('filters', filter, callback);
+      }
+      return MethodsAvailable;
+    }
+
+    /**
+     * Removes the specified hook by resetting the value of it.
+     *
+     * @param type Type of hook, either 'actions' or 'filters'
+     * @param hook The hook (namespace.identifier) to remove
+     * @private
+     */
+    function _removeHook(type, hook, callback, context) {
+      if (!STORAGE[type][hook]) {
+        return;
+      }
+      if (!callback) {
+        STORAGE[type][hook] = [];
+      } else {
+        var handlers = STORAGE[type][hook];
+        var i;
+        if (!context) {
+          for (i = handlers.length; i--;) {
+            if (handlers[i].callback === callback) {
+              handlers.splice(i, 1);
+            }
+          }
+        } else {
+          for (i = handlers.length; i--;) {
+            var handler = handlers[i];
+            if (handler.callback === callback && handler.context === context) {
+              handlers.splice(i, 1);
+            }
+          }
+        }
+      }
+    }
+
+    /**
+     * Adds the hook to the appropriate storage container
+     *
+     * @param type 'actions' or 'filters'
+     * @param hook The hook (namespace.identifier) to add to our event manager
+     * @param callback The function that will be called when the hook is executed.
+     * @param priority The priority of this hook. Must be an integer.
+     * @param [context] A value to be used for this
+     * @private
+     */
+    function _addHook(type, hook, callback, priority, context) {
+      var hookObject = {
+        callback: callback,
+        priority: priority,
+        context: context
+      };
+
+      // Utilize 'prop itself' : http://jsperf.com/hasownproperty-vs-in-vs-undefined/19
+      var hooks = STORAGE[type][hook];
+      if (hooks) {
+        hooks.push(hookObject);
+        hooks = _hookInsertSort(hooks);
+      } else {
+        hooks = [hookObject];
+      }
+      STORAGE[type][hook] = hooks;
+    }
+
+    /**
+     * Use an insert sort for keeping our hooks organized based on priority. This function is ridiculously faster
+     * than bubble sort, etc: http://jsperf.com/javascript-sort
+     *
+     * @param hooks The custom array containing all of the appropriate hooks to perform an insert sort on.
+     * @private
+     */
+    function _hookInsertSort(hooks) {
+      var tmpHook, j, prevHook;
+      for (var i = 1, len = hooks.length; i < len; i++) {
+        tmpHook = hooks[i];
+        j = i;
+        while ((prevHook = hooks[j - 1]) && prevHook.priority > tmpHook.priority) {
+          hooks[j] = hooks[j - 1];
+          --j;
+        }
+        hooks[j] = tmpHook;
+      }
+      return hooks;
+    }
+
+    /**
+     * Runs the specified hook. If it is an action, the value is not modified but if it is a filter, it is.
+     *
+     * @param type 'actions' or 'filters'
+     * @param hook The hook ( namespace.identifier ) to be ran.
+     * @param args Arguments to pass to the action/filter. If it's a filter, args is actually a single parameter.
+     * @private
+     */
+    function _runHook(type, hook, args) {
+      var handlers = STORAGE[type][hook];
+      if (!handlers) {
+        return type === 'filters' ? args[0] : false;
+      }
+      var i = 0,
+        len = handlers.length;
+      if (type === 'filters') {
+        for (; i < len; i++) {
+          args[0] = handlers[i].callback.apply(handlers[i].context, args);
+        }
+      } else {
+        for (; i < len; i++) {
+          handlers[i].callback.apply(handlers[i].context, args);
+        }
+      }
+      return type === 'filters' ? args[0] : true;
+    }
+
+    // return all of the publicly available methods
+    return MethodsAvailable;
+  };
+
+  // instantiate
+  acf.hooks = new EventManager();
+})(window);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-modal.js":
+/*!********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-modal.js ***!
+  \********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  acf.models.Modal = acf.Model.extend({
+    data: {
+      title: '',
+      content: '',
+      toolbar: ''
+    },
+    events: {
+      'click .acf-modal-close': 'onClickClose'
+    },
+    setup: function (props) {
+      $.extend(this.data, props);
+      this.$el = $();
+      this.render();
+    },
+    initialize: function () {
+      this.open();
+    },
+    render: function () {
+      // Extract vars.
+      var title = this.get('title');
+      var content = this.get('content');
+      var toolbar = this.get('toolbar');
+
+      // Create element.
+      var $el = $(['<div>', '<div class="acf-modal">', '<div class="acf-modal-title">', '<h2>' + title + '</h2>', '<button class="acf-modal-close" type="button"><span class="dashicons dashicons-no"></span></button>', '</div>', '<div class="acf-modal-content">' + content + '</div>', '<div class="acf-modal-toolbar">' + toolbar + '</div>', '</div>', '<div class="acf-modal-backdrop acf-modal-close"></div>', '</div>'].join(''));
+
+      // Update DOM.
+      if (this.$el) {
+        this.$el.replaceWith($el);
+      }
+      this.$el = $el;
+
+      // Trigger action.
+      acf.doAction('append', $el);
+    },
+    update: function (props) {
+      this.data = acf.parseArgs(props, this.data);
+      this.render();
+    },
+    title: function (title) {
+      this.$('.acf-modal-title h2').html(title);
+    },
+    content: function (content) {
+      this.$('.acf-modal-content').html(content);
+    },
+    toolbar: function (toolbar) {
+      this.$('.acf-modal-toolbar').html(toolbar);
+    },
+    open: function () {
+      $('body').append(this.$el);
+    },
+    close: function () {
+      this.remove();
+    },
+    onClickClose: function (e, $el) {
+      e.preventDefault();
+      this.close();
+    }
+  });
+
+  /**
+   * Returns a new modal.
+   *
+   * @date	21/4/20
+   * @since	5.9.0
+   *
+   * @param	object props The modal props.
+   * @return	object
+   */
+  acf.newModal = function (props) {
+    return new acf.models.Modal(props);
+  };
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-model.js":
+/*!********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-model.js ***!
+  \********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  // Cached regex to split keys for `addEvent`.
+  var delegateEventSplitter = /^(\S+)\s*(.*)$/;
+
+  /**
+   *  extend
+   *
+   *  Helper function to correctly set up the prototype chain for subclasses
+   *  Heavily inspired by backbone.js
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	object protoProps New properties for this object.
+   *  @return	function.
+   */
+
+  var extend = function (protoProps) {
+    // vars
+    var Parent = this;
+    var Child;
+
+    // The constructor function for the new subclass is either defined by you
+    // (the "constructor" property in your `extend` definition), or defaulted
+    // by us to simply call the parent constructor.
+    if (protoProps && protoProps.hasOwnProperty('constructor')) {
+      Child = protoProps.constructor;
+    } else {
+      Child = function () {
+        return Parent.apply(this, arguments);
+      };
+    }
+
+    // Add static properties to the constructor function, if supplied.
+    $.extend(Child, Parent);
+
+    // Set the prototype chain to inherit from `parent`, without calling
+    // `parent`'s constructor function and add the prototype properties.
+    Child.prototype = Object.create(Parent.prototype);
+    $.extend(Child.prototype, protoProps);
+    Child.prototype.constructor = Child;
+
+    // Set a convenience property in case the parent's prototype is needed later.
+    //Child.prototype.__parent__ = Parent.prototype;
+
+    // return
+    return Child;
+  };
+
+  /**
+   *  Model
+   *
+   *  Base class for all inheritence
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	object props
+   *  @return	function.
+   */
+
+  var Model = acf.Model = function () {
+    // generate uique client id
+    this.cid = acf.uniqueId('acf');
+
+    // set vars to avoid modifying prototype
+    this.data = $.extend(true, {}, this.data);
+
+    // pass props to setup function
+    this.setup.apply(this, arguments);
+
+    // store on element (allow this.setup to create this.$el)
+    if (this.$el && !this.$el.data('acf')) {
+      this.$el.data('acf', this);
+    }
+
+    // initialize
+    var initialize = function () {
+      this.initialize();
+      this.addEvents();
+      this.addActions();
+      this.addFilters();
+    };
+
+    // initialize on action
+    if (this.wait && !acf.didAction(this.wait)) {
+      this.addAction(this.wait, initialize);
+
+      // initialize now
+    } else {
+      initialize.apply(this);
+    }
+  };
+
+  // Attach all inheritable methods to the Model prototype.
+  $.extend(Model.prototype, {
+    // Unique model id
+    id: '',
+    // Unique client id
+    cid: '',
+    // jQuery element
+    $el: null,
+    // Data specific to this instance
+    data: {},
+    // toggle used when changing data
+    busy: false,
+    changed: false,
+    // Setup events hooks
+    events: {},
+    actions: {},
+    filters: {},
+    // class used to avoid nested event triggers
+    eventScope: '',
+    // action to wait until initialize
+    wait: false,
+    // action priority default
+    priority: 10,
+    /**
+     *  get
+     *
+     *  Gets a specific data value
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	string name
+     *  @return	mixed
+     */
+
+    get: function (name) {
+      return this.data[name];
+    },
+    /**
+     *  has
+     *
+     *  Returns `true` if the data exists and is not null
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	string name
+     *  @return	boolean
+     */
+
+    has: function (name) {
+      return this.get(name) != null;
+    },
+    /**
+     *  set
+     *
+     *  Sets a specific data value
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	string name
+     *  @param	mixed value
+     *  @return	this
+     */
+
+    set: function (name, value, silent) {
+      // bail if unchanged
+      var prevValue = this.get(name);
+      if (prevValue == value) {
+        return this;
+      }
+
+      // set data
+      this.data[name] = value;
+
+      // trigger events
+      if (!silent) {
+        this.changed = true;
+        this.trigger('changed:' + name, [value, prevValue]);
+        this.trigger('changed', [name, value, prevValue]);
+      }
+
+      // return
+      return this;
+    },
+    /**
+     *  inherit
+     *
+     *  Inherits the data from a jQuery element
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	jQuery $el
+     *  @return	this
+     */
+
+    inherit: function (data) {
+      // allow jQuery
+      if (data instanceof jQuery) {
+        data = data.data();
+      }
+
+      // extend
+      $.extend(this.data, data);
+
+      // return
+      return this;
+    },
+    /**
+     *  prop
+     *
+     *  mimics the jQuery prop function
+     *
+     *  @date	4/6/18
+     *  @since	5.6.9
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    prop: function () {
+      return this.$el.prop.apply(this.$el, arguments);
+    },
+    /**
+     *  setup
+     *
+     *  Run during constructor function
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	n/a
+     *  @return	n/a
+     */
+
+    setup: function (props) {
+      $.extend(this, props);
+    },
+    /**
+     *  initialize
+     *
+     *  Also run during constructor function
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	n/a
+     *  @return	n/a
+     */
+
+    initialize: function () {},
+    /**
+     *  addElements
+     *
+     *  Adds multiple jQuery elements to this object
+     *
+     *  @date	9/5/18
+     *  @since	5.6.9
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    addElements: function (elements) {
+      elements = elements || this.elements || null;
+      if (!elements || !Object.keys(elements).length) return false;
+      for (var i in elements) {
+        this.addElement(i, elements[i]);
+      }
+    },
+    /**
+     *  addElement
+     *
+     *  description
+     *
+     *  @date	9/5/18
+     *  @since	5.6.9
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    addElement: function (name, selector) {
+      this['$' + name] = this.$(selector);
+    },
+    /**
+     *  addEvents
+     *
+     *  Adds multiple event handlers
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	object events {event1 : callback, event2 : callback, etc }
+     *  @return	n/a
+     */
+
+    addEvents: function (events) {
+      events = events || this.events || null;
+      if (!events) return false;
+      for (var key in events) {
+        var match = key.match(delegateEventSplitter);
+        this.on(match[1], match[2], events[key]);
+      }
+    },
+    /**
+     *  removeEvents
+     *
+     *  Removes multiple event handlers
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	object events {event1 : callback, event2 : callback, etc }
+     *  @return	n/a
+     */
+
+    removeEvents: function (events) {
+      events = events || this.events || null;
+      if (!events) return false;
+      for (var key in events) {
+        var match = key.match(delegateEventSplitter);
+        this.off(match[1], match[2], events[key]);
+      }
+    },
+    /**
+     *  getEventTarget
+     *
+     *  Returns a jQuery element to trigger an event on.
+     *
+     *  @date	5/6/18
+     *  @since	5.6.9
+     *
+     *  @param	jQuery $el		The default jQuery element. Optional.
+     *  @param	string event	The event name. Optional.
+     *  @return	jQuery
+     */
+
+    getEventTarget: function ($el, event) {
+      return $el || this.$el || $(document);
+    },
+    /**
+     *  validateEvent
+     *
+     *  Returns true if the event target's closest $el is the same as this.$el
+     *  Requires both this.el and this.$el to be defined
+     *
+     *  @date	5/6/18
+     *  @since	5.6.9
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    validateEvent: function (e) {
+      if (this.eventScope) {
+        return $(e.target).closest(this.eventScope).is(this.$el);
+      } else {
+        return true;
+      }
+    },
+    /**
+     *  proxyEvent
+     *
+     *  Returns a new event callback function scoped to this model
+     *
+     *  @date	29/3/18
+     *  @since	5.6.9
+     *
+     *  @param	function callback
+     *  @return	function
+     */
+
+    proxyEvent: function (callback) {
+      return this.proxy(function (e) {
+        // validate
+        if (!this.validateEvent(e)) {
+          return;
+        }
+
+        // construct args
+        var args = acf.arrayArgs(arguments);
+        var extraArgs = args.slice(1);
+        var eventArgs = [e, $(e.currentTarget)].concat(extraArgs);
+
+        // callback
+        callback.apply(this, eventArgs);
+      });
+    },
+    /**
+     *  on
+     *
+     *  Adds an event handler similar to jQuery
+     *  Uses the instance 'cid' to namespace event
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	string name
+     *  @param	string callback
+     *  @return	n/a
+     */
+
+    on: function (a1, a2, a3, a4) {
+      // vars
+      var $el, event, selector, callback, args;
+
+      // find args
+      if (a1 instanceof jQuery) {
+        // 1. args( $el, event, selector, callback )
+        if (a4) {
+          $el = a1;
+          event = a2;
+          selector = a3;
+          callback = a4;
+
+          // 2. args( $el, event, callback )
+        } else {
+          $el = a1;
+          event = a2;
+          callback = a3;
+        }
+      } else {
+        // 3. args( event, selector, callback )
+        if (a3) {
+          event = a1;
+          selector = a2;
+          callback = a3;
+
+          // 4. args( event, callback )
+        } else {
+          event = a1;
+          callback = a2;
+        }
+      }
+
+      // element
+      $el = this.getEventTarget($el);
+
+      // modify callback
+      if (typeof callback === 'string') {
+        callback = this.proxyEvent(this[callback]);
+      }
+
+      // modify event
+      event = event + '.' + this.cid;
+
+      // args
+      if (selector) {
+        args = [event, selector, callback];
+      } else {
+        args = [event, callback];
+      }
+
+      // on()
+      $el.on.apply($el, args);
+    },
+    /**
+     *  off
+     *
+     *  Removes an event handler similar to jQuery
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	string name
+     *  @param	string callback
+     *  @return	n/a
+     */
+
+    off: function (a1, a2, a3) {
+      // vars
+      var $el, event, selector, args;
+
+      // find args
+      if (a1 instanceof jQuery) {
+        // 1. args( $el, event, selector )
+        if (a3) {
+          $el = a1;
+          event = a2;
+          selector = a3;
+
+          // 2. args( $el, event )
+        } else {
+          $el = a1;
+          event = a2;
+        }
+      } else {
+        // 3. args( event, selector )
+        if (a2) {
+          event = a1;
+          selector = a2;
+
+          // 4. args( event )
+        } else {
+          event = a1;
+        }
+      }
+
+      // element
+      $el = this.getEventTarget($el);
+
+      // modify event
+      event = event + '.' + this.cid;
+
+      // args
+      if (selector) {
+        args = [event, selector];
+      } else {
+        args = [event];
+      }
+
+      // off()
+      $el.off.apply($el, args);
+    },
+    /**
+     *  trigger
+     *
+     *  Triggers an event similar to jQuery
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	string name
+     *  @param	string callback
+     *  @return	n/a
+     */
+
+    trigger: function (name, args, bubbles) {
+      var $el = this.getEventTarget();
+      if (bubbles) {
+        $el.trigger.apply($el, arguments);
+      } else {
+        $el.triggerHandler.apply($el, arguments);
+      }
+      return this;
+    },
+    /**
+     *  addActions
+     *
+     *  Adds multiple action handlers
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	object actions {action1 : callback, action2 : callback, etc }
+     *  @return	n/a
+     */
+
+    addActions: function (actions) {
+      actions = actions || this.actions || null;
+      if (!actions) return false;
+      for (var i in actions) {
+        this.addAction(i, actions[i]);
+      }
+    },
+    /**
+     *  removeActions
+     *
+     *  Removes multiple action handlers
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	object actions {action1 : callback, action2 : callback, etc }
+     *  @return	n/a
+     */
+
+    removeActions: function (actions) {
+      actions = actions || this.actions || null;
+      if (!actions) return false;
+      for (var i in actions) {
+        this.removeAction(i, actions[i]);
+      }
+    },
+    /**
+     *  addAction
+     *
+     *  Adds an action using the wp.hooks library
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	string name
+     *  @param	string callback
+     *  @return	n/a
+     */
+
+    addAction: function (name, callback, priority) {
+      //console.log('addAction', name, priority);
+      // defaults
+      priority = priority || this.priority;
+
+      // modify callback
+      if (typeof callback === 'string') {
+        callback = this[callback];
+      }
+
+      // add
+      acf.addAction(name, callback, priority, this);
+    },
+    /**
+     *  removeAction
+     *
+     *  Remove an action using the wp.hooks library
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	string name
+     *  @param	string callback
+     *  @return	n/a
+     */
+
+    removeAction: function (name, callback) {
+      acf.removeAction(name, this[callback]);
+    },
+    /**
+     *  addFilters
+     *
+     *  Adds multiple filter handlers
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	object filters {filter1 : callback, filter2 : callback, etc }
+     *  @return	n/a
+     */
+
+    addFilters: function (filters) {
+      filters = filters || this.filters || null;
+      if (!filters) return false;
+      for (var i in filters) {
+        this.addFilter(i, filters[i]);
+      }
+    },
+    /**
+     *  addFilter
+     *
+     *  Adds a filter using the wp.hooks library
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	string name
+     *  @param	string callback
+     *  @return	n/a
+     */
+
+    addFilter: function (name, callback, priority) {
+      // defaults
+      priority = priority || this.priority;
+
+      // modify callback
+      if (typeof callback === 'string') {
+        callback = this[callback];
+      }
+
+      // add
+      acf.addFilter(name, callback, priority, this);
+    },
+    /**
+     *  removeFilters
+     *
+     *  Removes multiple filter handlers
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	object filters {filter1 : callback, filter2 : callback, etc }
+     *  @return	n/a
+     */
+
+    removeFilters: function (filters) {
+      filters = filters || this.filters || null;
+      if (!filters) return false;
+      for (var i in filters) {
+        this.removeFilter(i, filters[i]);
+      }
+    },
+    /**
+     *  removeFilter
+     *
+     *  Remove a filter using the wp.hooks library
+     *
+     *  @date	14/12/17
+     *  @since	5.6.5
+     *
+     *  @param	string name
+     *  @param	string callback
+     *  @return	n/a
+     */
+
+    removeFilter: function (name, callback) {
+      acf.removeFilter(name, this[callback]);
+    },
+    /**
+     *  $
+     *
+     *  description
+     *
+     *  @date	16/12/17
+     *  @since	5.6.5
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    $: function (selector) {
+      return this.$el.find(selector);
+    },
+    /**
+     *  remove
+     *
+     *  Removes the element and listenters
+     *
+     *  @date	19/12/17
+     *  @since	5.6.5
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    remove: function () {
+      this.removeEvents();
+      this.removeActions();
+      this.removeFilters();
+      this.$el.remove();
+    },
+    /**
+     *  setTimeout
+     *
+     *  description
+     *
+     *  @date	16/1/18
+     *  @since	5.6.5
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    setTimeout: function (callback, milliseconds) {
+      return setTimeout(this.proxy(callback), milliseconds);
+    },
+    /**
+     *  time
+     *
+     *  used for debugging
+     *
+     *  @date	7/3/18
+     *  @since	5.6.9
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    time: function () {
+      console.time(this.id || this.cid);
+    },
+    /**
+     *  timeEnd
+     *
+     *  used for debugging
+     *
+     *  @date	7/3/18
+     *  @since	5.6.9
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    timeEnd: function () {
+      console.timeEnd(this.id || this.cid);
+    },
+    /**
+     *  show
+     *
+     *  description
+     *
+     *  @date	15/3/18
+     *  @since	5.6.9
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    show: function () {
+      acf.show(this.$el);
+    },
+    /**
+     *  hide
+     *
+     *  description
+     *
+     *  @date	15/3/18
+     *  @since	5.6.9
+     *
+     *  @param	type $var Description. Default.
+     *  @return	type Description.
+     */
+
+    hide: function () {
+      acf.hide(this.$el);
+    },
+    /**
+     *  proxy
+     *
+     *  Returns a new function scoped to this model
+     *
+     *  @date	29/3/18
+     *  @since	5.6.9
+     *
+     *  @param	function callback
+     *  @return	function
+     */
+
+    proxy: function (callback) {
+      return $.proxy(callback, this);
+    }
+  });
+
+  // Set up inheritance for the model
+  Model.extend = extend;
+
+  // Global model storage
+  acf.models = {};
+
+  /**
+   *  acf.getInstance
+   *
+   *  This function will get an instance from an element
+   *
+   *  @date	5/3/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.getInstance = function ($el) {
+    return $el.data('acf');
+  };
+
+  /**
+   *  acf.getInstances
+   *
+   *  This function will get an array of instances from multiple elements
+   *
+   *  @date	5/3/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.getInstances = function ($el) {
+    var instances = [];
+    $el.each(function () {
+      instances.push(acf.getInstance($(this)));
+    });
+    return instances;
+  };
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-notice.js":
+/*!*********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-notice.js ***!
+  \*********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var Notice = acf.Model.extend({
+    data: {
+      text: '',
+      type: '',
+      timeout: 0,
+      dismiss: true,
+      target: false,
+      close: function () {}
+    },
+    events: {
+      'click .acf-notice-dismiss': 'onClickClose'
+    },
+    tmpl: function () {
+      return '<div class="acf-notice"></div>';
+    },
+    setup: function (props) {
+      $.extend(this.data, props);
+      this.$el = $(this.tmpl());
+    },
+    initialize: function () {
+      // render
+      this.render();
+
+      // show
+      this.show();
+    },
+    render: function () {
+      // class
+      this.type(this.get('type'));
+
+      // text
+      this.html('<p>' + this.get('text') + '</p>');
+
+      // close
+      if (this.get('dismiss')) {
+        this.$el.append('<a href="#" class="acf-notice-dismiss acf-icon -cancel small"></a>');
+        this.$el.addClass('-dismiss');
+      }
+
+      // timeout
+      var timeout = this.get('timeout');
+      if (timeout) {
+        this.away(timeout);
+      }
+    },
+    update: function (props) {
+      // update
+      $.extend(this.data, props);
+
+      // re-initialize
+      this.initialize();
+
+      // refresh events
+      this.removeEvents();
+      this.addEvents();
+    },
+    show: function () {
+      var $target = this.get('target');
+      if ($target) {
+        $target.prepend(this.$el);
+      }
+    },
+    hide: function () {
+      this.$el.remove();
+    },
+    away: function (timeout) {
+      this.setTimeout(function () {
+        acf.remove(this.$el);
+      }, timeout);
+    },
+    type: function (type) {
+      // remove prev type
+      var prevType = this.get('type');
+      if (prevType) {
+        this.$el.removeClass('-' + prevType);
+      }
+
+      // add new type
+      this.$el.addClass('-' + type);
+
+      // backwards compatibility
+      if (type == 'error') {
+        this.$el.addClass('acf-error-message');
+      }
+    },
+    html: function (html) {
+      this.$el.html(acf.escHtml(html));
+    },
+    text: function (text) {
+      this.$('p').html(acf.escHtml(text));
+    },
+    onClickClose: function (e, $el) {
+      e.preventDefault();
+      this.get('close').apply(this, arguments);
+      this.remove();
+    }
+  });
+  acf.newNotice = function (props) {
+    // ensure object
+    if (typeof props !== 'object') {
+      props = {
+        text: props
+      };
+    }
+
+    // instantiate
+    return new Notice(props);
+  };
+  var noticeManager = new acf.Model({
+    wait: 'prepare',
+    priority: 1,
+    initialize: function () {
+      // vars
+      var $notice = $('.acf-admin-notice');
+
+      // move to avoid WP flicker
+      if ($notice.length) {
+        $('h1:first').after($notice);
+      }
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-panel.js":
+/*!********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-panel.js ***!
+  \********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  var panel = new acf.Model({
+    events: {
+      'click .acf-panel-title': 'onClick'
+    },
+    onClick: function (e, $el) {
+      e.preventDefault();
+      this.toggle($el.parent());
+    },
+    isOpen: function ($el) {
+      return $el.hasClass('-open');
+    },
+    toggle: function ($el) {
+      this.isOpen($el) ? this.close($el) : this.open($el);
+    },
+    open: function ($el) {
+      $el.addClass('-open');
+      $el.find('.acf-panel-title i').attr('class', 'dashicons dashicons-arrow-down');
+    },
+    close: function ($el) {
+      $el.removeClass('-open');
+      $el.find('.acf-panel-title i').attr('class', 'dashicons dashicons-arrow-right');
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-popup.js":
+/*!********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-popup.js ***!
+  \********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  acf.models.Popup = acf.Model.extend({
+    data: {
+      title: '',
+      content: '',
+      width: 0,
+      height: 0,
+      loading: false,
+      openedBy: null
+    },
+    events: {
+      'click [data-event="close"]': 'onClickClose',
+      'click .acf-close-popup': 'onClickClose',
+      'keydown': 'onPressEscapeClose'
+    },
+    setup: function (props) {
+      $.extend(this.data, props);
+      this.$el = $(this.tmpl());
+    },
+    initialize: function () {
+      this.render();
+      this.open();
+      this.focus();
+      this.lockFocusToPopup(true);
+    },
+    tmpl: function () {
+      return ['<div id="acf-popup" role="dialog" tabindex="-1">', '<div class="acf-popup-box acf-box">', '<div class="title"><h3></h3><a href="#" class="acf-icon -cancel grey" data-event="close" aria-label="' + acf.__('Close modal') + '"></a></div>', '<div class="inner"></div>', '<div class="loading"><i class="acf-loading"></i></div>', '</div>', '<div class="bg" data-event="close"></div>', '</div>'].join('');
+    },
+    render: function () {
+      // Extract Vars.
+      var title = this.get('title');
+      var content = this.get('content');
+      var loading = this.get('loading');
+      var width = this.get('width');
+      var height = this.get('height');
+
+      // Update.
+      this.title(title);
+      this.content(content);
+      if (width) {
+        this.$('.acf-popup-box').css('width', width);
+      }
+      if (height) {
+        this.$('.acf-popup-box').css('min-height', height);
+      }
+      this.loading(loading);
+
+      // Trigger action.
+      acf.doAction('append', this.$el);
+    },
+    /**
+     * Places focus within the popup.
+     */
+    focus: function () {
+      this.$el.find('.acf-icon').first().trigger('focus');
+    },
+    /**
+     * Locks focus within the popup.
+     *
+     * @param {boolean} locked True to lock focus, false to unlock.
+     */
+    lockFocusToPopup: function (locked) {
+      let inertElement = $('#wpwrap');
+      if (!inertElement.length) {
+        return;
+      }
+      inertElement[0].inert = locked;
+      inertElement.attr('aria-hidden', locked);
+    },
+    update: function (props) {
+      this.data = acf.parseArgs(props, this.data);
+      this.render();
+    },
+    title: function (title) {
+      this.$('.title:first h3').html(title);
+    },
+    content: function (content) {
+      this.$('.inner:first').html(content);
+    },
+    loading: function (show) {
+      var $loading = this.$('.loading:first');
+      show ? $loading.show() : $loading.hide();
+    },
+    open: function () {
+      $('body').append(this.$el);
+    },
+    close: function () {
+      this.lockFocusToPopup(false);
+      this.returnFocusToOrigin();
+      this.remove();
+    },
+    onClickClose: function (e, $el) {
+      e.preventDefault();
+      this.close();
+    },
+    /**
+     * Closes the popup when the escape key is pressed.
+     *
+     * @param {KeyboardEvent} e
+     */
+    onPressEscapeClose: function (e) {
+      if (e.key === 'Escape') {
+        this.close();
+      }
+    },
+    /**
+     * Returns focus to the element that opened the popup
+     * if it still exists in the DOM.
+     */
+    returnFocusToOrigin: function () {
+      if (this.data.openedBy instanceof $ && this.data.openedBy.closest('body').length > 0) {
+        this.data.openedBy.trigger('focus');
+      }
+    }
+  });
+
+  /**
+   *  newPopup
+   *
+   *  Creates a new Popup with the supplied props
+   *
+   *  @date	17/12/17
+   *  @since	5.6.5
+   *
+   *  @param	object props
+   *  @return	object
+   */
+
+  acf.newPopup = function (props) {
+    return new acf.models.Popup(props);
+  };
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf-tooltip.js":
+/*!**********************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf-tooltip.js ***!
+  \**********************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  acf.newTooltip = function (props) {
+    // ensure object
+    if (typeof props !== 'object') {
+      props = {
+        text: props
+      };
+    }
+
+    // confirmRemove
+    if (props.confirmRemove !== undefined) {
+      props.textConfirm = acf.__('Remove');
+      props.textCancel = acf.__('Cancel');
+      return new TooltipConfirm(props);
+
+      // confirm
+    } else if (props.confirm !== undefined) {
+      return new TooltipConfirm(props);
+
+      // default
+    } else {
+      return new Tooltip(props);
+    }
+  };
+  var Tooltip = acf.Model.extend({
+    data: {
+      text: '',
+      timeout: 0,
+      target: null
+    },
+    tmpl: function () {
+      return '<div class="acf-tooltip"></div>';
+    },
+    setup: function (props) {
+      $.extend(this.data, props);
+      this.$el = $(this.tmpl());
+    },
+    initialize: function () {
+      // render
+      this.render();
+
+      // append
+      this.show();
+
+      // position
+      this.position();
+
+      // timeout
+      var timeout = this.get('timeout');
+      if (timeout) {
+        setTimeout($.proxy(this.fade, this), timeout);
+      }
+    },
+    update: function (props) {
+      $.extend(this.data, props);
+      this.initialize();
+    },
+    render: function () {
+      this.html(this.get('text'));
+    },
+    show: function () {
+      $('body').append(this.$el);
+    },
+    hide: function () {
+      this.$el.remove();
+    },
+    fade: function () {
+      // add class
+      this.$el.addClass('acf-fade-up');
+
+      // remove
+      this.setTimeout(function () {
+        this.remove();
+      }, 250);
+    },
+    html: function (html) {
+      this.$el.html(html);
+    },
+    position: function () {
+      // vars
+      var $tooltip = this.$el;
+      var $target = this.get('target');
+      if (!$target) return;
+
+      // Reset position.
+      $tooltip.removeClass('right left bottom top').css({
+        top: 0,
+        left: 0
+      });
+
+      // Declare tollerance to edge of screen.
+      var tolerance = 10;
+
+      // Find target position.
+      var targetWidth = $target.outerWidth();
+      var targetHeight = $target.outerHeight();
+      var targetTop = $target.offset().top;
+      var targetLeft = $target.offset().left;
+
+      // Find tooltip position.
+      var tooltipWidth = $tooltip.outerWidth();
+      var tooltipHeight = $tooltip.outerHeight();
+      var tooltipTop = $tooltip.offset().top; // Should be 0, but WP media grid causes this to be 32 (toolbar padding).
+
+      // Assume default top alignment.
+      var top = targetTop - tooltipHeight - tooltipTop;
+      var left = targetLeft + targetWidth / 2 - tooltipWidth / 2;
+
+      // Check if too far left.
+      if (left < tolerance) {
+        $tooltip.addClass('right');
+        left = targetLeft + targetWidth;
+        top = targetTop + targetHeight / 2 - tooltipHeight / 2 - tooltipTop;
+
+        // Check if too far right.
+      } else if (left + tooltipWidth + tolerance > $(window).width()) {
+        $tooltip.addClass('left');
+        left = targetLeft - tooltipWidth;
+        top = targetTop + targetHeight / 2 - tooltipHeight / 2 - tooltipTop;
+
+        // Check if too far up.
+      } else if (top - $(window).scrollTop() < tolerance) {
+        $tooltip.addClass('bottom');
+        top = targetTop + targetHeight - tooltipTop;
+
+        // No colision with edges.
+      } else {
+        $tooltip.addClass('top');
+      }
+
+      // update css
+      $tooltip.css({
+        top: top,
+        left: left
+      });
+    }
+  });
+  var TooltipConfirm = Tooltip.extend({
+    data: {
+      text: '',
+      textConfirm: '',
+      textCancel: '',
+      target: null,
+      targetConfirm: true,
+      confirm: function () {},
+      cancel: function () {},
+      context: false
+    },
+    events: {
+      'click [data-event="cancel"]': 'onCancel',
+      'click [data-event="confirm"]': 'onConfirm'
+    },
+    addEvents: function () {
+      // add events
+      acf.Model.prototype.addEvents.apply(this);
+
+      // vars
+      var $document = $(document);
+      var $target = this.get('target');
+
+      // add global 'cancel' click event
+      // - use timeout to avoid the current 'click' event triggering the onCancel function
+      this.setTimeout(function () {
+        this.on($document, 'click', 'onCancel');
+      });
+
+      // add target 'confirm' click event
+      // - allow setting to control this feature
+      if (this.get('targetConfirm')) {
+        this.on($target, 'click', 'onConfirm');
+      }
+    },
+    removeEvents: function () {
+      // remove events
+      acf.Model.prototype.removeEvents.apply(this);
+
+      // vars
+      var $document = $(document);
+      var $target = this.get('target');
+
+      // remove custom events
+      this.off($document, 'click');
+      this.off($target, 'click');
+    },
+    render: function () {
+      // defaults
+      var text = this.get('text') || acf.__('Are you sure?');
+      var textConfirm = this.get('textConfirm') || acf.__('Yes');
+      var textCancel = this.get('textCancel') || acf.__('No');
+
+      // html
+      var html = [text, '<a href="#" data-event="confirm">' + textConfirm + '</a>', '<a href="#" data-event="cancel">' + textCancel + '</a>'].join(' ');
+
+      // html
+      this.html(html);
+
+      // class
+      this.$el.addClass('-confirm');
+    },
+    onCancel: function (e, $el) {
+      // prevent default
+      e.preventDefault();
+      e.stopImmediatePropagation();
+
+      // callback
+      var callback = this.get('cancel');
+      var context = this.get('context') || this;
+      callback.apply(context, arguments);
+
+      //remove
+      this.remove();
+    },
+    onConfirm: function (e, $el) {
+      // Prevent event from propagating completely to allow "targetConfirm" to be clicked.
+      e.preventDefault();
+      e.stopImmediatePropagation();
+
+      // callback
+      var callback = this.get('confirm');
+      var context = this.get('context') || this;
+      callback.apply(context, arguments);
+
+      //remove
+      this.remove();
+    }
+  });
+
+  // storage
+  acf.models.Tooltip = Tooltip;
+  acf.models.TooltipConfirm = TooltipConfirm;
+
+  /**
+   *  tooltipManager
+   *
+   *  description
+   *
+   *  @date	17/4/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var tooltipHoverHelper = new acf.Model({
+    tooltip: false,
+    events: {
+      'mouseenter .acf-js-tooltip': 'showTitle',
+      'mouseup .acf-js-tooltip': 'hideTitle',
+      'mouseleave .acf-js-tooltip': 'hideTitle',
+      'focus .acf-js-tooltip': 'showTitle',
+      'blur .acf-js-tooltip': 'hideTitle',
+      'keyup .acf-js-tooltip': 'onKeyUp'
+    },
+    showTitle: function (e, $el) {
+      // vars
+      var title = $el.attr('title');
+
+      // bail early if no title
+      if (!title) {
+        return;
+      }
+
+      // clear title to avoid default browser tooltip
+      $el.attr('title', '');
+
+      // create
+      if (!this.tooltip) {
+        this.tooltip = acf.newTooltip({
+          text: title,
+          target: $el
+        });
+
+        // update
+      } else {
+        this.tooltip.update({
+          text: title,
+          target: $el
+        });
+      }
+    },
+    hideTitle: function (e, $el) {
+      // hide tooltip
+      this.tooltip.hide();
+
+      // restore title
+      $el.attr('title', this.tooltip.get('text'));
+    },
+    onKeyUp: function (e, $el) {
+      if ('Escape' === e.key) {
+        this.hideTitle(e, $el);
+      }
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/_acf.js":
+/*!**************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/_acf.js ***!
+  \**************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  /**
+   *  acf
+   *
+   *  description
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  // The global acf object
+  var acf = {};
+
+  // Set as a browser global
+  window.acf = acf;
+
+  /** @var object Data sent from PHP */
+  acf.data = {};
+
+  /**
+   *  get
+   *
+   *  Gets a specific data value
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	string name
+   *  @return	mixed
+   */
+
+  acf.get = function (name) {
+    return this.data[name] || null;
+  };
+
+  /**
+   *  has
+   *
+   *  Returns `true` if the data exists and is not null
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	string name
+   *  @return	boolean
+   */
+
+  acf.has = function (name) {
+    return this.get(name) !== null;
+  };
+
+  /**
+   *  set
+   *
+   *  Sets a specific data value
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	string name
+   *  @param	mixed value
+   *  @return	this
+   */
+
+  acf.set = function (name, value) {
+    this.data[name] = value;
+    return this;
+  };
+
+  /**
+   *  uniqueId
+   *
+   *  Returns a unique ID
+   *
+   *  @date	9/11/17
+   *  @since	5.6.3
+   *
+   *  @param	string prefix Optional prefix.
+   *  @return	string
+   */
+
+  var idCounter = 0;
+  acf.uniqueId = function (prefix) {
+    var id = ++idCounter + '';
+    return prefix ? prefix + id : id;
+  };
+
+  /**
+   *  acf.uniqueArray
+   *
+   *  Returns a new array with only unique values
+   *  Credit: https://stackoverflow.com/questions/1960473/get-all-unique-values-in-an-array-remove-duplicates
+   *
+   *  @date	23/3/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.uniqueArray = function (array) {
+    function onlyUnique(value, index, self) {
+      return self.indexOf(value) === index;
+    }
+    return array.filter(onlyUnique);
+  };
+
+  /**
+   *  uniqid
+   *
+   *  Returns a unique ID (PHP version)
+   *
+   *  @date	9/11/17
+   *  @since	5.6.3
+   *  @source	http://locutus.io/php/misc/uniqid/
+   *
+   *  @param	string prefix Optional prefix.
+   *  @return	string
+   */
+
+  var uniqidSeed = '';
+  acf.uniqid = function (prefix, moreEntropy) {
+    //  discuss at: http://locutus.io/php/uniqid/
+    // original by: Kevin van Zonneveld (http://kvz.io)
+    //  revised by: Kankrelune (http://www.webfaktory.info/)
+    //      note 1: Uses an internal counter (in locutus global) to avoid collision
+    //   example 1: var $id = uniqid()
+    //   example 1: var $result = $id.length === 13
+    //   returns 1: true
+    //   example 2: var $id = uniqid('foo')
+    //   example 2: var $result = $id.length === (13 + 'foo'.length)
+    //   returns 2: true
+    //   example 3: var $id = uniqid('bar', true)
+    //   example 3: var $result = $id.length === (23 + 'bar'.length)
+    //   returns 3: true
+    if (typeof prefix === 'undefined') {
+      prefix = '';
+    }
+    var retId;
+    var formatSeed = function (seed, reqWidth) {
+      seed = parseInt(seed, 10).toString(16); // to hex str
+      if (reqWidth < seed.length) {
+        // so long we split
+        return seed.slice(seed.length - reqWidth);
+      }
+      if (reqWidth > seed.length) {
+        // so short we pad
+        return Array(1 + (reqWidth - seed.length)).join('0') + seed;
+      }
+      return seed;
+    };
+    if (!uniqidSeed) {
+      // init seed with big random int
+      uniqidSeed = Math.floor(Math.random() * 0x75bcd15);
+    }
+    uniqidSeed++;
+    retId = prefix; // start with prefix, add current milliseconds hex string
+    retId += formatSeed(parseInt(new Date().getTime() / 1000, 10), 8);
+    retId += formatSeed(uniqidSeed, 5); // add seed hex string
+    if (moreEntropy) {
+      // for more entropy we add a float lower to 10
+      retId += (Math.random() * 10).toFixed(8).toString();
+    }
+    return retId;
+  };
+
+  /**
+   *  strReplace
+   *
+   *  Performs a string replace
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	string search
+   *  @param	string replace
+   *  @param	string subject
+   *  @return	string
+   */
+
+  acf.strReplace = function (search, replace, subject) {
+    return subject.split(search).join(replace);
+  };
+
+  /**
+   *  strCamelCase
+   *
+   *  Converts a string into camelCase
+   *  Thanks to https://stackoverflow.com/questions/2970525/converting-any-string-into-camel-case
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	string str
+   *  @return	string
+   */
+
+  acf.strCamelCase = function (str) {
+    var matches = str.match(/([a-zA-Z0-9]+)/g);
+    return matches ? matches.map(function (s, i) {
+      var c = s.charAt(0);
+      return (i === 0 ? c.toLowerCase() : c.toUpperCase()) + s.slice(1);
+    }).join('') : '';
+  };
+
+  /**
+   *  strPascalCase
+   *
+   *  Converts a string into PascalCase
+   *  Thanks to https://stackoverflow.com/questions/1026069/how-do-i-make-the-first-letter-of-a-string-uppercase-in-javascript
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	string str
+   *  @return	string
+   */
+
+  acf.strPascalCase = function (str) {
+    var camel = acf.strCamelCase(str);
+    return camel.charAt(0).toUpperCase() + camel.slice(1);
+  };
+
+  /**
+   *  acf.strSlugify
+   *
+   *  Converts a string into a HTML class friendly slug
+   *
+   *  @date	21/3/18
+   *  @since	5.6.9
+   *
+   *  @param	string str
+   *  @return	string
+   */
+
+  acf.strSlugify = function (str) {
+    return acf.strReplace('_', '-', str.toLowerCase());
+  };
+  acf.strSanitize = function (str) {
+    // chars (https://jsperf.com/replace-foreign-characters)
+    var map = {
+      À: 'A',
+      Á: 'A',
+      Â: 'A',
+      Ã: 'A',
+      Ä: 'A',
+      Å: 'A',
+      Æ: 'AE',
+      Ç: 'C',
+      È: 'E',
+      É: 'E',
+      Ê: 'E',
+      Ë: 'E',
+      Ì: 'I',
+      Í: 'I',
+      Î: 'I',
+      Ï: 'I',
+      Ð: 'D',
+      Ñ: 'N',
+      Ò: 'O',
+      Ó: 'O',
+      Ô: 'O',
+      Õ: 'O',
+      Ö: 'O',
+      Ø: 'O',
+      Ù: 'U',
+      Ú: 'U',
+      Û: 'U',
+      Ü: 'U',
+      Ý: 'Y',
+      ß: 's',
+      à: 'a',
+      á: 'a',
+      â: 'a',
+      ã: 'a',
+      ä: 'a',
+      å: 'a',
+      æ: 'ae',
+      ç: 'c',
+      è: 'e',
+      é: 'e',
+      ê: 'e',
+      ë: 'e',
+      ì: 'i',
+      í: 'i',
+      î: 'i',
+      ï: 'i',
+      ñ: 'n',
+      ò: 'o',
+      ó: 'o',
+      ô: 'o',
+      õ: 'o',
+      ö: 'o',
+      ø: 'o',
+      ù: 'u',
+      ú: 'u',
+      û: 'u',
+      ü: 'u',
+      ý: 'y',
+      ÿ: 'y',
+      Ā: 'A',
+      ā: 'a',
+      Ă: 'A',
+      ă: 'a',
+      Ą: 'A',
+      ą: 'a',
+      Ć: 'C',
+      ć: 'c',
+      Ĉ: 'C',
+      ĉ: 'c',
+      Ċ: 'C',
+      ċ: 'c',
+      Č: 'C',
+      č: 'c',
+      Ď: 'D',
+      ď: 'd',
+      Đ: 'D',
+      đ: 'd',
+      Ē: 'E',
+      ē: 'e',
+      Ĕ: 'E',
+      ĕ: 'e',
+      Ė: 'E',
+      ė: 'e',
+      Ę: 'E',
+      ę: 'e',
+      Ě: 'E',
+      ě: 'e',
+      Ĝ: 'G',
+      ĝ: 'g',
+      Ğ: 'G',
+      ğ: 'g',
+      Ġ: 'G',
+      ġ: 'g',
+      Ģ: 'G',
+      ģ: 'g',
+      Ĥ: 'H',
+      ĥ: 'h',
+      Ħ: 'H',
+      ħ: 'h',
+      Ĩ: 'I',
+      ĩ: 'i',
+      Ī: 'I',
+      ī: 'i',
+      Ĭ: 'I',
+      ĭ: 'i',
+      Į: 'I',
+      į: 'i',
+      İ: 'I',
+      ı: 'i',
+      IJ: 'IJ',
+      ij: 'ij',
+      Ĵ: 'J',
+      ĵ: 'j',
+      Ķ: 'K',
+      ķ: 'k',
+      Ĺ: 'L',
+      ĺ: 'l',
+      Ļ: 'L',
+      ļ: 'l',
+      Ľ: 'L',
+      ľ: 'l',
+      Ŀ: 'L',
+      ŀ: 'l',
+      Ł: 'l',
+      ł: 'l',
+      Ń: 'N',
+      ń: 'n',
+      Ņ: 'N',
+      ņ: 'n',
+      Ň: 'N',
+      ň: 'n',
+      ʼn: 'n',
+      Ō: 'O',
+      ō: 'o',
+      Ŏ: 'O',
+      ŏ: 'o',
+      Ő: 'O',
+      ő: 'o',
+      Œ: 'OE',
+      œ: 'oe',
+      Ŕ: 'R',
+      ŕ: 'r',
+      Ŗ: 'R',
+      ŗ: 'r',
+      Ř: 'R',
+      ř: 'r',
+      Ś: 'S',
+      ś: 's',
+      Ŝ: 'S',
+      ŝ: 's',
+      Ş: 'S',
+      ş: 's',
+      Š: 'S',
+      š: 's',
+      Ţ: 'T',
+      ţ: 't',
+      Ť: 'T',
+      ť: 't',
+      Ŧ: 'T',
+      ŧ: 't',
+      Ũ: 'U',
+      ũ: 'u',
+      Ū: 'U',
+      ū: 'u',
+      Ŭ: 'U',
+      ŭ: 'u',
+      Ů: 'U',
+      ů: 'u',
+      Ű: 'U',
+      ű: 'u',
+      Ų: 'U',
+      ų: 'u',
+      Ŵ: 'W',
+      ŵ: 'w',
+      Ŷ: 'Y',
+      ŷ: 'y',
+      Ÿ: 'Y',
+      Ź: 'Z',
+      ź: 'z',
+      Ż: 'Z',
+      ż: 'z',
+      Ž: 'Z',
+      ž: 'z',
+      ſ: 's',
+      ƒ: 'f',
+      Ơ: 'O',
+      ơ: 'o',
+      Ư: 'U',
+      ư: 'u',
+      Ǎ: 'A',
+      ǎ: 'a',
+      Ǐ: 'I',
+      ǐ: 'i',
+      Ǒ: 'O',
+      ǒ: 'o',
+      Ǔ: 'U',
+      ǔ: 'u',
+      Ǖ: 'U',
+      ǖ: 'u',
+      Ǘ: 'U',
+      ǘ: 'u',
+      Ǚ: 'U',
+      ǚ: 'u',
+      Ǜ: 'U',
+      ǜ: 'u',
+      Ǻ: 'A',
+      ǻ: 'a',
+      Ǽ: 'AE',
+      ǽ: 'ae',
+      Ǿ: 'O',
+      ǿ: 'o',
+      // extra
+      ' ': '_',
+      "'": '',
+      '?': '',
+      '/': '',
+      '\\': '',
+      '.': '',
+      ',': '',
+      '`': '',
+      '>': '',
+      '<': '',
+      '"': '',
+      '[': '',
+      ']': '',
+      '|': '',
+      '{': '',
+      '}': '',
+      '(': '',
+      ')': ''
+    };
+
+    // vars
+    var nonWord = /\W/g;
+    var mapping = function (c) {
+      return map[c] !== undefined ? map[c] : c;
+    };
+
+    // replace
+    str = str.replace(nonWord, mapping);
+
+    // lowercase
+    str = str.toLowerCase();
+
+    // return
+    return str;
+  };
+
+  /**
+   *  acf.strMatch
+   *
+   *  Returns the number of characters that match between two strings
+   *
+   *  @date	1/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.strMatch = function (s1, s2) {
+    // vars
+    var val = 0;
+    var min = Math.min(s1.length, s2.length);
+
+    // loop
+    for (var i = 0; i < min; i++) {
+      if (s1[i] !== s2[i]) {
+        break;
+      }
+      val++;
+    }
+
+    // return
+    return val;
+  };
+
+  /**
+   * Escapes HTML entities from a string.
+   *
+   * @date	08/06/2020
+   * @since	5.9.0
+   *
+   * @param	string string The input string.
+   * @return	string
+   */
+  acf.strEscape = function (string) {
+    var htmlEscapes = {
+      '&': '&amp;',
+      '<': '&lt;',
+      '>': '&gt;',
+      '"': '&quot;',
+      "'": '&#39;'
+    };
+    return ('' + string).replace(/[&<>"']/g, function (chr) {
+      return htmlEscapes[chr];
+    });
+  };
+
+  // Tests.
+  //console.log( acf.strEscape('Test 1') );
+  //console.log( acf.strEscape('Test & 1') );
+  //console.log( acf.strEscape('Test\'s &amp; 1') );
+  //console.log( acf.strEscape('<script>js</script>') );
+
+  /**
+   * Unescapes HTML entities from a string.
+   *
+   * @date	08/06/2020
+   * @since	5.9.0
+   *
+   * @param	string string The input string.
+   * @return	string
+   */
+  acf.strUnescape = function (string) {
+    var htmlUnescapes = {
+      '&amp;': '&',
+      '&lt;': '<',
+      '&gt;': '>',
+      '&quot;': '"',
+      '&#39;': "'"
+    };
+    return ('' + string).replace(/&amp;|&lt;|&gt;|&quot;|&#39;/g, function (entity) {
+      return htmlUnescapes[entity];
+    });
+  };
+
+  // Tests.
+  //console.log( acf.strUnescape( acf.strEscape('Test 1') ) );
+  //console.log( acf.strUnescape( acf.strEscape('Test & 1') ) );
+  //console.log( acf.strUnescape( acf.strEscape('Test\'s &amp; 1') ) );
+  //console.log( acf.strUnescape( acf.strEscape('<script>js</script>') ) );
+
+  /**
+   * Escapes HTML entities from a string.
+   *
+   * @date	08/06/2020
+   * @since	5.9.0
+   *
+   * @param	string string The input string.
+   * @return	string
+   */
+  acf.escAttr = acf.strEscape;
+
+  /**
+   * Encodes <script> tags for safe HTML output.
+   *
+   * @date	08/06/2020
+   * @since	5.9.0
+   *
+   * @param	string string The input string.
+   * @return	string
+   */
+  acf.escHtml = function (string) {
+    return ('' + string).replace(/<script|<\/script/g, function (html) {
+      return acf.strEscape(html);
+    });
+  };
+
+  // Tests.
+  //console.log( acf.escHtml('<script>js</script>') );
+  //console.log( acf.escHtml( acf.strEscape('<script>js</script>') ) );
+  //console.log( acf.escHtml( '<script>js1</script><script>js2</script>' ) );
+
+  /**
+   *  acf.decode
+   *
+   *  description
+   *
+   *  @date	13/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.decode = function (string) {
+    return $('<textarea/>').html(string).text();
+  };
+
+  /**
+   *  parseArgs
+   *
+   *  Merges together defaults and args much like the WP wp_parse_args function
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	object args
+   *  @param	object defaults
+   *  @return	object
+   */
+
+  acf.parseArgs = function (args, defaults) {
+    if (typeof args !== 'object') args = {};
+    if (typeof defaults !== 'object') defaults = {};
+    return $.extend({}, defaults, args);
+  };
+
+  /**
+   *  __
+   *
+   *  Retrieve the translation of $text.
+   *
+   *  @date	16/4/18
+   *  @since	5.6.9
+   *
+   *  @param	string text Text to translate.
+   *  @return	string Translated text.
+   */
+
+  if (window.acfL10n == undefined) {
+    acfL10n = {};
+  }
+  acf.__ = function (text) {
+    return acfL10n[text] || text;
+  };
+
+  /**
+   *  _x
+   *
+   *  Retrieve translated string with gettext context.
+   *
+   *  @date	16/4/18
+   *  @since	5.6.9
+   *
+   *  @param	string text Text to translate.
+   *  @param	string context Context information for the translators.
+   *  @return	string Translated text.
+   */
+
+  acf._x = function (text, context) {
+    return acfL10n[text + '.' + context] || acfL10n[text] || text;
+  };
+
+  /**
+   *  _n
+   *
+   *  Retrieve the plural or single form based on the amount.
+   *
+   *  @date	16/4/18
+   *  @since	5.6.9
+   *
+   *  @param	string single Single text to translate.
+   *  @param	string plural Plural text to translate.
+   *  @param	int number The number to compare against.
+   *  @return	string Translated text.
+   */
+
+  acf._n = function (single, plural, number) {
+    if (number == 1) {
+      return acf.__(single);
+    } else {
+      return acf.__(plural);
+    }
+  };
+  acf.isArray = function (a) {
+    return Array.isArray(a);
+  };
+  acf.isObject = function (a) {
+    return typeof a === 'object';
+  };
+
+  /**
+   *  serialize
+   *
+   *  description
+   *
+   *  @date	24/12/17
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var buildObject = function (obj, name, value) {
+    // replace [] with placeholder
+    name = name.replace('[]', '[%%index%%]');
+
+    // vars
+    var keys = name.match(/([^\[\]])+/g);
+    if (!keys) return;
+    var length = keys.length;
+    var ref = obj;
+
+    // loop
+    for (var i = 0; i < length; i++) {
+      // vars
+      var key = String(keys[i]);
+
+      // value
+      if (i == length - 1) {
+        // %%index%%
+        if (key === '%%index%%') {
+          ref.push(value);
+
+          // default
+        } else {
+          ref[key] = value;
+        }
+
+        // path
+      } else {
+        // array
+        if (keys[i + 1] === '%%index%%') {
+          if (!acf.isArray(ref[key])) {
+            ref[key] = [];
+          }
+
+          // object
+        } else {
+          if (!acf.isObject(ref[key])) {
+            ref[key] = {};
+          }
+        }
+
+        // crawl
+        ref = ref[key];
+      }
+    }
+  };
+  acf.serialize = function ($el, prefix) {
+    // vars
+    var obj = {};
+    var inputs = acf.serializeArray($el);
+
+    // prefix
+    if (prefix !== undefined) {
+      // filter and modify
+      inputs = inputs.filter(function (item) {
+        return item.name.indexOf(prefix) === 0;
+      }).map(function (item) {
+        item.name = item.name.slice(prefix.length);
+        return item;
+      });
+    }
+
+    // loop
+    for (var i = 0; i < inputs.length; i++) {
+      buildObject(obj, inputs[i].name, inputs[i].value);
+    }
+
+    // return
+    return obj;
+  };
+
+  /**
+   *  acf.serializeArray
+   *
+   *  Similar to $.serializeArray() but works with a parent wrapping element.
+   *
+   *  @date	19/8/18
+   *  @since	5.7.3
+   *
+   *  @param	jQuery $el The element or form to serialize.
+   *  @return	array
+   */
+
+  acf.serializeArray = function ($el) {
+    return $el.find('select, textarea, input').serializeArray();
+  };
+
+  /**
+   *  acf.serializeForAjax
+   *
+   *  Returns an object containing name => value data ready to be encoded for Ajax.
+   *
+   *  @date	17/12/18
+   *  @since	5.8.0
+   *
+   *  @param	jQUery $el The element or form to serialize.
+   *  @return	object
+   */
+  acf.serializeForAjax = function ($el) {
+    // vars
+    var data = {};
+    var index = {};
+
+    // Serialize inputs.
+    var inputs = acf.serializeArray($el);
+
+    // Loop over inputs and build data.
+    inputs.map(function (item) {
+      // Append to array.
+      if (item.name.slice(-2) === '[]') {
+        data[item.name] = data[item.name] || [];
+        data[item.name].push(item.value);
+        // Append
+      } else {
+        data[item.name] = item.value;
+      }
+    });
+
+    // return
+    return data;
+  };
+
+  /**
+   *  addAction
+   *
+   *  Wrapper for acf.hooks.addAction
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	n/a
+   *  @return	this
+   */
+
+  /*
+  var prefixAction = function( action ){
+  	return 'acf_' + action;
+  }
+  */
+
+  acf.addAction = function (action, callback, priority, context) {
+    //action = prefixAction(action);
+    acf.hooks.addAction.apply(this, arguments);
+    return this;
+  };
+
+  /**
+   *  removeAction
+   *
+   *  Wrapper for acf.hooks.removeAction
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	n/a
+   *  @return	this
+   */
+
+  acf.removeAction = function (action, callback) {
+    //action = prefixAction(action);
+    acf.hooks.removeAction.apply(this, arguments);
+    return this;
+  };
+
+  /**
+   *  doAction
+   *
+   *  Wrapper for acf.hooks.doAction
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	n/a
+   *  @return	this
+   */
+
+  var actionHistory = {};
+  //var currentAction = false;
+  acf.doAction = function (action) {
+    //action = prefixAction(action);
+    //currentAction = action;
+    actionHistory[action] = 1;
+    acf.hooks.doAction.apply(this, arguments);
+    actionHistory[action] = 0;
+    return this;
+  };
+
+  /**
+   *  doingAction
+   *
+   *  Return true if doing action
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	n/a
+   *  @return	this
+   */
+
+  acf.doingAction = function (action) {
+    //action = prefixAction(action);
+    return actionHistory[action] === 1;
+  };
+
+  /**
+   *  didAction
+   *
+   *  Wrapper for acf.hooks.doAction
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	n/a
+   *  @return	this
+   */
+
+  acf.didAction = function (action) {
+    //action = prefixAction(action);
+    return actionHistory[action] !== undefined;
+  };
+
+  /**
+   *  currentAction
+   *
+   *  Wrapper for acf.hooks.doAction
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	n/a
+   *  @return	this
+   */
+
+  acf.currentAction = function () {
+    for (var k in actionHistory) {
+      if (actionHistory[k]) {
+        return k;
+      }
+    }
+    return false;
+  };
+
+  /**
+   *  addFilter
+   *
+   *  Wrapper for acf.hooks.addFilter
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	n/a
+   *  @return	this
+   */
+
+  acf.addFilter = function (action) {
+    //action = prefixAction(action);
+    acf.hooks.addFilter.apply(this, arguments);
+    return this;
+  };
+
+  /**
+   *  removeFilter
+   *
+   *  Wrapper for acf.hooks.removeFilter
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	n/a
+   *  @return	this
+   */
+
+  acf.removeFilter = function (action) {
+    //action = prefixAction(action);
+    acf.hooks.removeFilter.apply(this, arguments);
+    return this;
+  };
+
+  /**
+   *  applyFilters
+   *
+   *  Wrapper for acf.hooks.applyFilters
+   *
+   *  @date	14/12/17
+   *  @since	5.6.5
+   *
+   *  @param	n/a
+   *  @return	this
+   */
+
+  acf.applyFilters = function (action) {
+    //action = prefixAction(action);
+    return acf.hooks.applyFilters.apply(this, arguments);
+  };
+
+  /**
+   *  getArgs
+   *
+   *  description
+   *
+   *  @date	15/12/17
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.arrayArgs = function (args) {
+    return Array.prototype.slice.call(args);
+  };
+
+  /**
+   *  extendArgs
+   *
+   *  description
+   *
+   *  @date	15/12/17
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  /*
+  acf.extendArgs = function( ){
+  	var args = Array.prototype.slice.call( arguments );
+  	var realArgs = args.shift();
+  		
+  	Array.prototype.push.call(arguments, 'bar')
+  	return Array.prototype.push.apply( args, arguments );
+  };
+  */
+
+  // Preferences
+  // - use try/catch to avoid JS error if cookies are disabled on front-end form
+  try {
+    var preferences = JSON.parse(localStorage.getItem('acf')) || {};
+  } catch (e) {
+    var preferences = {};
+  }
+
+  /**
+   *  getPreferenceName
+   *
+   *  Gets the true preference name.
+   *  Converts "this.thing" to "thing-123" if editing post 123.
+   *
+   *  @date	11/11/17
+   *  @since	5.6.5
+   *
+   *  @param	string name
+   *  @return	string
+   */
+
+  var getPreferenceName = function (name) {
+    if (name.substr(0, 5) === 'this.') {
+      name = name.substr(5) + '-' + acf.get('post_id');
+    }
+    return name;
+  };
+
+  /**
+   *  acf.getPreference
+   *
+   *  Gets a preference setting or null if not set.
+   *
+   *  @date	11/11/17
+   *  @since	5.6.5
+   *
+   *  @param	string name
+   *  @return	mixed
+   */
+
+  acf.getPreference = function (name) {
+    name = getPreferenceName(name);
+    return preferences[name] || null;
+  };
+
+  /**
+   *  acf.setPreference
+   *
+   *  Sets a preference setting.
+   *
+   *  @date	11/11/17
+   *  @since	5.6.5
+   *
+   *  @param	string name
+   *  @param	mixed value
+   *  @return	n/a
+   */
+
+  acf.setPreference = function (name, value) {
+    name = getPreferenceName(name);
+    if (value === null) {
+      delete preferences[name];
+    } else {
+      preferences[name] = value;
+    }
+    localStorage.setItem('acf', JSON.stringify(preferences));
+  };
+
+  /**
+   *  acf.removePreference
+   *
+   *  Removes a preference setting.
+   *
+   *  @date	11/11/17
+   *  @since	5.6.5
+   *
+   *  @param	string name
+   *  @return	n/a
+   */
+
+  acf.removePreference = function (name) {
+    acf.setPreference(name, null);
+  };
+
+  /**
+   *  remove
+   *
+   *  Removes an element with fade effect
+   *
+   *  @date	1/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.remove = function (props) {
+    // allow jQuery
+    if (props instanceof jQuery) {
+      props = {
+        target: props
+      };
+    }
+
+    // defaults
+    props = acf.parseArgs(props, {
+      target: false,
+      endHeight: 0,
+      complete: function () {}
+    });
+
+    // action
+    acf.doAction('remove', props.target);
+
+    // tr
+    if (props.target.is('tr')) {
+      removeTr(props);
+
+      // div
+    } else {
+      removeDiv(props);
+    }
+  };
+
+  /**
+   *  removeDiv
+   *
+   *  description
+   *
+   *  @date	16/2/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var removeDiv = function (props) {
+    // vars
+    var $el = props.target;
+    var height = $el.height();
+    var width = $el.width();
+    var margin = $el.css('margin');
+    var outerHeight = $el.outerHeight(true);
+    var style = $el.attr('style') + ''; // needed to copy
+
+    // wrap
+    $el.wrap('<div class="acf-temp-remove" style="height:' + outerHeight + 'px"></div>');
+    var $wrap = $el.parent();
+
+    // set pos
+    $el.css({
+      height: height,
+      width: width,
+      margin: margin,
+      position: 'absolute'
+    });
+
+    // fade wrap
+    setTimeout(function () {
+      $wrap.css({
+        opacity: 0,
+        height: props.endHeight
+      });
+    }, 50);
+
+    // remove
+    setTimeout(function () {
+      $el.attr('style', style);
+      $wrap.remove();
+      props.complete();
+    }, 301);
+  };
+
+  /**
+   *  removeTr
+   *
+   *  description
+   *
+   *  @date	16/2/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var removeTr = function (props) {
+    // vars
+    var $tr = props.target;
+    var height = $tr.height();
+    var children = $tr.children().length;
+
+    // create dummy td
+    var $td = $('<td class="acf-temp-remove" style="padding:0; height:' + height + 'px" colspan="' + children + '"></td>');
+
+    // fade away tr
+    $tr.addClass('acf-remove-element');
+
+    // update HTML after fade animation
+    setTimeout(function () {
+      $tr.html($td);
+    }, 251);
+
+    // allow .acf-temp-remove to exist before changing CSS
+    setTimeout(function () {
+      // remove class
+      $tr.removeClass('acf-remove-element');
+
+      // collapse
+      $td.css({
+        height: props.endHeight
+      });
+    }, 300);
+
+    // remove
+    setTimeout(function () {
+      $tr.remove();
+      props.complete();
+    }, 451);
+  };
+
+  /**
+   *  duplicate
+   *
+   *  description
+   *
+   *  @date	3/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.duplicate = function (args) {
+    // allow jQuery
+    if (args instanceof jQuery) {
+      args = {
+        target: args
+      };
+    }
+
+    // defaults
+    args = acf.parseArgs(args, {
+      target: false,
+      search: '',
+      replace: '',
+      rename: true,
+      before: function ($el) {},
+      after: function ($el, $el2) {},
+      append: function ($el, $el2) {
+        $el.after($el2);
+      }
+    });
+
+    // compatibility
+    args.target = args.target || args.$el;
+
+    // vars
+    var $el = args.target;
+
+    // search
+    args.search = args.search || $el.attr('data-id');
+    args.replace = args.replace || acf.uniqid();
+
+    // before
+    // - allow acf to modify DOM
+    // - fixes bug where select field option is not selected
+    args.before($el);
+    acf.doAction('before_duplicate', $el);
+
+    // clone
+    var $el2 = $el.clone();
+
+    // rename
+    if (args.rename) {
+      acf.rename({
+        target: $el2,
+        search: args.search,
+        replace: args.replace,
+        replacer: typeof args.rename === 'function' ? args.rename : null
+      });
+    }
+
+    // remove classes
+    $el2.removeClass('acf-clone');
+    $el2.find('.ui-sortable').removeClass('ui-sortable');
+
+    // after
+    // - allow acf to modify DOM
+    args.after($el, $el2);
+    acf.doAction('after_duplicate', $el, $el2);
+
+    // append
+    args.append($el, $el2);
+
+    /**
+     * Fires after an element has been duplicated and appended to the DOM.
+     *
+     * @date	30/10/19
+     * @since	5.8.7
+     *
+     * @param	jQuery $el The original element.
+     * @param	jQuery $el2 The duplicated element.
+     */
+    acf.doAction('duplicate', $el, $el2);
+
+    // append
+    acf.doAction('append', $el2);
+
+    // return
+    return $el2;
+  };
+
+  /**
+   *  rename
+   *
+   *  description
+   *
+   *  @date	7/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.rename = function (args) {
+    // Allow jQuery param.
+    if (args instanceof jQuery) {
+      args = {
+        target: args
+      };
+    }
+
+    // Apply default args.
+    args = acf.parseArgs(args, {
+      target: false,
+      destructive: false,
+      search: '',
+      replace: '',
+      replacer: null
+    });
+
+    // Extract args.
+    var $el = args.target;
+
+    // Provide backup for empty args.
+    if (!args.search) {
+      args.search = $el.attr('data-id');
+    }
+    if (!args.replace) {
+      args.replace = acf.uniqid('acf');
+    }
+    if (!args.replacer) {
+      args.replacer = function (name, value, search, replace) {
+        return value.replace(search, replace);
+      };
+    }
+
+    // Callback function for jQuery replacing.
+    var withReplacer = function (name) {
+      return function (i, value) {
+        return args.replacer(name, value, args.search, args.replace);
+      };
+    };
+
+    // Destructive Replace.
+    if (args.destructive) {
+      var html = acf.strReplace(args.search, args.replace, $el.outerHTML());
+      $el.replaceWith(html);
+
+      // Standard Replace.
+    } else {
+      $el.attr('data-id', args.replace);
+      $el.find('[id*="' + args.search + '"]').attr('id', withReplacer('id'));
+      $el.find('[for*="' + args.search + '"]').attr('for', withReplacer('for'));
+      $el.find('[name*="' + args.search + '"]').attr('name', withReplacer('name'));
+    }
+
+    // return
+    return $el;
+  };
+
+  /**
+   *  acf.prepareForAjax
+   *
+   *  description
+   *
+   *  @date	4/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.prepareForAjax = function (data) {
+    // required
+    data.nonce = acf.get('nonce');
+    data.post_id = acf.get('post_id');
+
+    // language
+    if (acf.has('language')) {
+      data.lang = acf.get('language');
+    }
+
+    // filter for 3rd party customization
+    data = acf.applyFilters('prepare_for_ajax', data);
+
+    // return
+    return data;
+  };
+
+  /**
+   *  acf.startButtonLoading
+   *
+   *  description
+   *
+   *  @date	5/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.startButtonLoading = function ($el) {
+    $el.prop('disabled', true);
+    $el.after(' <i class="acf-loading"></i>');
+  };
+  acf.stopButtonLoading = function ($el) {
+    $el.prop('disabled', false);
+    $el.next('.acf-loading').remove();
+  };
+
+  /**
+   *  acf.showLoading
+   *
+   *  description
+   *
+   *  @date	12/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.showLoading = function ($el) {
+    $el.append('<div class="acf-loading-overlay"><i class="acf-loading"></i></div>');
+  };
+  acf.hideLoading = function ($el) {
+    $el.children('.acf-loading-overlay').remove();
+  };
+
+  /**
+   *  acf.updateUserSetting
+   *
+   *  description
+   *
+   *  @date	5/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.updateUserSetting = function (name, value) {
+    var ajaxData = {
+      action: 'acf/ajax/user_setting',
+      name: name,
+      value: value
+    };
+    $.ajax({
+      url: acf.get('ajaxurl'),
+      data: acf.prepareForAjax(ajaxData),
+      type: 'post',
+      dataType: 'html'
+    });
+  };
+
+  /**
+   *  acf.val
+   *
+   *  description
+   *
+   *  @date	8/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.val = function ($input, value, silent) {
+    // vars
+    var prevValue = $input.val();
+
+    // bail if no change
+    if (value === prevValue) {
+      return false;
+    }
+
+    // update value
+    $input.val(value);
+
+    // prevent select elements displaying blank value if option doesn't exist
+    if ($input.is('select') && $input.val() === null) {
+      $input.val(prevValue);
+      return false;
+    }
+
+    // update with trigger
+    if (silent !== true) {
+      $input.trigger('change');
+    }
+
+    // return
+    return true;
+  };
+
+  /**
+   *  acf.show
+   *
+   *  description
+   *
+   *  @date	9/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.show = function ($el, lockKey) {
+    // unlock
+    if (lockKey) {
+      acf.unlock($el, 'hidden', lockKey);
+    }
+
+    // bail early if $el is still locked
+    if (acf.isLocked($el, 'hidden')) {
+      //console.log( 'still locked', getLocks( $el, 'hidden' ));
+      return false;
+    }
+
+    // $el is hidden, remove class and return true due to change in visibility
+    if ($el.hasClass('acf-hidden')) {
+      $el.removeClass('acf-hidden');
+      return true;
+
+      // $el is visible, return false due to no change in visibility
+    } else {
+      return false;
+    }
+  };
+
+  /**
+   *  acf.hide
+   *
+   *  description
+   *
+   *  @date	9/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.hide = function ($el, lockKey) {
+    // lock
+    if (lockKey) {
+      acf.lock($el, 'hidden', lockKey);
+    }
+
+    // $el is hidden, return false due to no change in visibility
+    if ($el.hasClass('acf-hidden')) {
+      return false;
+
+      // $el is visible, add class and return true due to change in visibility
+    } else {
+      $el.addClass('acf-hidden');
+      return true;
+    }
+  };
+
+  /**
+   *  acf.isHidden
+   *
+   *  description
+   *
+   *  @date	9/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.isHidden = function ($el) {
+    return $el.hasClass('acf-hidden');
+  };
+
+  /**
+   *  acf.isVisible
+   *
+   *  description
+   *
+   *  @date	9/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.isVisible = function ($el) {
+    return !acf.isHidden($el);
+  };
+
+  /**
+   *  enable
+   *
+   *  description
+   *
+   *  @date	12/3/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var enable = function ($el, lockKey) {
+    // check class. Allow .acf-disabled to overrule all JS
+    if ($el.hasClass('acf-disabled')) {
+      return false;
+    }
+
+    // unlock
+    if (lockKey) {
+      acf.unlock($el, 'disabled', lockKey);
+    }
+
+    // bail early if $el is still locked
+    if (acf.isLocked($el, 'disabled')) {
+      return false;
+    }
+
+    // $el is disabled, remove prop and return true due to change
+    if ($el.prop('disabled')) {
+      $el.prop('disabled', false);
+      return true;
+
+      // $el is enabled, return false due to no change
+    } else {
+      return false;
+    }
+  };
+
+  /**
+   *  acf.enable
+   *
+   *  description
+   *
+   *  @date	9/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.enable = function ($el, lockKey) {
+    // enable single input
+    if ($el.attr('name')) {
+      return enable($el, lockKey);
+    }
+
+    // find and enable child inputs
+    // return true if any inputs have changed
+    var results = false;
+    $el.find('[name]').each(function () {
+      var result = enable($(this), lockKey);
+      if (result) {
+        results = true;
+      }
+    });
+    return results;
+  };
+
+  /**
+   *  disable
+   *
+   *  description
+   *
+   *  @date	12/3/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var disable = function ($el, lockKey) {
+    // lock
+    if (lockKey) {
+      acf.lock($el, 'disabled', lockKey);
+    }
+
+    // $el is disabled, return false due to no change
+    if ($el.prop('disabled')) {
+      return false;
+
+      // $el is enabled, add prop and return true due to change
+    } else {
+      $el.prop('disabled', true);
+      return true;
+    }
+  };
+
+  /**
+   *  acf.disable
+   *
+   *  description
+   *
+   *  @date	9/2/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.disable = function ($el, lockKey) {
+    // disable single input
+    if ($el.attr('name')) {
+      return disable($el, lockKey);
+    }
+
+    // find and enable child inputs
+    // return true if any inputs have changed
+    var results = false;
+    $el.find('[name]').each(function () {
+      var result = disable($(this), lockKey);
+      if (result) {
+        results = true;
+      }
+    });
+    return results;
+  };
+
+  /**
+   *  acf.isset
+   *
+   *  description
+   *
+   *  @date	10/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.isset = function (obj /*, level1, level2, ... */) {
+    for (var i = 1; i < arguments.length; i++) {
+      if (!obj || !obj.hasOwnProperty(arguments[i])) {
+        return false;
+      }
+      obj = obj[arguments[i]];
+    }
+    return true;
+  };
+
+  /**
+   *  acf.isget
+   *
+   *  description
+   *
+   *  @date	10/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.isget = function (obj /*, level1, level2, ... */) {
+    for (var i = 1; i < arguments.length; i++) {
+      if (!obj || !obj.hasOwnProperty(arguments[i])) {
+        return null;
+      }
+      obj = obj[arguments[i]];
+    }
+    return obj;
+  };
+
+  /**
+   *  acf.getFileInputData
+   *
+   *  description
+   *
+   *  @date	10/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.getFileInputData = function ($input, callback) {
+    // vars
+    var value = $input.val();
+
+    // bail early if no value
+    if (!value) {
+      return false;
+    }
+
+    // data
+    var data = {
+      url: value
+    };
+
+    // modern browsers
+    var file = $input[0].files.length ? acf.isget($input[0].files, 0) : false;
+    if (file) {
+      // update data
+      data.size = file.size;
+      data.type = file.type;
+
+      // image
+      if (file.type.indexOf('image') > -1) {
+        // vars
+        var windowURL = window.URL || window.webkitURL;
+        var img = new Image();
+        img.onload = function () {
+          // update
+          data.width = this.width;
+          data.height = this.height;
+          callback(data);
+        };
+        img.src = windowURL.createObjectURL(file);
+      } else {
+        callback(data);
+      }
+    } else {
+      callback(data);
+    }
+  };
+
+  /**
+   *  acf.isAjaxSuccess
+   *
+   *  description
+   *
+   *  @date	18/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.isAjaxSuccess = function (json) {
+    return json && json.success;
+  };
+
+  /**
+   *  acf.getAjaxMessage
+   *
+   *  description
+   *
+   *  @date	18/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.getAjaxMessage = function (json) {
+    return acf.isget(json, 'data', 'message');
+  };
+
+  /**
+   *  acf.getAjaxError
+   *
+   *  description
+   *
+   *  @date	18/1/18
+   *  @since	5.6.5
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  acf.getAjaxError = function (json) {
+    return acf.isget(json, 'data', 'error');
+  };
+
+  /**
+   * Returns the error message from an XHR object.
+   *
+   * @date	17/3/20
+   * @since	5.8.9
+   *
+   * @param	object xhr The XHR object.
+   * @return	(string)
+   */
+  acf.getXhrError = function (xhr) {
+    if (xhr.responseJSON) {
+      // Responses via `return new WP_Error();`
+      if (xhr.responseJSON.message) {
+        return xhr.responseJSON.message;
+      }
+
+      // Responses via `wp_send_json_error();`.
+      if (xhr.responseJSON.data && xhr.responseJSON.data.error) {
+        return xhr.responseJSON.data.error;
+      }
+    } else if (xhr.statusText) {
+      return xhr.statusText;
+    }
+    return '';
+  };
+
+  /**
+   *  acf.renderSelect
+   *
+   *  Renders the innter html for a select field.
+   *
+   *  @date	19/2/18
+   *  @since	5.6.9
+   *
+   *  @param	jQuery $select The select element.
+   *  @param	array choices An array of choices.
+   *  @return	void
+   */
+
+  acf.renderSelect = function ($select, choices) {
+    // vars
+    var value = $select.val();
+    var values = [];
+
+    // callback
+    var crawl = function (items) {
+      // vars
+      var itemsHtml = '';
+
+      // loop
+      items.map(function (item) {
+        // vars
+        var text = item.text || item.label || '';
+        var id = item.id || item.value || '';
+
+        // append
+        values.push(id);
+
+        //  optgroup
+        if (item.children) {
+          itemsHtml += '<optgroup label="' + acf.escAttr(text) + '">' + crawl(item.children) + '</optgroup>';
+
+          // option
+        } else {
+          itemsHtml += '<option value="' + acf.escAttr(id) + '"' + (item.disabled ? ' disabled="disabled"' : '') + '>' + acf.strEscape(text) + '</option>';
+        }
+      });
+
+      // return
+      return itemsHtml;
+    };
+
+    // update HTML
+    $select.html(crawl(choices));
+
+    // update value
+    if (values.indexOf(value) > -1) {
+      $select.val(value);
+    }
+
+    // return selected value
+    return $select.val();
+  };
+
+  /**
+   *  acf.lock
+   *
+   *  Creates a "lock" on an element for a given type and key
+   *
+   *  @date	22/2/18
+   *  @since	5.6.9
+   *
+   *  @param	jQuery $el The element to lock.
+   *  @param	string type The type of lock such as "condition" or "visibility".
+   *  @param	string key The key that will be used to unlock.
+   *  @return	void
+   */
+
+  var getLocks = function ($el, type) {
+    return $el.data('acf-lock-' + type) || [];
+  };
+  var setLocks = function ($el, type, locks) {
+    $el.data('acf-lock-' + type, locks);
+  };
+  acf.lock = function ($el, type, key) {
+    var locks = getLocks($el, type);
+    var i = locks.indexOf(key);
+    if (i < 0) {
+      locks.push(key);
+      setLocks($el, type, locks);
+    }
+  };
+
+  /**
+   *  acf.unlock
+   *
+   *  Unlocks a "lock" on an element for a given type and key
+   *
+   *  @date	22/2/18
+   *  @since	5.6.9
+   *
+   *  @param	jQuery $el The element to lock.
+   *  @param	string type The type of lock such as "condition" or "visibility".
+   *  @param	string key The key that will be used to unlock.
+   *  @return	void
+   */
+
+  acf.unlock = function ($el, type, key) {
+    var locks = getLocks($el, type);
+    var i = locks.indexOf(key);
+    if (i > -1) {
+      locks.splice(i, 1);
+      setLocks($el, type, locks);
+    }
+
+    // return true if is unlocked (no locks)
+    return locks.length === 0;
+  };
+
+  /**
+   *  acf.isLocked
+   *
+   *  Returns true if a lock exists for a given type
+   *
+   *  @date	22/2/18
+   *  @since	5.6.9
+   *
+   *  @param	jQuery $el The element to lock.
+   *  @param	string type The type of lock such as "condition" or "visibility".
+   *  @return	void
+   */
+
+  acf.isLocked = function ($el, type) {
+    return getLocks($el, type).length > 0;
+  };
+
+  /**
+   *  acf.isGutenberg
+   *
+   *  Returns true if the Gutenberg editor is being used.
+   *
+   *  @date	14/11/18
+   *  @since	5.8.0
+   *
+   *  @param	vois
+   *  @return	bool
+   */
+  acf.isGutenberg = function () {
+    return !!(window.wp && wp.data && wp.data.select && wp.data.select('core/editor'));
+  };
+
+  /**
+   *  acf.objectToArray
+   *
+   *  Returns an array of items from the given object.
+   *
+   *  @date	20/11/18
+   *  @since	5.8.0
+   *
+   *  @param	object obj The object of items.
+   *  @return	array
+   */
+  acf.objectToArray = function (obj) {
+    return Object.keys(obj).map(function (key) {
+      return obj[key];
+    });
+  };
+
+  /**
+   * acf.debounce
+   *
+   * Returns a debounced version of the passed function which will postpone its execution until after `wait` milliseconds have elapsed since the last time it was invoked.
+   *
+   * @date	28/8/19
+   * @since	5.8.1
+   *
+   * @param	function callback The callback function.
+   * @return	int wait The number of milliseconds to wait.
+   */
+  acf.debounce = function (callback, wait) {
+    var timeout;
+    return function () {
+      var context = this;
+      var args = arguments;
+      var later = function () {
+        callback.apply(context, args);
+      };
+      clearTimeout(timeout);
+      timeout = setTimeout(later, wait);
+    };
+  };
+
+  /**
+   * acf.throttle
+   *
+   * Returns a throttled version of the passed function which will allow only one execution per `limit` time period.
+   *
+   * @date	28/8/19
+   * @since	5.8.1
+   *
+   * @param	function callback The callback function.
+   * @return	int wait The number of milliseconds to wait.
+   */
+  acf.throttle = function (callback, limit) {
+    var busy = false;
+    return function () {
+      if (busy) return;
+      busy = true;
+      setTimeout(function () {
+        busy = false;
+      }, limit);
+      callback.apply(this, arguments);
+    };
+  };
+
+  /**
+   * acf.isInView
+   *
+   * Returns true if the given element is in view.
+   *
+   * @date	29/8/19
+   * @since	5.8.1
+   *
+   * @param	elem el The dom element to inspect.
+   * @return	bool
+   */
+  acf.isInView = function (el) {
+    if (el instanceof jQuery) {
+      el = el[0];
+    }
+    var rect = el.getBoundingClientRect();
+    return rect.top !== rect.bottom && rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
+  };
+
+  /**
+   * acf.onceInView
+   *
+   * Watches for a dom element to become visible in the browser and then excecutes the passed callback.
+   *
+   * @date	28/8/19
+   * @since	5.8.1
+   *
+   * @param	dom el The dom element to inspect.
+   * @param	function callback The callback function.
+   */
+  acf.onceInView = function () {
+    // Define list.
+    var items = [];
+    var id = 0;
+
+    // Define check function.
+    var check = function () {
+      items.forEach(function (item) {
+        if (acf.isInView(item.el)) {
+          item.callback.apply(this);
+          pop(item.id);
+        }
+      });
+    };
+
+    // And create a debounced version.
+    var debounced = acf.debounce(check, 300);
+
+    // Define add function.
+    var push = function (el, callback) {
+      // Add event listener.
+      if (!items.length) {
+        $(window).on('scroll resize', debounced).on('acfrefresh orientationchange', check);
+      }
+
+      // Append to list.
+      items.push({
+        id: id++,
+        el: el,
+        callback: callback
+      });
+    };
+
+    // Define remove function.
+    var pop = function (id) {
+      // Remove from list.
+      items = items.filter(function (item) {
+        return item.id !== id;
+      });
+
+      // Clean up listener.
+      if (!items.length) {
+        $(window).off('scroll resize', debounced).off('acfrefresh orientationchange', check);
+      }
+    };
+
+    // Define returned function.
+    return function (el, callback) {
+      // Allow jQuery object.
+      if (el instanceof jQuery) el = el[0];
+
+      // Execute callback if already in view or add to watch list.
+      if (acf.isInView(el)) {
+        callback.apply(this);
+      } else {
+        push(el, callback);
+      }
+    };
+  }();
+
+  /**
+   * acf.once
+   *
+   * Creates a function that is restricted to invoking `func` once.
+   *
+   * @date	2/9/19
+   * @since	5.8.1
+   *
+   * @param	function func The function to restrict.
+   * @return	function
+   */
+  acf.once = function (func) {
+    var i = 0;
+    return function () {
+      if (i++ > 0) {
+        return func = undefined;
+      }
+      return func.apply(this, arguments);
+    };
+  };
+
+  /**
+   * Focuses attention to a specific element.
+   *
+   * @date	05/05/2020
+   * @since	5.9.0
+   *
+   * @param	jQuery $el The jQuery element to focus.
+   * @return	void
+   */
+  acf.focusAttention = function ($el) {
+    var wait = 1000;
+
+    // Apply class to focus attention.
+    $el.addClass('acf-attention -focused');
+
+    // Scroll to element if needed.
+    var scrollTime = 500;
+    if (!acf.isInView($el)) {
+      $('body, html').animate({
+        scrollTop: $el.offset().top - $(window).height() / 2
+      }, scrollTime);
+      wait += scrollTime;
+    }
+
+    // Remove class after $wait amount of time.
+    var fadeTime = 250;
+    setTimeout(function () {
+      $el.removeClass('-focused');
+      setTimeout(function () {
+        $el.removeClass('acf-attention');
+      }, fadeTime);
+    }, wait);
+  };
+
+  /**
+   * Description
+   *
+   * @date	05/05/2020
+   * @since	5.9.0
+   *
+   * @param	type Var Description.
+   * @return	type Description.
+   */
+  acf.onFocus = function ($el, callback) {
+    // Only run once per element.
+    // if( $el.data('acf.onFocus') ) {
+    // 	return false;
+    // }
+
+    // Vars.
+    var ignoreBlur = false;
+    var focus = false;
+
+    // Functions.
+    var onFocus = function () {
+      ignoreBlur = true;
+      setTimeout(function () {
+        ignoreBlur = false;
+      }, 1);
+      setFocus(true);
+    };
+    var onBlur = function () {
+      if (!ignoreBlur) {
+        setFocus(false);
+      }
+    };
+    var addEvents = function () {
+      $(document).on('click', onBlur);
+      //$el.on('acfBlur', onBlur);
+      $el.on('blur', 'input, select, textarea', onBlur);
+    };
+    var removeEvents = function () {
+      $(document).off('click', onBlur);
+      //$el.off('acfBlur', onBlur);
+      $el.off('blur', 'input, select, textarea', onBlur);
+    };
+    var setFocus = function (value) {
+      if (focus === value) {
+        return;
+      }
+      if (value) {
+        addEvents();
+      } else {
+        removeEvents();
+      }
+      focus = value;
+      callback(value);
+    };
+
+    // Add events and set data.
+    $el.on('click', onFocus);
+    //$el.on('acfFocus', onFocus);
+    $el.on('focus', 'input, select, textarea', onFocus);
+    //$el.data('acf.onFocus', true);
+  };
+
+  /*
+   *  exists
+   *
+   *  This function will return true if a jQuery selection exists
+   *
+   *  @type	function
+   *  @date	8/09/2014
+   *  @since	5.0.0
+   *
+   *  @param	n/a
+   *  @return	(boolean)
+   */
+
+  $.fn.exists = function () {
+    return $(this).length > 0;
+  };
+
+  /*
+   *  outerHTML
+   *
+   *  This function will return a string containing the HTML of the selected element
+   *
+   *  @type	function
+   *  @date	19/11/2013
+   *  @since	5.0.0
+   *
+   *  @param	$.fn
+   *  @return	(string)
+   */
+
+  $.fn.outerHTML = function () {
+    return $(this).get(0).outerHTML;
+  };
+
+  /*
+   *  indexOf
+   *
+   *  This function will provide compatibility for ie8
+   *
+   *  @type	function
+   *  @date	5/3/17
+   *  @since	5.5.10
+   *
+   *  @param	n/a
+   *  @return	n/a
+   */
+
+  if (!Array.prototype.indexOf) {
+    Array.prototype.indexOf = function (val) {
+      return $.inArray(val, this);
+    };
+  }
+
+  /**
+   * Returns true if value is a number or a numeric string.
+   *
+   * @date	30/11/20
+   * @since	5.9.4
+   * @link	https://stackoverflow.com/questions/9716468/pure-javascript-a-function-like-jquerys-isnumeric/9716488#9716488
+   *
+   * @param	mixed n The variable being evaluated.
+   * @return	bool.
+   */
+  acf.isNumeric = function (n) {
+    return !isNaN(parseFloat(n)) && isFinite(n);
+  };
+
+  /**
+   * Triggers a "refresh" action used by various Components to redraw the DOM.
+   *
+   * @date	26/05/2020
+   * @since	5.9.0
+   *
+   * @param	void
+   * @return	void
+   */
+  acf.refresh = acf.debounce(function () {
+    $(window).trigger('acfrefresh');
+    acf.doAction('refresh');
+  }, 0);
+
+  // Set up actions from events
+  $(document).ready(function () {
+    acf.doAction('ready');
+  });
+  $(window).on('load', function () {
+    // Use timeout to ensure action runs after Gutenberg has modified DOM elements during "DOMContentLoaded".
+    setTimeout(function () {
+      acf.doAction('load');
+    });
+  });
+  $(window).on('beforeunload', function () {
+    acf.doAction('unload');
+  });
+  $(window).on('resize', function () {
+    acf.doAction('resize');
+  });
+  $(document).on('sortstart', function (event, ui) {
+    acf.doAction('sortstart', ui.item, ui.placeholder);
+  });
+  $(document).on('sortstop', function (event, ui) {
+    acf.doAction('sortstop', ui.item, ui.placeholder);
+  });
+})(jQuery);
+
+/***/ })
+
+/******/ 	});
+/************************************************************************/
+/******/ 	// The module cache
+/******/ 	var __webpack_module_cache__ = {};
+/******/ 	
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/ 		// Check if module is in cache
+/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
+/******/ 		if (cachedModule !== undefined) {
+/******/ 			return cachedModule.exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = __webpack_module_cache__[moduleId] = {
+/******/ 			// no module.id needed
+/******/ 			// no module.loaded needed
+/******/ 			exports: {}
+/******/ 		};
+/******/ 	
+/******/ 		// Execute the module function
+/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/ 	
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/ 	
+/************************************************************************/
+/******/ 	/* webpack/runtime/compat get default export */
+/******/ 	!function() {
+/******/ 		// getDefaultExport function for compatibility with non-harmony modules
+/******/ 		__webpack_require__.n = function(module) {
+/******/ 			var getter = module && module.__esModule ?
+/******/ 				function() { return module['default']; } :
+/******/ 				function() { return module; };
+/******/ 			__webpack_require__.d(getter, { a: getter });
+/******/ 			return getter;
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/define property getters */
+/******/ 	!function() {
+/******/ 		// define getter functions for harmony exports
+/******/ 		__webpack_require__.d = function(exports, definition) {
+/******/ 			for(var key in definition) {
+/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ 				}
+/******/ 			}
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
+/******/ 	!function() {
+/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/make namespace object */
+/******/ 	!function() {
+/******/ 		// define __esModule on exports
+/******/ 		__webpack_require__.r = function(exports) {
+/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 			}
+/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be in strict mode.
+!function() {
+"use strict";
+/*!*************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/acf.js ***!
+  \*************************************************************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _acf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_acf.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf.js");
+/* harmony import */ var _acf_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_acf_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _acf_hooks_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_acf-hooks.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-hooks.js");
+/* harmony import */ var _acf_hooks_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_acf_hooks_js__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _acf_model_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_acf-model.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-model.js");
+/* harmony import */ var _acf_model_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_acf_model_js__WEBPACK_IMPORTED_MODULE_2__);
+/* harmony import */ var _acf_popup_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_acf-popup.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-popup.js");
+/* harmony import */ var _acf_popup_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_acf_popup_js__WEBPACK_IMPORTED_MODULE_3__);
+/* harmony import */ var _acf_modal_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_acf-modal.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-modal.js");
+/* harmony import */ var _acf_modal_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_acf_modal_js__WEBPACK_IMPORTED_MODULE_4__);
+/* harmony import */ var _acf_panel_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_acf-panel.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-panel.js");
+/* harmony import */ var _acf_panel_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_acf_panel_js__WEBPACK_IMPORTED_MODULE_5__);
+/* harmony import */ var _acf_notice_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_acf-notice.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-notice.js");
+/* harmony import */ var _acf_notice_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_acf_notice_js__WEBPACK_IMPORTED_MODULE_6__);
+/* harmony import */ var _acf_tooltip_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_acf-tooltip.js */ "./src/advanced-custom-fields-pro/assets/src/js/_acf-tooltip.js");
+/* harmony import */ var _acf_tooltip_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_acf_tooltip_js__WEBPACK_IMPORTED_MODULE_7__);
+
+
+
+
+
+
+
+
+}();
+/******/ })()
+;
+//# sourceMappingURL=acf.js.map

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/acf.js.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/acf.min.js


+ 4165 - 0
inc/acf/assets/build/js/pro/acf-pro-blocks-legacy.js

@@ -0,0 +1,4165 @@
+/******/ (function() { // webpackBootstrap
+/******/ 	var __webpack_modules__ = ({
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-blocks-legacy.js":
+/*!********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-blocks-legacy.js ***!
+  \********************************************************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "./node_modules/react/index.js");
+
+
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
+(function ($, undefined) {
+  // Dependencies.
+  const {
+    BlockControls,
+    InspectorControls,
+    InnerBlocks
+  } = wp.blockEditor;
+  const {
+    Toolbar,
+    IconButton,
+    Placeholder,
+    Spinner
+  } = wp.components;
+  const {
+    Fragment
+  } = wp.element;
+  const {
+    Component
+  } = React;
+  const {
+    withSelect
+  } = wp.data;
+  const {
+    createHigherOrderComponent
+  } = wp.compose;
+
+  /**
+   * Storage for registered block types.
+   *
+   * @since 5.8.0
+   * @var object
+   */
+  const blockTypes = {};
+
+  /**
+   * Returns a block type for the given name.
+   *
+   * @date	20/2/19
+   * @since	5.8.0
+   *
+   * @param	string name The block name.
+   * @return	(object|false)
+   */
+  function getBlockType(name) {
+    return blockTypes[name] || false;
+  }
+
+  /**
+   * Returns true if a block exists for the given name.
+   *
+   * @date	20/2/19
+   * @since	5.8.0
+   *
+   * @param	string name The block name.
+   * @return	bool
+   */
+  function isBlockType(name) {
+    return !!blockTypes[name];
+  }
+
+  /**
+   * Returns true if the provided block is new.
+   *
+   * @date	31/07/2020
+   * @since	5.9.0
+   *
+   * @param	object props The block props.
+   * @return	bool
+   */
+  function isNewBlock(props) {
+    return !props.attributes.id;
+  }
+
+  /**
+   * Returns true if the provided block is a duplicate:
+   * True when there are is another block with the same "id", but a different "clientId".
+   *
+   * @date	31/07/2020
+   * @since	5.9.0
+   *
+   * @param	object props The block props.
+   * @return	bool
+   */
+  function isDuplicateBlock(props) {
+    return getBlocks().filter(block => block.attributes.id === props.attributes.id).filter(block => block.clientId !== props.clientId).length;
+  }
+
+  /**
+   * Registers a block type.
+   *
+   * @date	19/2/19
+   * @since	5.8.0
+   *
+   * @param	object blockType The block type settings localized from PHP.
+   * @return	object The result from wp.blocks.registerBlockType().
+   */
+  function registerBlockType(blockType) {
+    // bail early if is excluded post_type.
+    var allowedTypes = blockType.post_types || [];
+    if (allowedTypes.length) {
+      // Always allow block to appear on "Edit reusable Block" screen.
+      allowedTypes.push('wp_block');
+
+      // Check post type.
+      var postType = acf.get('postType');
+      if (allowedTypes.indexOf(postType) === -1) {
+        return false;
+      }
+    }
+
+    // Handle svg HTML.
+    if (typeof blockType.icon === 'string' && blockType.icon.substr(0, 4) === '<svg') {
+      const iconHTML = blockType.icon;
+      blockType.icon = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Div, null, iconHTML);
+    }
+
+    // Remove icon if empty to allow for default "block".
+    // Avoids JS error preventing block from being registered.
+    if (!blockType.icon) {
+      delete blockType.icon;
+    }
+
+    // Check category exists and fallback to "common".
+    var category = wp.blocks.getCategories().filter(cat => cat.slug === blockType.category).pop();
+    if (!category) {
+      //console.warn( `The block "${blockType.name}" is registered with an unknown category "${blockType.category}".` );
+      blockType.category = 'common';
+    }
+
+    // Define block type attributes.
+    // Leave default undefined to allow WP to serialize attributes in HTML comments.
+    // See https://github.com/WordPress/gutenberg/issues/7342
+    let attributes = {
+      id: {
+        type: 'string'
+      },
+      name: {
+        type: 'string'
+      },
+      data: {
+        type: 'object'
+      },
+      align: {
+        type: 'string'
+      },
+      mode: {
+        type: 'string'
+      }
+    };
+
+    // Append edit and save functions.
+    let ThisBlockEdit = BlockEdit;
+    let ThisBlockSave = BlockSave;
+
+    // Apply align_text functionality.
+    if (blockType.supports.align_text) {
+      attributes = withAlignTextAttributes(attributes);
+      ThisBlockEdit = withAlignTextComponent(ThisBlockEdit, blockType);
+    }
+
+    // Apply align_content functionality.
+    if (blockType.supports.align_content) {
+      attributes = withAlignContentAttributes(attributes);
+      ThisBlockEdit = withAlignContentComponent(ThisBlockEdit, blockType);
+    }
+
+    // Merge in block settings.
+    blockType = acf.parseArgs(blockType, {
+      title: '',
+      name: '',
+      category: '',
+      attributes: attributes,
+      edit: function (props) {
+        return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(ThisBlockEdit, props);
+      },
+      save: function (props) {
+        return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(ThisBlockSave, props);
+      }
+    });
+
+    // Remove all attribute defaults from PHP values to allow serialisation.
+    // https://github.com/WordPress/gutenberg/issues/7342
+    for (const key in blockType.attributes) {
+      delete blockType.attributes[key].default;
+    }
+
+    // Add to storage.
+    blockTypes[blockType.name] = blockType;
+
+    // Register with WP.
+    var result = wp.blocks.registerBlockType(blockType.name, blockType);
+
+    // Fix bug in 'core/anchor/attribute' filter overwriting attribute.
+    // See https://github.com/WordPress/gutenberg/issues/15240
+    if (result.attributes.anchor) {
+      result.attributes.anchor = {
+        type: 'string'
+      };
+    }
+
+    // Return result.
+    return result;
+  }
+
+  /**
+   * Returns the wp.data.select() response with backwards compatibility.
+   *
+   * @date	17/06/2020
+   * @since	5.9.0
+   *
+   * @param	string selector The selector name.
+   * @return	mixed
+   */
+  function select(selector) {
+    if (selector === 'core/block-editor') {
+      return wp.data.select('core/block-editor') || wp.data.select('core/editor');
+    }
+    return wp.data.select(selector);
+  }
+
+  /**
+   * Returns the wp.data.dispatch() response with backwards compatibility.
+   *
+   * @date	17/06/2020
+   * @since	5.9.0
+   *
+   * @param	string selector The selector name.
+   * @return	mixed
+   */
+  function dispatch(selector) {
+    return wp.data.dispatch(selector);
+  }
+
+  /**
+   * Returns an array of all blocks for the given args.
+   *
+   * @date	27/2/19
+   * @since	5.7.13
+   *
+   * @param	object args An object of key=>value pairs used to filter results.
+   * @return	array.
+   */
+  function getBlocks(args) {
+    // Get all blocks (avoid deprecated warning).
+    let blocks = select('core/block-editor').getBlocks();
+
+    // Append innerBlocks.
+    let i = 0;
+    while (i < blocks.length) {
+      blocks = blocks.concat(blocks[i].innerBlocks);
+      i++;
+    }
+
+    // Loop over args and filter.
+    for (var k in args) {
+      blocks = blocks.filter(block => block.attributes[k] === args[k]);
+    }
+
+    // Return results.
+    return blocks;
+  }
+
+  // Data storage for AJAX requests.
+  const ajaxQueue = {};
+
+  /**
+   * Fetches a JSON result from the AJAX API.
+   *
+   * @date	28/2/19
+   * @since	5.7.13
+   *
+   * @param	object block The block props.
+   * @query	object The query args used in AJAX callback.
+   * @return	object The AJAX promise.
+   */
+  function fetchBlock(args) {
+    const {
+      attributes = {},
+      query = {},
+      delay = 0
+    } = args;
+
+    // Use storage or default data.
+    const {
+      id
+    } = attributes;
+    const data = ajaxQueue[id] || {
+      query: {},
+      timeout: false,
+      promise: $.Deferred()
+    };
+
+    // Append query args to storage.
+    data.query = _objectSpread(_objectSpread({}, data.query), query);
+
+    // Set fresh timeout.
+    clearTimeout(data.timeout);
+    data.timeout = setTimeout(function () {
+      $.ajax({
+        url: acf.get('ajaxurl'),
+        dataType: 'json',
+        type: 'post',
+        cache: false,
+        data: acf.prepareForAjax({
+          action: 'acf/ajax/fetch-block',
+          block: JSON.stringify(attributes),
+          query: data.query
+        })
+      }).always(function () {
+        // Clean up queue after AJAX request is complete.
+        ajaxQueue[id] = null;
+      }).done(function () {
+        data.promise.resolve.apply(this, arguments);
+      }).fail(function () {
+        data.promise.reject.apply(this, arguments);
+      });
+    }, delay);
+
+    // Update storage.
+    ajaxQueue[id] = data;
+
+    // Return promise.
+    return data.promise;
+  }
+
+  /**
+   * Returns true if both object are the same.
+   *
+   * @date	19/05/2020
+   * @since	5.9.0
+   *
+   * @param	object obj1
+   * @param	object obj2
+   * @return	bool
+   */
+  function compareObjects(obj1, obj2) {
+    return JSON.stringify(obj1) === JSON.stringify(obj2);
+  }
+
+  /**
+   * Converts HTML into a React element.
+   *
+   * @date	19/05/2020
+   * @since	5.9.0
+   *
+   * @param	string html The HTML to convert.
+   * @return	object Result of React.createElement().
+   */
+  acf.parseJSX = function (html) {
+    return parseNode($(html)[0]);
+  };
+
+  /**
+   * Converts a DOM node into a React element.
+   *
+   * @date	19/05/2020
+   * @since	5.9.0
+   *
+   * @param	DOM node The DOM node.
+   * @return	object Result of React.createElement().
+   */
+  function parseNode(node) {
+    // Get node name.
+    var nodeName = parseNodeName(node.nodeName.toLowerCase());
+    if (!nodeName) {
+      return null;
+    }
+
+    // Get node attributes in React friendly format.
+    var nodeAttrs = {};
+    acf.arrayArgs(node.attributes).map(parseNodeAttr).forEach(function (attr) {
+      nodeAttrs[attr.name] = attr.value;
+    });
+
+    // Define args for React.createElement().
+    var args = [nodeName, nodeAttrs];
+    acf.arrayArgs(node.childNodes).forEach(function (child) {
+      if (child instanceof Text) {
+        var text = child.textContent;
+        if (text) {
+          args.push(text);
+        }
+      } else {
+        args.push(parseNode(child));
+      }
+    });
+
+    // Return element.
+    return React.createElement.apply(this, args);
+  }
+
+  /**
+   * Converts a node or attribute name into it's JSX compliant name
+   *
+   * @date     05/07/2021
+   * @since    5.9.8
+   *
+   * @param    string name The node or attribute name.
+   * @returns  string
+   */
+  function getJSXName(name) {
+    var replacement = acf.isget(acf, 'jsxNameReplacements', name);
+    if (replacement) return replacement;
+    return name;
+  }
+
+  /**
+   * Converts the given name into a React friendly name or component.
+   *
+   * @date	19/05/2020
+   * @since	5.9.0
+   *
+   * @param	string name The node name in lowercase.
+   * @return	mixed
+   */
+  function parseNodeName(name) {
+    switch (name) {
+      case 'innerblocks':
+        return InnerBlocks;
+      case 'script':
+        return Script;
+      case '#comment':
+        return null;
+      default:
+        // Replace names for JSX counterparts.
+        name = getJSXName(name);
+    }
+    return name;
+  }
+
+  /**
+   * Converts the given attribute into a React friendly name and value object.
+   *
+   * @date	19/05/2020
+   * @since	5.9.0
+   *
+   * @param	obj nodeAttr The node attribute.
+   * @return	obj
+   */
+  function parseNodeAttr(nodeAttr) {
+    var name = nodeAttr.name;
+    var value = nodeAttr.value;
+    switch (name) {
+      // Class.
+      case 'class':
+        name = 'className';
+        break;
+
+      // Style.
+      case 'style':
+        var css = {};
+        value.split(';').forEach(function (s) {
+          var pos = s.indexOf(':');
+          if (pos > 0) {
+            var ruleName = s.substr(0, pos).trim();
+            var ruleValue = s.substr(pos + 1).trim();
+
+            // Rename core properties, but not CSS variables.
+            if (ruleName.charAt(0) !== '-') {
+              ruleName = acf.strCamelCase(ruleName);
+            }
+            css[ruleName] = ruleValue;
+          }
+        });
+        value = css;
+        break;
+
+      // Default.
+      default:
+        // No formatting needed for "data-x" attributes.
+        if (name.indexOf('data-') === 0) {
+          break;
+        }
+
+        // Replace names for JSX counterparts.
+        name = getJSXName(name);
+
+        // Convert JSON values.
+        var c1 = value.charAt(0);
+        if (c1 === '[' || c1 === '{') {
+          value = JSON.parse(value);
+        }
+
+        // Convert bool values.
+        if (value === 'true' || value === 'false') {
+          value = value === 'true';
+        }
+        break;
+    }
+    return {
+      name: name,
+      value: value
+    };
+  }
+
+  /**
+   * Higher Order Component used to set default block attribute values.
+   *
+   * By modifying block attributes directly, instead of defining defaults in registerBlockType(),
+   * WordPress will include them always within the saved block serialized JSON.
+   *
+   * @date	31/07/2020
+   * @since	5.9.0
+   *
+   * @param	Component BlockListBlock The BlockListBlock Component.
+   * @return	Component
+   */
+  var withDefaultAttributes = createHigherOrderComponent(function (BlockListBlock) {
+    return class WrappedBlockEdit extends Component {
+      constructor(props) {
+        super(props);
+
+        // Extract vars.
+        const {
+          name,
+          attributes
+        } = this.props;
+
+        // Only run on ACF Blocks.
+        const blockType = getBlockType(name);
+        if (!blockType) {
+          return;
+        }
+
+        // Set unique ID and default attributes for newly added blocks.
+        if (isNewBlock(props)) {
+          attributes.id = acf.uniqid('block_');
+          for (let attribute in blockType.attributes) {
+            if (attributes[attribute] === undefined && blockType[attribute] !== undefined) {
+              attributes[attribute] = blockType[attribute];
+            }
+          }
+          return;
+        }
+
+        // Generate new ID for duplicated blocks.
+        if (isDuplicateBlock(props)) {
+          attributes.id = acf.uniqid('block_');
+          return;
+        }
+      }
+      render() {
+        return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockListBlock, this.props);
+      }
+    };
+  }, 'withDefaultAttributes');
+  wp.hooks.addFilter('editor.BlockListBlock', 'acf/with-default-attributes', withDefaultAttributes);
+
+  /**
+   * The BlockSave functional component.
+   *
+   * @date	08/07/2020
+   * @since	5.9.0
+   */
+  function BlockSave() {
+    return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(InnerBlocks.Content, null);
+  }
+
+  /**
+   * The BlockEdit component.
+   *
+   * @date	19/2/19
+   * @since	5.7.12
+   */
+  class BlockEdit extends Component {
+    constructor(props) {
+      super(props);
+      this.setup();
+    }
+    setup() {
+      const {
+        name,
+        attributes
+      } = this.props;
+      const blockType = getBlockType(name);
+
+      // Restrict current mode.
+      function restrictMode(modes) {
+        if (modes.indexOf(attributes.mode) === -1) {
+          attributes.mode = modes[0];
+        }
+      }
+      switch (blockType.mode) {
+        case 'edit':
+          restrictMode(['edit', 'preview']);
+          break;
+        case 'preview':
+          restrictMode(['preview', 'edit']);
+          break;
+        default:
+          restrictMode(['auto']);
+          break;
+      }
+    }
+    render() {
+      const {
+        name,
+        attributes,
+        setAttributes
+      } = this.props;
+      const {
+        mode
+      } = attributes;
+      const blockType = getBlockType(name);
+
+      // Show toggle only for edit/preview modes.
+      let showToggle = blockType.supports.mode;
+      if (mode === 'auto') {
+        showToggle = false;
+      }
+
+      // Configure toggle variables.
+      const toggleText = mode === 'preview' ? acf.__('Switch to Edit') : acf.__('Switch to Preview');
+      const toggleIcon = mode === 'preview' ? 'edit' : 'welcome-view-site';
+      function toggleMode() {
+        setAttributes({
+          mode: mode === 'preview' ? 'edit' : 'preview'
+        });
+      }
+
+      // Return template.
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockControls, null, showToggle && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Toolbar, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(IconButton, {
+        className: "components-icon-button components-toolbar__control",
+        label: toggleText,
+        icon: toggleIcon,
+        onClick: toggleMode
+      }))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(InspectorControls, null, mode === 'preview' && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", {
+        className: "acf-block-component acf-block-panel"
+      }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockForm, this.props))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockBody, this.props));
+    }
+  }
+
+  /**
+   * The BlockBody component.
+   *
+   * @date	19/2/19
+   * @since	5.7.12
+   */
+  class _BlockBody extends Component {
+    render() {
+      const {
+        attributes,
+        isSelected
+      } = this.props;
+      const {
+        mode
+      } = attributes;
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", {
+        className: "acf-block-component acf-block-body"
+      }, mode === 'auto' && isSelected ? (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockForm, this.props) : mode === 'auto' && !isSelected ? (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockPreview, this.props) : mode === 'preview' ? (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockPreview, this.props) : (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockForm, this.props));
+    }
+  }
+
+  // Append blockIndex to component props.
+  const BlockBody = withSelect(function (select, ownProps) {
+    const {
+      clientId
+    } = ownProps;
+    // Use optional rootClientId to allow discoverability of child blocks.
+    const rootClientId = select('core/block-editor').getBlockRootClientId(clientId);
+    const index = select('core/block-editor').getBlockIndex(clientId, rootClientId);
+    return {
+      index
+    };
+  })(_BlockBody);
+
+  /**
+   * A react component to append HTMl.
+   *
+   * @date	19/2/19
+   * @since	5.7.12
+   *
+   * @param	string children The html to insert.
+   * @return	void
+   */
+  class Div extends Component {
+    render() {
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", {
+        dangerouslySetInnerHTML: {
+          __html: this.props.children
+        }
+      });
+    }
+  }
+
+  /**
+   * A react Component for inline scripts.
+   *
+   * This Component uses a combination of React references and jQuery to append the
+   * inline <script> HTML each time the component is rendered.
+   *
+   * @date	29/05/2020
+   * @since	5.9.0
+   *
+   * @param	type Var Description.
+   * @return	type Description.
+   */
+  class Script extends Component {
+    render() {
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", {
+        ref: el => this.el = el
+      });
+    }
+    setHTML(html) {
+      $(this.el).html(`<script>${html}</script>`);
+    }
+    componentDidUpdate() {
+      this.setHTML(this.props.children);
+    }
+    componentDidMount() {
+      this.setHTML(this.props.children);
+    }
+  }
+
+  // Data storage for DynamicHTML components.
+  const store = {};
+
+  /**
+   * DynamicHTML Class.
+   *
+   * A react componenet to load and insert dynamic HTML.
+   *
+   * @date	19/2/19
+   * @since	5.7.12
+   *
+   * @param	void
+   * @return	void
+   */
+  class DynamicHTML extends Component {
+    constructor(props) {
+      super(props);
+
+      // Bind callbacks.
+      this.setRef = this.setRef.bind(this);
+
+      // Define default props and call setup().
+      this.id = '';
+      this.el = false;
+      this.subscribed = true;
+      this.renderMethod = 'jQuery';
+      this.setup(props);
+
+      // Load state.
+      this.loadState();
+    }
+    setup(props) {
+      // Do nothing.
+    }
+    fetch() {
+      // Do nothing.
+    }
+    loadState() {
+      this.state = store[this.id] || {};
+    }
+    setState(state) {
+      store[this.id] = _objectSpread(_objectSpread({}, this.state), state);
+
+      // Update component state if subscribed.
+      // - Allows AJAX callback to update store without modifying state of an unmounted component.
+      if (this.subscribed) {
+        super.setState(state);
+      }
+    }
+    setHtml(html) {
+      html = html ? html.trim() : '';
+
+      // Bail early if html has not changed.
+      if (html === this.state.html) {
+        return;
+      }
+
+      // Update state.
+      var state = {
+        html: html
+      };
+      if (this.renderMethod === 'jsx') {
+        state.jsx = acf.parseJSX(html);
+        state.$el = $(this.el);
+      } else {
+        state.$el = $(html);
+      }
+      this.setState(state);
+    }
+    setRef(el) {
+      this.el = el;
+    }
+    render() {
+      // Render JSX.
+      if (this.state.jsx) {
+        return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", {
+          ref: this.setRef
+        }, this.state.jsx);
+      }
+
+      // Return HTML.
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", {
+        ref: this.setRef
+      }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Placeholder, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Spinner, null)));
+    }
+    shouldComponentUpdate(nextProps, nextState) {
+      if (nextProps.index !== this.props.index) {
+        this.componentWillMove();
+      }
+      return nextState.html !== this.state.html;
+    }
+    display(context) {
+      // This method is called after setting new HTML and the Component render.
+      // The jQuery render method simply needs to move $el into place.
+      if (this.renderMethod === 'jQuery') {
+        var $el = this.state.$el;
+        var $prevParent = $el.parent();
+        var $thisParent = $(this.el);
+
+        // Move $el into place.
+        $thisParent.html($el);
+
+        // Special case for reusable blocks.
+        // Multiple instances of the same reusable block share the same block id.
+        // This causes all instances to share the same state (cool), which unfortunately
+        // pulls $el back and forth between the last rendered reusable block.
+        // This simple fix leaves a "clone" behind :)
+        if ($prevParent.length && $prevParent[0] !== $thisParent[0]) {
+          $prevParent.html($el.clone());
+        }
+      }
+
+      // Call context specific method.
+      switch (context) {
+        case 'append':
+          this.componentDidAppend();
+          break;
+        case 'remount':
+          this.componentDidRemount();
+          break;
+      }
+    }
+    componentDidMount() {
+      // Fetch on first load.
+      if (this.state.html === undefined) {
+        //console.log('componentDidMount', this.id);
+        this.fetch();
+
+        // Or remount existing HTML.
+      } else {
+        this.display('remount');
+      }
+    }
+    componentDidUpdate(prevProps, prevState) {
+      // HTML has changed.
+      this.display('append');
+    }
+    componentDidAppend() {
+      acf.doAction('append', this.state.$el);
+    }
+    componentWillUnmount() {
+      acf.doAction('unmount', this.state.$el);
+
+      // Unsubscribe this component from state.
+      this.subscribed = false;
+    }
+    componentDidRemount() {
+      this.subscribed = true;
+
+      // Use setTimeout to avoid incorrect timing of events.
+      // React will unmount and mount components in DOM order.
+      // This means a new component can be mounted before an old one is unmounted.
+      // ACF shares $el across new/old components which is un-React-like.
+      // This timout ensures that unmounting occurs before remounting.
+      setTimeout(() => {
+        acf.doAction('remount', this.state.$el);
+      });
+    }
+    componentWillMove() {
+      acf.doAction('unmount', this.state.$el);
+      setTimeout(() => {
+        acf.doAction('remount', this.state.$el);
+      });
+    }
+  }
+
+  /**
+   * BlockForm Class.
+   *
+   * A react componenet to handle the block form.
+   *
+   * @date	19/2/19
+   * @since	5.7.12
+   *
+   * @param	string id the block id.
+   * @return	void
+   */
+  class BlockForm extends DynamicHTML {
+    setup(props) {
+      this.id = `BlockForm-${props.attributes.id}`;
+    }
+    fetch() {
+      // Extract props.
+      const {
+        attributes
+      } = this.props;
+
+      // Request AJAX and update HTML on complete.
+      fetchBlock({
+        attributes: attributes,
+        query: {
+          form: true
+        }
+      }).done(json => {
+        this.setHtml(json.data.form);
+      });
+    }
+    componentDidAppend() {
+      super.componentDidAppend();
+
+      // Extract props.
+      const {
+        attributes,
+        setAttributes
+      } = this.props;
+      const {
+        $el
+      } = this.state;
+
+      // Callback for updating block data.
+      function serializeData() {
+        let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+        const data = acf.serialize($el, `acf-${attributes.id}`);
+        if (silent) {
+          attributes.data = data;
+        } else {
+          setAttributes({
+            data: data
+          });
+        }
+      }
+
+      // Add events.
+      var timeout = false;
+      $el.on('change keyup', function () {
+        clearTimeout(timeout);
+        timeout = setTimeout(serializeData, 300);
+      });
+
+      // Ensure newly added block is saved with data.
+      // Do it silently to avoid triggering a preview render.
+      if (!attributes.data) {
+        serializeData(true);
+      }
+    }
+  }
+
+  /**
+   * BlockPreview Class.
+   *
+   * A react componenet to handle the block preview.
+   *
+   * @date	19/2/19
+   * @since	5.7.12
+   *
+   * @param	string id the block id.
+   * @return	void
+   */
+  class BlockPreview extends DynamicHTML {
+    setup(props) {
+      this.id = `BlockPreview-${props.attributes.id}`;
+      var blockType = getBlockType(props.name);
+      if (blockType.supports.jsx) {
+        this.renderMethod = 'jsx';
+      }
+      //console.log('setup', this.id);
+    }
+
+    fetch() {
+      let args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      const {
+        attributes = this.props.attributes,
+        delay = 0
+      } = args;
+
+      // Remember attributes used to fetch HTML.
+      this.setState({
+        prevAttributes: attributes
+      });
+
+      // Request AJAX and update HTML on complete.
+      fetchBlock({
+        attributes: attributes,
+        query: {
+          preview: true
+        },
+        delay: delay
+      }).done(json => {
+        this.setHtml('<div class="acf-block-preview">' + json.data.preview + '</div>');
+      });
+    }
+    componentDidAppend() {
+      super.componentDidAppend();
+
+      // Extract props.
+      const {
+        attributes
+      } = this.props;
+      const {
+        $el
+      } = this.state;
+
+      // Generate action friendly type.
+      const type = attributes.name.replace('acf/', '');
+
+      // Do action.
+      acf.doAction('render_block_preview', $el, attributes);
+      acf.doAction(`render_block_preview/type=${type}`, $el, attributes);
+    }
+    shouldComponentUpdate(nextProps, nextState) {
+      const nextAttributes = nextProps.attributes;
+      const thisAttributes = this.props.attributes;
+
+      // Update preview if block data has changed.
+      if (!compareObjects(nextAttributes, thisAttributes)) {
+        let delay = 0;
+
+        // Delay fetch when editing className or anchor to simulate conscistent logic to custom fields.
+        if (nextAttributes.className !== thisAttributes.className) {
+          delay = 300;
+        }
+        if (nextAttributes.anchor !== thisAttributes.anchor) {
+          delay = 300;
+        }
+        this.fetch({
+          attributes: nextAttributes,
+          delay: delay
+        });
+      }
+      return super.shouldComponentUpdate(nextProps, nextState);
+    }
+    componentDidRemount() {
+      super.componentDidRemount();
+
+      // Update preview if data has changed since last render (changing from "edit" to "preview").
+      if (!compareObjects(this.state.prevAttributes, this.props.attributes)) {
+        //console.log('componentDidRemount', this.id);
+        this.fetch();
+      }
+    }
+  }
+
+  /**
+   * Initializes ACF Blocks logic and registration.
+   *
+   * @since 5.9.0
+   */
+  function initialize() {
+    // Add support for WordPress versions before 5.2.
+    if (!wp.blockEditor) {
+      wp.blockEditor = wp.editor;
+    }
+
+    // Register block types.
+    var blockTypes = acf.get('blockTypes');
+    if (blockTypes) {
+      blockTypes.map(registerBlockType);
+    }
+  }
+
+  // Run the initialize callback during the "prepare" action.
+  // This ensures that all localized data is available and that blocks are registered before the WP editor has been instantiated.
+  acf.addAction('prepare', initialize);
+
+  /**
+   * Returns a valid vertical alignment.
+   *
+   * @date	07/08/2020
+   * @since	5.9.0
+   *
+   * @param	string align A vertical alignment.
+   * @return	string
+   */
+  function validateVerticalAlignment(align) {
+    const ALIGNMENTS = ['top', 'center', 'bottom'];
+    const DEFAULT = 'top';
+    return ALIGNMENTS.includes(align) ? align : DEFAULT;
+  }
+
+  /**
+   * Returns a valid horizontal alignment.
+   *
+   * @date	07/08/2020
+   * @since	5.9.0
+   *
+   * @param	string align A horizontal alignment.
+   * @return	string
+   */
+  function validateHorizontalAlignment(align) {
+    const ALIGNMENTS = ['left', 'center', 'right'];
+    const DEFAULT = acf.get('rtl') ? 'right' : 'left';
+    return ALIGNMENTS.includes(align) ? align : DEFAULT;
+  }
+
+  /**
+   * Returns a valid matrix alignment.
+   *
+   * Written for "upgrade-path" compatibility from vertical alignment to matrix alignment.
+   *
+   * @date	07/08/2020
+   * @since	5.9.0
+   *
+   * @param	string align A matrix alignment.
+   * @return	string
+   */
+  function validateMatrixAlignment(align) {
+    const DEFAULT = 'center center';
+    if (align) {
+      const [y, x] = align.split(' ');
+      return validateVerticalAlignment(y) + ' ' + validateHorizontalAlignment(x);
+    }
+    return DEFAULT;
+  }
+
+  // Dependencies.
+  const {
+    AlignmentToolbar,
+    BlockVerticalAlignmentToolbar
+  } = wp.blockEditor;
+  const BlockAlignmentMatrixToolbar = wp.blockEditor.__experimentalBlockAlignmentMatrixToolbar || wp.blockEditor.BlockAlignmentMatrixToolbar;
+  // Gutenberg v10.x begins transition from Toolbar components to Control components.
+  const BlockAlignmentMatrixControl = wp.blockEditor.__experimentalBlockAlignmentMatrixControl || wp.blockEditor.BlockAlignmentMatrixControl;
+
+  /**
+   * Appends extra attributes for block types that support align_content.
+   *
+   * @date	08/07/2020
+   * @since	5.9.0
+   *
+   * @param	object attributes The block type attributes.
+   * @return	object
+   */
+  function withAlignContentAttributes(attributes) {
+    attributes.align_content = {
+      type: 'string'
+    };
+    return attributes;
+  }
+
+  /**
+   * A higher order component adding align_content editing functionality.
+   *
+   * @date	08/07/2020
+   * @since	5.9.0
+   *
+   * @param	component OriginalBlockEdit The original BlockEdit component.
+   * @param	object blockType The block type settings.
+   * @return	component
+   */
+  function withAlignContentComponent(OriginalBlockEdit, blockType) {
+    // Determine alignment vars
+    let type = blockType.supports.align_content;
+    let AlignmentComponent, validateAlignment;
+    switch (type) {
+      case 'matrix':
+        AlignmentComponent = BlockAlignmentMatrixControl || BlockAlignmentMatrixToolbar;
+        validateAlignment = validateMatrixAlignment;
+        break;
+      default:
+        AlignmentComponent = BlockVerticalAlignmentToolbar;
+        validateAlignment = validateVerticalAlignment;
+        break;
+    }
+
+    // Ensure alignment component exists.
+    if (AlignmentComponent === undefined) {
+      console.warn(`The "${type}" alignment component was not found.`);
+      return OriginalBlockEdit;
+    }
+
+    // Ensure correct block attribute data is sent in intial preview AJAX request.
+    blockType.align_content = validateAlignment(blockType.align_content);
+
+    // Return wrapped component.
+    return class WrappedBlockEdit extends Component {
+      render() {
+        const {
+          attributes,
+          setAttributes
+        } = this.props;
+        const {
+          align_content
+        } = attributes;
+        function onChangeAlignContent(align_content) {
+          setAttributes({
+            align_content: validateAlignment(align_content)
+          });
+        }
+        return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockControls, {
+          group: "block"
+        }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(AlignmentComponent, {
+          label: acf.__('Change content alignment'),
+          value: validateAlignment(align_content),
+          onChange: onChangeAlignContent
+        })), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(OriginalBlockEdit, this.props));
+      }
+    };
+  }
+
+  /**
+   * Appends extra attributes for block types that support align_text.
+   *
+   * @date	08/07/2020
+   * @since	5.9.0
+   *
+   * @param	object attributes The block type attributes.
+   * @return	object
+   */
+  function withAlignTextAttributes(attributes) {
+    attributes.align_text = {
+      type: 'string'
+    };
+    return attributes;
+  }
+
+  /**
+   * A higher order component adding align_text editing functionality.
+   *
+   * @date	08/07/2020
+   * @since	5.9.0
+   *
+   * @param	component OriginalBlockEdit The original BlockEdit component.
+   * @param	object blockType The block type settings.
+   * @return	component
+   */
+  function withAlignTextComponent(OriginalBlockEdit, blockType) {
+    const validateAlignment = validateHorizontalAlignment;
+
+    // Ensure correct block attribute data is sent in intial preview AJAX request.
+    blockType.align_text = validateAlignment(blockType.align_text);
+
+    // Return wrapped component.
+    return class WrappedBlockEdit extends Component {
+      render() {
+        const {
+          attributes,
+          setAttributes
+        } = this.props;
+        const {
+          align_text
+        } = attributes;
+        function onChangeAlignText(align_text) {
+          setAttributes({
+            align_text: validateAlignment(align_text)
+          });
+        }
+        return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(AlignmentToolbar, {
+          value: validateAlignment(align_text),
+          onChange: onChangeAlignText
+        })), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(OriginalBlockEdit, this.props));
+      }
+    };
+  }
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-jsx-names.js":
+/*!****************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-jsx-names.js ***!
+  \****************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  acf.jsxNameReplacements = {
+    'accent-height': 'accentHeight',
+    accentheight: 'accentHeight',
+    'accept-charset': 'acceptCharset',
+    acceptcharset: 'acceptCharset',
+    accesskey: 'accessKey',
+    'alignment-baseline': 'alignmentBaseline',
+    alignmentbaseline: 'alignmentBaseline',
+    allowedblocks: 'allowedBlocks',
+    allowfullscreen: 'allowFullScreen',
+    allowreorder: 'allowReorder',
+    'arabic-form': 'arabicForm',
+    arabicform: 'arabicForm',
+    attributename: 'attributeName',
+    attributetype: 'attributeType',
+    autocapitalize: 'autoCapitalize',
+    autocomplete: 'autoComplete',
+    autocorrect: 'autoCorrect',
+    autofocus: 'autoFocus',
+    autoplay: 'autoPlay',
+    autoreverse: 'autoReverse',
+    autosave: 'autoSave',
+    basefrequency: 'baseFrequency',
+    'baseline-shift': 'baselineShift',
+    baselineshift: 'baselineShift',
+    baseprofile: 'baseProfile',
+    calcmode: 'calcMode',
+    'cap-height': 'capHeight',
+    capheight: 'capHeight',
+    cellpadding: 'cellPadding',
+    cellspacing: 'cellSpacing',
+    charset: 'charSet',
+    class: 'className',
+    classid: 'classID',
+    classname: 'className',
+    'clip-path': 'clipPath',
+    'clip-rule': 'clipRule',
+    clippath: 'clipPath',
+    clippathunits: 'clipPathUnits',
+    cliprule: 'clipRule',
+    'color-interpolation': 'colorInterpolation',
+    'color-interpolation-filters': 'colorInterpolationFilters',
+    'color-profile': 'colorProfile',
+    'color-rendering': 'colorRendering',
+    colorinterpolation: 'colorInterpolation',
+    colorinterpolationfilters: 'colorInterpolationFilters',
+    colorprofile: 'colorProfile',
+    colorrendering: 'colorRendering',
+    colspan: 'colSpan',
+    contenteditable: 'contentEditable',
+    contentscripttype: 'contentScriptType',
+    contentstyletype: 'contentStyleType',
+    contextmenu: 'contextMenu',
+    controlslist: 'controlsList',
+    crossorigin: 'crossOrigin',
+    dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',
+    datetime: 'dateTime',
+    defaultchecked: 'defaultChecked',
+    defaultvalue: 'defaultValue',
+    diffuseconstant: 'diffuseConstant',
+    disablepictureinpicture: 'disablePictureInPicture',
+    disableremoteplayback: 'disableRemotePlayback',
+    'dominant-baseline': 'dominantBaseline',
+    dominantbaseline: 'dominantBaseline',
+    edgemode: 'edgeMode',
+    'enable-background': 'enableBackground',
+    enablebackground: 'enableBackground',
+    enctype: 'encType',
+    enterkeyhint: 'enterKeyHint',
+    externalresourcesrequired: 'externalResourcesRequired',
+    'fill-opacity': 'fillOpacity',
+    'fill-rule': 'fillRule',
+    fillopacity: 'fillOpacity',
+    fillrule: 'fillRule',
+    filterres: 'filterRes',
+    filterunits: 'filterUnits',
+    'flood-color': 'floodColor',
+    'flood-opacity': 'floodOpacity',
+    floodcolor: 'floodColor',
+    floodopacity: 'floodOpacity',
+    'font-family': 'fontFamily',
+    'font-size': 'fontSize',
+    'font-size-adjust': 'fontSizeAdjust',
+    'font-stretch': 'fontStretch',
+    'font-style': 'fontStyle',
+    'font-variant': 'fontVariant',
+    'font-weight': 'fontWeight',
+    fontfamily: 'fontFamily',
+    fontsize: 'fontSize',
+    fontsizeadjust: 'fontSizeAdjust',
+    fontstretch: 'fontStretch',
+    fontstyle: 'fontStyle',
+    fontvariant: 'fontVariant',
+    fontweight: 'fontWeight',
+    for: 'htmlFor',
+    foreignobject: 'foreignObject',
+    formaction: 'formAction',
+    formenctype: 'formEncType',
+    formmethod: 'formMethod',
+    formnovalidate: 'formNoValidate',
+    formtarget: 'formTarget',
+    frameborder: 'frameBorder',
+    'glyph-name': 'glyphName',
+    'glyph-orientation-horizontal': 'glyphOrientationHorizontal',
+    'glyph-orientation-vertical': 'glyphOrientationVertical',
+    glyphname: 'glyphName',
+    glyphorientationhorizontal: 'glyphOrientationHorizontal',
+    glyphorientationvertical: 'glyphOrientationVertical',
+    glyphref: 'glyphRef',
+    gradienttransform: 'gradientTransform',
+    gradientunits: 'gradientUnits',
+    'horiz-adv-x': 'horizAdvX',
+    'horiz-origin-x': 'horizOriginX',
+    horizadvx: 'horizAdvX',
+    horizoriginx: 'horizOriginX',
+    hreflang: 'hrefLang',
+    htmlfor: 'htmlFor',
+    'http-equiv': 'httpEquiv',
+    httpequiv: 'httpEquiv',
+    'image-rendering': 'imageRendering',
+    imagerendering: 'imageRendering',
+    innerhtml: 'innerHTML',
+    inputmode: 'inputMode',
+    itemid: 'itemID',
+    itemprop: 'itemProp',
+    itemref: 'itemRef',
+    itemscope: 'itemScope',
+    itemtype: 'itemType',
+    kernelmatrix: 'kernelMatrix',
+    kernelunitlength: 'kernelUnitLength',
+    keyparams: 'keyParams',
+    keypoints: 'keyPoints',
+    keysplines: 'keySplines',
+    keytimes: 'keyTimes',
+    keytype: 'keyType',
+    lengthadjust: 'lengthAdjust',
+    'letter-spacing': 'letterSpacing',
+    letterspacing: 'letterSpacing',
+    'lighting-color': 'lightingColor',
+    lightingcolor: 'lightingColor',
+    limitingconeangle: 'limitingConeAngle',
+    marginheight: 'marginHeight',
+    marginwidth: 'marginWidth',
+    'marker-end': 'markerEnd',
+    'marker-mid': 'markerMid',
+    'marker-start': 'markerStart',
+    markerend: 'markerEnd',
+    markerheight: 'markerHeight',
+    markermid: 'markerMid',
+    markerstart: 'markerStart',
+    markerunits: 'markerUnits',
+    markerwidth: 'markerWidth',
+    maskcontentunits: 'maskContentUnits',
+    maskunits: 'maskUnits',
+    maxlength: 'maxLength',
+    mediagroup: 'mediaGroup',
+    minlength: 'minLength',
+    nomodule: 'noModule',
+    novalidate: 'noValidate',
+    numoctaves: 'numOctaves',
+    'overline-position': 'overlinePosition',
+    'overline-thickness': 'overlineThickness',
+    overlineposition: 'overlinePosition',
+    overlinethickness: 'overlineThickness',
+    'paint-order': 'paintOrder',
+    paintorder: 'paintOrder',
+    'panose-1': 'panose1',
+    pathlength: 'pathLength',
+    patterncontentunits: 'patternContentUnits',
+    patterntransform: 'patternTransform',
+    patternunits: 'patternUnits',
+    playsinline: 'playsInline',
+    'pointer-events': 'pointerEvents',
+    pointerevents: 'pointerEvents',
+    pointsatx: 'pointsAtX',
+    pointsaty: 'pointsAtY',
+    pointsatz: 'pointsAtZ',
+    preservealpha: 'preserveAlpha',
+    preserveaspectratio: 'preserveAspectRatio',
+    primitiveunits: 'primitiveUnits',
+    radiogroup: 'radioGroup',
+    readonly: 'readOnly',
+    referrerpolicy: 'referrerPolicy',
+    refx: 'refX',
+    refy: 'refY',
+    'rendering-intent': 'renderingIntent',
+    renderingintent: 'renderingIntent',
+    repeatcount: 'repeatCount',
+    repeatdur: 'repeatDur',
+    requiredextensions: 'requiredExtensions',
+    requiredfeatures: 'requiredFeatures',
+    rowspan: 'rowSpan',
+    'shape-rendering': 'shapeRendering',
+    shaperendering: 'shapeRendering',
+    specularconstant: 'specularConstant',
+    specularexponent: 'specularExponent',
+    spellcheck: 'spellCheck',
+    spreadmethod: 'spreadMethod',
+    srcdoc: 'srcDoc',
+    srclang: 'srcLang',
+    srcset: 'srcSet',
+    startoffset: 'startOffset',
+    stddeviation: 'stdDeviation',
+    stitchtiles: 'stitchTiles',
+    'stop-color': 'stopColor',
+    'stop-opacity': 'stopOpacity',
+    stopcolor: 'stopColor',
+    stopopacity: 'stopOpacity',
+    'strikethrough-position': 'strikethroughPosition',
+    'strikethrough-thickness': 'strikethroughThickness',
+    strikethroughposition: 'strikethroughPosition',
+    strikethroughthickness: 'strikethroughThickness',
+    'stroke-dasharray': 'strokeDasharray',
+    'stroke-dashoffset': 'strokeDashoffset',
+    'stroke-linecap': 'strokeLinecap',
+    'stroke-linejoin': 'strokeLinejoin',
+    'stroke-miterlimit': 'strokeMiterlimit',
+    'stroke-opacity': 'strokeOpacity',
+    'stroke-width': 'strokeWidth',
+    strokedasharray: 'strokeDasharray',
+    strokedashoffset: 'strokeDashoffset',
+    strokelinecap: 'strokeLinecap',
+    strokelinejoin: 'strokeLinejoin',
+    strokemiterlimit: 'strokeMiterlimit',
+    strokeopacity: 'strokeOpacity',
+    strokewidth: 'strokeWidth',
+    suppresscontenteditablewarning: 'suppressContentEditableWarning',
+    suppresshydrationwarning: 'suppressHydrationWarning',
+    surfacescale: 'surfaceScale',
+    systemlanguage: 'systemLanguage',
+    tabindex: 'tabIndex',
+    tablevalues: 'tableValues',
+    targetx: 'targetX',
+    targety: 'targetY',
+    templatelock: 'templateLock',
+    'text-anchor': 'textAnchor',
+    'text-decoration': 'textDecoration',
+    'text-rendering': 'textRendering',
+    textanchor: 'textAnchor',
+    textdecoration: 'textDecoration',
+    textlength: 'textLength',
+    textrendering: 'textRendering',
+    'underline-position': 'underlinePosition',
+    'underline-thickness': 'underlineThickness',
+    underlineposition: 'underlinePosition',
+    underlinethickness: 'underlineThickness',
+    'unicode-bidi': 'unicodeBidi',
+    'unicode-range': 'unicodeRange',
+    unicodebidi: 'unicodeBidi',
+    unicoderange: 'unicodeRange',
+    'units-per-em': 'unitsPerEm',
+    unitsperem: 'unitsPerEm',
+    usemap: 'useMap',
+    'v-alphabetic': 'vAlphabetic',
+    'v-hanging': 'vHanging',
+    'v-ideographic': 'vIdeographic',
+    'v-mathematical': 'vMathematical',
+    valphabetic: 'vAlphabetic',
+    'vector-effect': 'vectorEffect',
+    vectoreffect: 'vectorEffect',
+    'vert-adv-y': 'vertAdvY',
+    'vert-origin-x': 'vertOriginX',
+    'vert-origin-y': 'vertOriginY',
+    vertadvy: 'vertAdvY',
+    vertoriginx: 'vertOriginX',
+    vertoriginy: 'vertOriginY',
+    vhanging: 'vHanging',
+    videographic: 'vIdeographic',
+    viewbox: 'viewBox',
+    viewtarget: 'viewTarget',
+    vmathematical: 'vMathematical',
+    'word-spacing': 'wordSpacing',
+    wordspacing: 'wordSpacing',
+    'writing-mode': 'writingMode',
+    writingmode: 'writingMode',
+    'x-height': 'xHeight',
+    xchannelselector: 'xChannelSelector',
+    xheight: 'xHeight',
+    'xlink:actuate': 'xlinkActuate',
+    'xlink:arcrole': 'xlinkArcrole',
+    'xlink:href': 'xlinkHref',
+    'xlink:role': 'xlinkRole',
+    'xlink:show': 'xlinkShow',
+    'xlink:title': 'xlinkTitle',
+    'xlink:type': 'xlinkType',
+    xlinkactuate: 'xlinkActuate',
+    xlinkarcrole: 'xlinkArcrole',
+    xlinkhref: 'xlinkHref',
+    xlinkrole: 'xlinkRole',
+    xlinkshow: 'xlinkShow',
+    xlinktitle: 'xlinkTitle',
+    xlinktype: 'xlinkType',
+    'xml:base': 'xmlBase',
+    'xml:lang': 'xmlLang',
+    'xml:space': 'xmlSpace',
+    xmlbase: 'xmlBase',
+    xmllang: 'xmlLang',
+    'xmlns:xlink': 'xmlnsXlink',
+    xmlnsxlink: 'xmlnsXlink',
+    xmlspace: 'xmlSpace',
+    ychannelselector: 'yChannelSelector',
+    zoomandpan: 'zoomAndPan'
+  };
+})(jQuery);
+
+/***/ }),
+
+/***/ "./node_modules/object-assign/index.js":
+/*!*********************************************!*\
+  !*** ./node_modules/object-assign/index.js ***!
+  \*********************************************/
+/***/ (function(module) {
+
+"use strict";
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+
+/* eslint-disable no-unused-vars */
+var getOwnPropertySymbols = Object.getOwnPropertySymbols;
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+var propIsEnumerable = Object.prototype.propertyIsEnumerable;
+
+function toObject(val) {
+	if (val === null || val === undefined) {
+		throw new TypeError('Object.assign cannot be called with null or undefined');
+	}
+
+	return Object(val);
+}
+
+function shouldUseNative() {
+	try {
+		if (!Object.assign) {
+			return false;
+		}
+
+		// Detect buggy property enumeration order in older V8 versions.
+
+		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
+		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
+		test1[5] = 'de';
+		if (Object.getOwnPropertyNames(test1)[0] === '5') {
+			return false;
+		}
+
+		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
+		var test2 = {};
+		for (var i = 0; i < 10; i++) {
+			test2['_' + String.fromCharCode(i)] = i;
+		}
+		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
+			return test2[n];
+		});
+		if (order2.join('') !== '0123456789') {
+			return false;
+		}
+
+		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
+		var test3 = {};
+		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
+			test3[letter] = letter;
+		});
+		if (Object.keys(Object.assign({}, test3)).join('') !==
+				'abcdefghijklmnopqrst') {
+			return false;
+		}
+
+		return true;
+	} catch (err) {
+		// We don't expect any of the above to throw, but better to be safe.
+		return false;
+	}
+}
+
+module.exports = shouldUseNative() ? Object.assign : function (target, source) {
+	var from;
+	var to = toObject(target);
+	var symbols;
+
+	for (var s = 1; s < arguments.length; s++) {
+		from = Object(arguments[s]);
+
+		for (var key in from) {
+			if (hasOwnProperty.call(from, key)) {
+				to[key] = from[key];
+			}
+		}
+
+		if (getOwnPropertySymbols) {
+			symbols = getOwnPropertySymbols(from);
+			for (var i = 0; i < symbols.length; i++) {
+				if (propIsEnumerable.call(from, symbols[i])) {
+					to[symbols[i]] = from[symbols[i]];
+				}
+			}
+		}
+	}
+
+	return to;
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/react/cjs/react.development.js":
+/*!*****************************************************!*\
+  !*** ./node_modules/react/cjs/react.development.js ***!
+  \*****************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+/** @license React v17.0.2
+ * react.development.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+
+
+if (true) {
+  (function() {
+'use strict';
+
+var _assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
+
+// TODO: this is special because it gets imported during build.
+var ReactVersion = '17.0.2';
+
+// ATTENTION
+// When adding new symbols to this file,
+// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
+// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
+// nor polyfill, then a plain number is used for performance.
+var REACT_ELEMENT_TYPE = 0xeac7;
+var REACT_PORTAL_TYPE = 0xeaca;
+exports.Fragment = 0xeacb;
+exports.StrictMode = 0xeacc;
+exports.Profiler = 0xead2;
+var REACT_PROVIDER_TYPE = 0xeacd;
+var REACT_CONTEXT_TYPE = 0xeace;
+var REACT_FORWARD_REF_TYPE = 0xead0;
+exports.Suspense = 0xead1;
+var REACT_SUSPENSE_LIST_TYPE = 0xead8;
+var REACT_MEMO_TYPE = 0xead3;
+var REACT_LAZY_TYPE = 0xead4;
+var REACT_BLOCK_TYPE = 0xead9;
+var REACT_SERVER_BLOCK_TYPE = 0xeada;
+var REACT_FUNDAMENTAL_TYPE = 0xead5;
+var REACT_SCOPE_TYPE = 0xead7;
+var REACT_OPAQUE_ID_TYPE = 0xeae0;
+var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
+var REACT_OFFSCREEN_TYPE = 0xeae2;
+var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
+
+if (typeof Symbol === 'function' && Symbol.for) {
+  var symbolFor = Symbol.for;
+  REACT_ELEMENT_TYPE = symbolFor('react.element');
+  REACT_PORTAL_TYPE = symbolFor('react.portal');
+  exports.Fragment = symbolFor('react.fragment');
+  exports.StrictMode = symbolFor('react.strict_mode');
+  exports.Profiler = symbolFor('react.profiler');
+  REACT_PROVIDER_TYPE = symbolFor('react.provider');
+  REACT_CONTEXT_TYPE = symbolFor('react.context');
+  REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
+  exports.Suspense = symbolFor('react.suspense');
+  REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
+  REACT_MEMO_TYPE = symbolFor('react.memo');
+  REACT_LAZY_TYPE = symbolFor('react.lazy');
+  REACT_BLOCK_TYPE = symbolFor('react.block');
+  REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
+  REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
+  REACT_SCOPE_TYPE = symbolFor('react.scope');
+  REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
+  REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
+  REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
+  REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
+}
+
+var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
+var FAUX_ITERATOR_SYMBOL = '@@iterator';
+function getIteratorFn(maybeIterable) {
+  if (maybeIterable === null || typeof maybeIterable !== 'object') {
+    return null;
+  }
+
+  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
+
+  if (typeof maybeIterator === 'function') {
+    return maybeIterator;
+  }
+
+  return null;
+}
+
+/**
+ * Keeps track of the current dispatcher.
+ */
+var ReactCurrentDispatcher = {
+  /**
+   * @internal
+   * @type {ReactComponent}
+   */
+  current: null
+};
+
+/**
+ * Keeps track of the current batch's configuration such as how long an update
+ * should suspend for if it needs to.
+ */
+var ReactCurrentBatchConfig = {
+  transition: 0
+};
+
+/**
+ * Keeps track of the current owner.
+ *
+ * The current owner is the component who should own any components that are
+ * currently being constructed.
+ */
+var ReactCurrentOwner = {
+  /**
+   * @internal
+   * @type {ReactComponent}
+   */
+  current: null
+};
+
+var ReactDebugCurrentFrame = {};
+var currentExtraStackFrame = null;
+function setExtraStackFrame(stack) {
+  {
+    currentExtraStackFrame = stack;
+  }
+}
+
+{
+  ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {
+    {
+      currentExtraStackFrame = stack;
+    }
+  }; // Stack implementation injected by the current renderer.
+
+
+  ReactDebugCurrentFrame.getCurrentStack = null;
+
+  ReactDebugCurrentFrame.getStackAddendum = function () {
+    var stack = ''; // Add an extra top frame while an element is being validated
+
+    if (currentExtraStackFrame) {
+      stack += currentExtraStackFrame;
+    } // Delegate to the injected renderer-specific implementation
+
+
+    var impl = ReactDebugCurrentFrame.getCurrentStack;
+
+    if (impl) {
+      stack += impl() || '';
+    }
+
+    return stack;
+  };
+}
+
+/**
+ * Used by act() to track whether you're inside an act() scope.
+ */
+var IsSomeRendererActing = {
+  current: false
+};
+
+var ReactSharedInternals = {
+  ReactCurrentDispatcher: ReactCurrentDispatcher,
+  ReactCurrentBatchConfig: ReactCurrentBatchConfig,
+  ReactCurrentOwner: ReactCurrentOwner,
+  IsSomeRendererActing: IsSomeRendererActing,
+  // Used by renderers to avoid bundling object-assign twice in UMD bundles:
+  assign: _assign
+};
+
+{
+  ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;
+}
+
+// by calls to these methods by a Babel plugin.
+//
+// In PROD (or in packages without access to React internals),
+// they are left as they are instead.
+
+function warn(format) {
+  {
+    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+      args[_key - 1] = arguments[_key];
+    }
+
+    printWarning('warn', format, args);
+  }
+}
+function error(format) {
+  {
+    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
+      args[_key2 - 1] = arguments[_key2];
+    }
+
+    printWarning('error', format, args);
+  }
+}
+
+function printWarning(level, format, args) {
+  // When changing this logic, you might want to also
+  // update consoleWithStackDev.www.js as well.
+  {
+    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
+    var stack = ReactDebugCurrentFrame.getStackAddendum();
+
+    if (stack !== '') {
+      format += '%s';
+      args = args.concat([stack]);
+    }
+
+    var argsWithFormat = args.map(function (item) {
+      return '' + item;
+    }); // Careful: RN currently depends on this prefix
+
+    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
+    // breaks IE9: https://github.com/facebook/react/issues/13610
+    // eslint-disable-next-line react-internal/no-production-logging
+
+    Function.prototype.apply.call(console[level], console, argsWithFormat);
+  }
+}
+
+var didWarnStateUpdateForUnmountedComponent = {};
+
+function warnNoop(publicInstance, callerName) {
+  {
+    var _constructor = publicInstance.constructor;
+    var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';
+    var warningKey = componentName + "." + callerName;
+
+    if (didWarnStateUpdateForUnmountedComponent[warningKey]) {
+      return;
+    }
+
+    error("Can't call %s on a component that is not yet mounted. " + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);
+
+    didWarnStateUpdateForUnmountedComponent[warningKey] = true;
+  }
+}
+/**
+ * This is the abstract API for an update queue.
+ */
+
+
+var ReactNoopUpdateQueue = {
+  /**
+   * Checks whether or not this composite component is mounted.
+   * @param {ReactClass} publicInstance The instance we want to test.
+   * @return {boolean} True if mounted, false otherwise.
+   * @protected
+   * @final
+   */
+  isMounted: function (publicInstance) {
+    return false;
+  },
+
+  /**
+   * Forces an update. This should only be invoked when it is known with
+   * certainty that we are **not** in a DOM transaction.
+   *
+   * You may want to call this when you know that some deeper aspect of the
+   * component's state has changed but `setState` was not called.
+   *
+   * This will not invoke `shouldComponentUpdate`, but it will invoke
+   * `componentWillUpdate` and `componentDidUpdate`.
+   *
+   * @param {ReactClass} publicInstance The instance that should rerender.
+   * @param {?function} callback Called after component is updated.
+   * @param {?string} callerName name of the calling function in the public API.
+   * @internal
+   */
+  enqueueForceUpdate: function (publicInstance, callback, callerName) {
+    warnNoop(publicInstance, 'forceUpdate');
+  },
+
+  /**
+   * Replaces all of the state. Always use this or `setState` to mutate state.
+   * You should treat `this.state` as immutable.
+   *
+   * There is no guarantee that `this.state` will be immediately updated, so
+   * accessing `this.state` after calling this method may return the old value.
+   *
+   * @param {ReactClass} publicInstance The instance that should rerender.
+   * @param {object} completeState Next state.
+   * @param {?function} callback Called after component is updated.
+   * @param {?string} callerName name of the calling function in the public API.
+   * @internal
+   */
+  enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {
+    warnNoop(publicInstance, 'replaceState');
+  },
+
+  /**
+   * Sets a subset of the state. This only exists because _pendingState is
+   * internal. This provides a merging strategy that is not available to deep
+   * properties which is confusing. TODO: Expose pendingState or don't use it
+   * during the merge.
+   *
+   * @param {ReactClass} publicInstance The instance that should rerender.
+   * @param {object} partialState Next partial state to be merged with state.
+   * @param {?function} callback Called after component is updated.
+   * @param {?string} Name of the calling function in the public API.
+   * @internal
+   */
+  enqueueSetState: function (publicInstance, partialState, callback, callerName) {
+    warnNoop(publicInstance, 'setState');
+  }
+};
+
+var emptyObject = {};
+
+{
+  Object.freeze(emptyObject);
+}
+/**
+ * Base class helpers for the updating state of a component.
+ */
+
+
+function Component(props, context, updater) {
+  this.props = props;
+  this.context = context; // If a component has string refs, we will assign a different object later.
+
+  this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the
+  // renderer.
+
+  this.updater = updater || ReactNoopUpdateQueue;
+}
+
+Component.prototype.isReactComponent = {};
+/**
+ * Sets a subset of the state. Always use this to mutate
+ * state. You should treat `this.state` as immutable.
+ *
+ * There is no guarantee that `this.state` will be immediately updated, so
+ * accessing `this.state` after calling this method may return the old value.
+ *
+ * There is no guarantee that calls to `setState` will run synchronously,
+ * as they may eventually be batched together.  You can provide an optional
+ * callback that will be executed when the call to setState is actually
+ * completed.
+ *
+ * When a function is provided to setState, it will be called at some point in
+ * the future (not synchronously). It will be called with the up to date
+ * component arguments (state, props, context). These values can be different
+ * from this.* because your function may be called after receiveProps but before
+ * shouldComponentUpdate, and this new state, props, and context will not yet be
+ * assigned to this.
+ *
+ * @param {object|function} partialState Next partial state or function to
+ *        produce next partial state to be merged with current state.
+ * @param {?function} callback Called after state is updated.
+ * @final
+ * @protected
+ */
+
+Component.prototype.setState = function (partialState, callback) {
+  if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {
+    {
+      throw Error( "setState(...): takes an object of state variables to update or a function which returns an object of state variables." );
+    }
+  }
+
+  this.updater.enqueueSetState(this, partialState, callback, 'setState');
+};
+/**
+ * Forces an update. This should only be invoked when it is known with
+ * certainty that we are **not** in a DOM transaction.
+ *
+ * You may want to call this when you know that some deeper aspect of the
+ * component's state has changed but `setState` was not called.
+ *
+ * This will not invoke `shouldComponentUpdate`, but it will invoke
+ * `componentWillUpdate` and `componentDidUpdate`.
+ *
+ * @param {?function} callback Called after update is complete.
+ * @final
+ * @protected
+ */
+
+
+Component.prototype.forceUpdate = function (callback) {
+  this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');
+};
+/**
+ * Deprecated APIs. These APIs used to exist on classic React classes but since
+ * we would like to deprecate them, we're not going to move them over to this
+ * modern base class. Instead, we define a getter that warns if it's accessed.
+ */
+
+
+{
+  var deprecatedAPIs = {
+    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
+    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
+  };
+
+  var defineDeprecationWarning = function (methodName, info) {
+    Object.defineProperty(Component.prototype, methodName, {
+      get: function () {
+        warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);
+
+        return undefined;
+      }
+    });
+  };
+
+  for (var fnName in deprecatedAPIs) {
+    if (deprecatedAPIs.hasOwnProperty(fnName)) {
+      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
+    }
+  }
+}
+
+function ComponentDummy() {}
+
+ComponentDummy.prototype = Component.prototype;
+/**
+ * Convenience component with default shallow equality check for sCU.
+ */
+
+function PureComponent(props, context, updater) {
+  this.props = props;
+  this.context = context; // If a component has string refs, we will assign a different object later.
+
+  this.refs = emptyObject;
+  this.updater = updater || ReactNoopUpdateQueue;
+}
+
+var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();
+pureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.
+
+_assign(pureComponentPrototype, Component.prototype);
+
+pureComponentPrototype.isPureReactComponent = true;
+
+// an immutable object with a single mutable value
+function createRef() {
+  var refObject = {
+    current: null
+  };
+
+  {
+    Object.seal(refObject);
+  }
+
+  return refObject;
+}
+
+function getWrappedName(outerType, innerType, wrapperName) {
+  var functionName = innerType.displayName || innerType.name || '';
+  return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
+}
+
+function getContextName(type) {
+  return type.displayName || 'Context';
+}
+
+function getComponentName(type) {
+  if (type == null) {
+    // Host root, text node or just invalid type.
+    return null;
+  }
+
+  {
+    if (typeof type.tag === 'number') {
+      error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
+    }
+  }
+
+  if (typeof type === 'function') {
+    return type.displayName || type.name || null;
+  }
+
+  if (typeof type === 'string') {
+    return type;
+  }
+
+  switch (type) {
+    case exports.Fragment:
+      return 'Fragment';
+
+    case REACT_PORTAL_TYPE:
+      return 'Portal';
+
+    case exports.Profiler:
+      return 'Profiler';
+
+    case exports.StrictMode:
+      return 'StrictMode';
+
+    case exports.Suspense:
+      return 'Suspense';
+
+    case REACT_SUSPENSE_LIST_TYPE:
+      return 'SuspenseList';
+  }
+
+  if (typeof type === 'object') {
+    switch (type.$$typeof) {
+      case REACT_CONTEXT_TYPE:
+        var context = type;
+        return getContextName(context) + '.Consumer';
+
+      case REACT_PROVIDER_TYPE:
+        var provider = type;
+        return getContextName(provider._context) + '.Provider';
+
+      case REACT_FORWARD_REF_TYPE:
+        return getWrappedName(type, type.render, 'ForwardRef');
+
+      case REACT_MEMO_TYPE:
+        return getComponentName(type.type);
+
+      case REACT_BLOCK_TYPE:
+        return getComponentName(type._render);
+
+      case REACT_LAZY_TYPE:
+        {
+          var lazyComponent = type;
+          var payload = lazyComponent._payload;
+          var init = lazyComponent._init;
+
+          try {
+            return getComponentName(init(payload));
+          } catch (x) {
+            return null;
+          }
+        }
+    }
+  }
+
+  return null;
+}
+
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+var RESERVED_PROPS = {
+  key: true,
+  ref: true,
+  __self: true,
+  __source: true
+};
+var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;
+
+{
+  didWarnAboutStringRefs = {};
+}
+
+function hasValidRef(config) {
+  {
+    if (hasOwnProperty.call(config, 'ref')) {
+      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
+
+      if (getter && getter.isReactWarning) {
+        return false;
+      }
+    }
+  }
+
+  return config.ref !== undefined;
+}
+
+function hasValidKey(config) {
+  {
+    if (hasOwnProperty.call(config, 'key')) {
+      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
+
+      if (getter && getter.isReactWarning) {
+        return false;
+      }
+    }
+  }
+
+  return config.key !== undefined;
+}
+
+function defineKeyPropWarningGetter(props, displayName) {
+  var warnAboutAccessingKey = function () {
+    {
+      if (!specialPropKeyWarningShown) {
+        specialPropKeyWarningShown = true;
+
+        error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
+      }
+    }
+  };
+
+  warnAboutAccessingKey.isReactWarning = true;
+  Object.defineProperty(props, 'key', {
+    get: warnAboutAccessingKey,
+    configurable: true
+  });
+}
+
+function defineRefPropWarningGetter(props, displayName) {
+  var warnAboutAccessingRef = function () {
+    {
+      if (!specialPropRefWarningShown) {
+        specialPropRefWarningShown = true;
+
+        error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
+      }
+    }
+  };
+
+  warnAboutAccessingRef.isReactWarning = true;
+  Object.defineProperty(props, 'ref', {
+    get: warnAboutAccessingRef,
+    configurable: true
+  });
+}
+
+function warnIfStringRefCannotBeAutoConverted(config) {
+  {
+    if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {
+      var componentName = getComponentName(ReactCurrentOwner.current.type);
+
+      if (!didWarnAboutStringRefs[componentName]) {
+        error('Component "%s" contains the string ref "%s". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);
+
+        didWarnAboutStringRefs[componentName] = true;
+      }
+    }
+  }
+}
+/**
+ * Factory method to create a new React element. This no longer adheres to
+ * the class pattern, so do not use new to call it. Also, instanceof check
+ * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
+ * if something is a React Element.
+ *
+ * @param {*} type
+ * @param {*} props
+ * @param {*} key
+ * @param {string|object} ref
+ * @param {*} owner
+ * @param {*} self A *temporary* helper to detect places where `this` is
+ * different from the `owner` when React.createElement is called, so that we
+ * can warn. We want to get rid of owner and replace string `ref`s with arrow
+ * functions, and as long as `this` and owner are the same, there will be no
+ * change in behavior.
+ * @param {*} source An annotation object (added by a transpiler or otherwise)
+ * indicating filename, line number, and/or other information.
+ * @internal
+ */
+
+
+var ReactElement = function (type, key, ref, self, source, owner, props) {
+  var element = {
+    // This tag allows us to uniquely identify this as a React Element
+    $$typeof: REACT_ELEMENT_TYPE,
+    // Built-in properties that belong on the element
+    type: type,
+    key: key,
+    ref: ref,
+    props: props,
+    // Record the component responsible for creating this element.
+    _owner: owner
+  };
+
+  {
+    // The validation flag is currently mutative. We put it on
+    // an external backing store so that we can freeze the whole object.
+    // This can be replaced with a WeakMap once they are implemented in
+    // commonly used development environments.
+    element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
+    // the validation flag non-enumerable (where possible, which should
+    // include every environment we run tests in), so the test framework
+    // ignores it.
+
+    Object.defineProperty(element._store, 'validated', {
+      configurable: false,
+      enumerable: false,
+      writable: true,
+      value: false
+    }); // self and source are DEV only properties.
+
+    Object.defineProperty(element, '_self', {
+      configurable: false,
+      enumerable: false,
+      writable: false,
+      value: self
+    }); // Two elements created in two different places should be considered
+    // equal for testing purposes and therefore we hide it from enumeration.
+
+    Object.defineProperty(element, '_source', {
+      configurable: false,
+      enumerable: false,
+      writable: false,
+      value: source
+    });
+
+    if (Object.freeze) {
+      Object.freeze(element.props);
+      Object.freeze(element);
+    }
+  }
+
+  return element;
+};
+/**
+ * Create and return a new ReactElement of the given type.
+ * See https://reactjs.org/docs/react-api.html#createelement
+ */
+
+function createElement(type, config, children) {
+  var propName; // Reserved names are extracted
+
+  var props = {};
+  var key = null;
+  var ref = null;
+  var self = null;
+  var source = null;
+
+  if (config != null) {
+    if (hasValidRef(config)) {
+      ref = config.ref;
+
+      {
+        warnIfStringRefCannotBeAutoConverted(config);
+      }
+    }
+
+    if (hasValidKey(config)) {
+      key = '' + config.key;
+    }
+
+    self = config.__self === undefined ? null : config.__self;
+    source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object
+
+    for (propName in config) {
+      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
+        props[propName] = config[propName];
+      }
+    }
+  } // Children can be more than one argument, and those are transferred onto
+  // the newly allocated props object.
+
+
+  var childrenLength = arguments.length - 2;
+
+  if (childrenLength === 1) {
+    props.children = children;
+  } else if (childrenLength > 1) {
+    var childArray = Array(childrenLength);
+
+    for (var i = 0; i < childrenLength; i++) {
+      childArray[i] = arguments[i + 2];
+    }
+
+    {
+      if (Object.freeze) {
+        Object.freeze(childArray);
+      }
+    }
+
+    props.children = childArray;
+  } // Resolve default props
+
+
+  if (type && type.defaultProps) {
+    var defaultProps = type.defaultProps;
+
+    for (propName in defaultProps) {
+      if (props[propName] === undefined) {
+        props[propName] = defaultProps[propName];
+      }
+    }
+  }
+
+  {
+    if (key || ref) {
+      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
+
+      if (key) {
+        defineKeyPropWarningGetter(props, displayName);
+      }
+
+      if (ref) {
+        defineRefPropWarningGetter(props, displayName);
+      }
+    }
+  }
+
+  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
+}
+function cloneAndReplaceKey(oldElement, newKey) {
+  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);
+  return newElement;
+}
+/**
+ * Clone and return a new ReactElement using element as the starting point.
+ * See https://reactjs.org/docs/react-api.html#cloneelement
+ */
+
+function cloneElement(element, config, children) {
+  if (!!(element === null || element === undefined)) {
+    {
+      throw Error( "React.cloneElement(...): The argument must be a React element, but you passed " + element + "." );
+    }
+  }
+
+  var propName; // Original props are copied
+
+  var props = _assign({}, element.props); // Reserved names are extracted
+
+
+  var key = element.key;
+  var ref = element.ref; // Self is preserved since the owner is preserved.
+
+  var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a
+  // transpiler, and the original source is probably a better indicator of the
+  // true owner.
+
+  var source = element._source; // Owner will be preserved, unless ref is overridden
+
+  var owner = element._owner;
+
+  if (config != null) {
+    if (hasValidRef(config)) {
+      // Silently steal the ref from the parent.
+      ref = config.ref;
+      owner = ReactCurrentOwner.current;
+    }
+
+    if (hasValidKey(config)) {
+      key = '' + config.key;
+    } // Remaining properties override existing props
+
+
+    var defaultProps;
+
+    if (element.type && element.type.defaultProps) {
+      defaultProps = element.type.defaultProps;
+    }
+
+    for (propName in config) {
+      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
+        if (config[propName] === undefined && defaultProps !== undefined) {
+          // Resolve default props
+          props[propName] = defaultProps[propName];
+        } else {
+          props[propName] = config[propName];
+        }
+      }
+    }
+  } // Children can be more than one argument, and those are transferred onto
+  // the newly allocated props object.
+
+
+  var childrenLength = arguments.length - 2;
+
+  if (childrenLength === 1) {
+    props.children = children;
+  } else if (childrenLength > 1) {
+    var childArray = Array(childrenLength);
+
+    for (var i = 0; i < childrenLength; i++) {
+      childArray[i] = arguments[i + 2];
+    }
+
+    props.children = childArray;
+  }
+
+  return ReactElement(element.type, key, ref, self, source, owner, props);
+}
+/**
+ * Verifies the object is a ReactElement.
+ * See https://reactjs.org/docs/react-api.html#isvalidelement
+ * @param {?object} object
+ * @return {boolean} True if `object` is a ReactElement.
+ * @final
+ */
+
+function isValidElement(object) {
+  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
+}
+
+var SEPARATOR = '.';
+var SUBSEPARATOR = ':';
+/**
+ * Escape and wrap key so it is safe to use as a reactid
+ *
+ * @param {string} key to be escaped.
+ * @return {string} the escaped key.
+ */
+
+function escape(key) {
+  var escapeRegex = /[=:]/g;
+  var escaperLookup = {
+    '=': '=0',
+    ':': '=2'
+  };
+  var escapedString = key.replace(escapeRegex, function (match) {
+    return escaperLookup[match];
+  });
+  return '$' + escapedString;
+}
+/**
+ * TODO: Test that a single child and an array with one item have the same key
+ * pattern.
+ */
+
+
+var didWarnAboutMaps = false;
+var userProvidedKeyEscapeRegex = /\/+/g;
+
+function escapeUserProvidedKey(text) {
+  return text.replace(userProvidedKeyEscapeRegex, '$&/');
+}
+/**
+ * Generate a key string that identifies a element within a set.
+ *
+ * @param {*} element A element that could contain a manual key.
+ * @param {number} index Index that is used if a manual key is not provided.
+ * @return {string}
+ */
+
+
+function getElementKey(element, index) {
+  // Do some typechecking here since we call this blindly. We want to ensure
+  // that we don't block potential future ES APIs.
+  if (typeof element === 'object' && element !== null && element.key != null) {
+    // Explicit key
+    return escape('' + element.key);
+  } // Implicit key determined by the index in the set
+
+
+  return index.toString(36);
+}
+
+function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
+  var type = typeof children;
+
+  if (type === 'undefined' || type === 'boolean') {
+    // All of the above are perceived as null.
+    children = null;
+  }
+
+  var invokeCallback = false;
+
+  if (children === null) {
+    invokeCallback = true;
+  } else {
+    switch (type) {
+      case 'string':
+      case 'number':
+        invokeCallback = true;
+        break;
+
+      case 'object':
+        switch (children.$$typeof) {
+          case REACT_ELEMENT_TYPE:
+          case REACT_PORTAL_TYPE:
+            invokeCallback = true;
+        }
+
+    }
+  }
+
+  if (invokeCallback) {
+    var _child = children;
+    var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array
+    // so that it's consistent if the number of children grows:
+
+    var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;
+
+    if (Array.isArray(mappedChild)) {
+      var escapedChildKey = '';
+
+      if (childKey != null) {
+        escapedChildKey = escapeUserProvidedKey(childKey) + '/';
+      }
+
+      mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {
+        return c;
+      });
+    } else if (mappedChild != null) {
+      if (isValidElement(mappedChild)) {
+        mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as
+        // traverseAllChildren used to do for objects as children
+        escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key
+        mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number
+        escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);
+      }
+
+      array.push(mappedChild);
+    }
+
+    return 1;
+  }
+
+  var child;
+  var nextName;
+  var subtreeCount = 0; // Count of children found in the current subtree.
+
+  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;
+
+  if (Array.isArray(children)) {
+    for (var i = 0; i < children.length; i++) {
+      child = children[i];
+      nextName = nextNamePrefix + getElementKey(child, i);
+      subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);
+    }
+  } else {
+    var iteratorFn = getIteratorFn(children);
+
+    if (typeof iteratorFn === 'function') {
+      var iterableChildren = children;
+
+      {
+        // Warn about using Maps as children
+        if (iteratorFn === iterableChildren.entries) {
+          if (!didWarnAboutMaps) {
+            warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');
+          }
+
+          didWarnAboutMaps = true;
+        }
+      }
+
+      var iterator = iteratorFn.call(iterableChildren);
+      var step;
+      var ii = 0;
+
+      while (!(step = iterator.next()).done) {
+        child = step.value;
+        nextName = nextNamePrefix + getElementKey(child, ii++);
+        subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);
+      }
+    } else if (type === 'object') {
+      var childrenString = '' + children;
+
+      {
+        {
+          throw Error( "Objects are not valid as a React child (found: " + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + "). If you meant to render a collection of children, use an array instead." );
+        }
+      }
+    }
+  }
+
+  return subtreeCount;
+}
+
+/**
+ * Maps children that are typically specified as `props.children`.
+ *
+ * See https://reactjs.org/docs/react-api.html#reactchildrenmap
+ *
+ * The provided mapFunction(child, index) will be called for each
+ * leaf child.
+ *
+ * @param {?*} children Children tree container.
+ * @param {function(*, int)} func The map function.
+ * @param {*} context Context for mapFunction.
+ * @return {object} Object containing the ordered map of results.
+ */
+function mapChildren(children, func, context) {
+  if (children == null) {
+    return children;
+  }
+
+  var result = [];
+  var count = 0;
+  mapIntoArray(children, result, '', '', function (child) {
+    return func.call(context, child, count++);
+  });
+  return result;
+}
+/**
+ * Count the number of children that are typically specified as
+ * `props.children`.
+ *
+ * See https://reactjs.org/docs/react-api.html#reactchildrencount
+ *
+ * @param {?*} children Children tree container.
+ * @return {number} The number of children.
+ */
+
+
+function countChildren(children) {
+  var n = 0;
+  mapChildren(children, function () {
+    n++; // Don't return anything
+  });
+  return n;
+}
+
+/**
+ * Iterates through children that are typically specified as `props.children`.
+ *
+ * See https://reactjs.org/docs/react-api.html#reactchildrenforeach
+ *
+ * The provided forEachFunc(child, index) will be called for each
+ * leaf child.
+ *
+ * @param {?*} children Children tree container.
+ * @param {function(*, int)} forEachFunc
+ * @param {*} forEachContext Context for forEachContext.
+ */
+function forEachChildren(children, forEachFunc, forEachContext) {
+  mapChildren(children, function () {
+    forEachFunc.apply(this, arguments); // Don't return anything.
+  }, forEachContext);
+}
+/**
+ * Flatten a children object (typically specified as `props.children`) and
+ * return an array with appropriately re-keyed children.
+ *
+ * See https://reactjs.org/docs/react-api.html#reactchildrentoarray
+ */
+
+
+function toArray(children) {
+  return mapChildren(children, function (child) {
+    return child;
+  }) || [];
+}
+/**
+ * Returns the first child in a collection of children and verifies that there
+ * is only one child in the collection.
+ *
+ * See https://reactjs.org/docs/react-api.html#reactchildrenonly
+ *
+ * The current implementation of this function assumes that a single child gets
+ * passed without a wrapper, but the purpose of this helper function is to
+ * abstract away the particular structure of children.
+ *
+ * @param {?object} children Child collection structure.
+ * @return {ReactElement} The first and only `ReactElement` contained in the
+ * structure.
+ */
+
+
+function onlyChild(children) {
+  if (!isValidElement(children)) {
+    {
+      throw Error( "React.Children.only expected to receive a single React element child." );
+    }
+  }
+
+  return children;
+}
+
+function createContext(defaultValue, calculateChangedBits) {
+  if (calculateChangedBits === undefined) {
+    calculateChangedBits = null;
+  } else {
+    {
+      if (calculateChangedBits !== null && typeof calculateChangedBits !== 'function') {
+        error('createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits);
+      }
+    }
+  }
+
+  var context = {
+    $$typeof: REACT_CONTEXT_TYPE,
+    _calculateChangedBits: calculateChangedBits,
+    // As a workaround to support multiple concurrent renderers, we categorize
+    // some renderers as primary and others as secondary. We only expect
+    // there to be two concurrent renderers at most: React Native (primary) and
+    // Fabric (secondary); React DOM (primary) and React ART (secondary).
+    // Secondary renderers store their context values on separate fields.
+    _currentValue: defaultValue,
+    _currentValue2: defaultValue,
+    // Used to track how many concurrent renderers this context currently
+    // supports within in a single renderer. Such as parallel server rendering.
+    _threadCount: 0,
+    // These are circular
+    Provider: null,
+    Consumer: null
+  };
+  context.Provider = {
+    $$typeof: REACT_PROVIDER_TYPE,
+    _context: context
+  };
+  var hasWarnedAboutUsingNestedContextConsumers = false;
+  var hasWarnedAboutUsingConsumerProvider = false;
+  var hasWarnedAboutDisplayNameOnConsumer = false;
+
+  {
+    // A separate object, but proxies back to the original context object for
+    // backwards compatibility. It has a different $$typeof, so we can properly
+    // warn for the incorrect usage of Context as a Consumer.
+    var Consumer = {
+      $$typeof: REACT_CONTEXT_TYPE,
+      _context: context,
+      _calculateChangedBits: context._calculateChangedBits
+    }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here
+
+    Object.defineProperties(Consumer, {
+      Provider: {
+        get: function () {
+          if (!hasWarnedAboutUsingConsumerProvider) {
+            hasWarnedAboutUsingConsumerProvider = true;
+
+            error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');
+          }
+
+          return context.Provider;
+        },
+        set: function (_Provider) {
+          context.Provider = _Provider;
+        }
+      },
+      _currentValue: {
+        get: function () {
+          return context._currentValue;
+        },
+        set: function (_currentValue) {
+          context._currentValue = _currentValue;
+        }
+      },
+      _currentValue2: {
+        get: function () {
+          return context._currentValue2;
+        },
+        set: function (_currentValue2) {
+          context._currentValue2 = _currentValue2;
+        }
+      },
+      _threadCount: {
+        get: function () {
+          return context._threadCount;
+        },
+        set: function (_threadCount) {
+          context._threadCount = _threadCount;
+        }
+      },
+      Consumer: {
+        get: function () {
+          if (!hasWarnedAboutUsingNestedContextConsumers) {
+            hasWarnedAboutUsingNestedContextConsumers = true;
+
+            error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');
+          }
+
+          return context.Consumer;
+        }
+      },
+      displayName: {
+        get: function () {
+          return context.displayName;
+        },
+        set: function (displayName) {
+          if (!hasWarnedAboutDisplayNameOnConsumer) {
+            warn('Setting `displayName` on Context.Consumer has no effect. ' + "You should set it directly on the context with Context.displayName = '%s'.", displayName);
+
+            hasWarnedAboutDisplayNameOnConsumer = true;
+          }
+        }
+      }
+    }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty
+
+    context.Consumer = Consumer;
+  }
+
+  {
+    context._currentRenderer = null;
+    context._currentRenderer2 = null;
+  }
+
+  return context;
+}
+
+var Uninitialized = -1;
+var Pending = 0;
+var Resolved = 1;
+var Rejected = 2;
+
+function lazyInitializer(payload) {
+  if (payload._status === Uninitialized) {
+    var ctor = payload._result;
+    var thenable = ctor(); // Transition to the next state.
+
+    var pending = payload;
+    pending._status = Pending;
+    pending._result = thenable;
+    thenable.then(function (moduleObject) {
+      if (payload._status === Pending) {
+        var defaultExport = moduleObject.default;
+
+        {
+          if (defaultExport === undefined) {
+            error('lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\n\nYour code should look like: \n  ' + // Break up imports to avoid accidentally parsing them as dependencies.
+            'const MyComponent = lazy(() => imp' + "ort('./MyComponent'))", moduleObject);
+          }
+        } // Transition to the next state.
+
+
+        var resolved = payload;
+        resolved._status = Resolved;
+        resolved._result = defaultExport;
+      }
+    }, function (error) {
+      if (payload._status === Pending) {
+        // Transition to the next state.
+        var rejected = payload;
+        rejected._status = Rejected;
+        rejected._result = error;
+      }
+    });
+  }
+
+  if (payload._status === Resolved) {
+    return payload._result;
+  } else {
+    throw payload._result;
+  }
+}
+
+function lazy(ctor) {
+  var payload = {
+    // We use these fields to store the result.
+    _status: -1,
+    _result: ctor
+  };
+  var lazyType = {
+    $$typeof: REACT_LAZY_TYPE,
+    _payload: payload,
+    _init: lazyInitializer
+  };
+
+  {
+    // In production, this would just set it on the object.
+    var defaultProps;
+    var propTypes; // $FlowFixMe
+
+    Object.defineProperties(lazyType, {
+      defaultProps: {
+        configurable: true,
+        get: function () {
+          return defaultProps;
+        },
+        set: function (newDefaultProps) {
+          error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');
+
+          defaultProps = newDefaultProps; // Match production behavior more closely:
+          // $FlowFixMe
+
+          Object.defineProperty(lazyType, 'defaultProps', {
+            enumerable: true
+          });
+        }
+      },
+      propTypes: {
+        configurable: true,
+        get: function () {
+          return propTypes;
+        },
+        set: function (newPropTypes) {
+          error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');
+
+          propTypes = newPropTypes; // Match production behavior more closely:
+          // $FlowFixMe
+
+          Object.defineProperty(lazyType, 'propTypes', {
+            enumerable: true
+          });
+        }
+      }
+    });
+  }
+
+  return lazyType;
+}
+
+function forwardRef(render) {
+  {
+    if (render != null && render.$$typeof === REACT_MEMO_TYPE) {
+      error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');
+    } else if (typeof render !== 'function') {
+      error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);
+    } else {
+      if (render.length !== 0 && render.length !== 2) {
+        error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');
+      }
+    }
+
+    if (render != null) {
+      if (render.defaultProps != null || render.propTypes != null) {
+        error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');
+      }
+    }
+  }
+
+  var elementType = {
+    $$typeof: REACT_FORWARD_REF_TYPE,
+    render: render
+  };
+
+  {
+    var ownName;
+    Object.defineProperty(elementType, 'displayName', {
+      enumerable: false,
+      configurable: true,
+      get: function () {
+        return ownName;
+      },
+      set: function (name) {
+        ownName = name;
+
+        if (render.displayName == null) {
+          render.displayName = name;
+        }
+      }
+    });
+  }
+
+  return elementType;
+}
+
+// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
+
+var enableScopeAPI = false; // Experimental Create Event Handle API.
+
+function isValidElementType(type) {
+  if (typeof type === 'string' || typeof type === 'function') {
+    return true;
+  } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
+
+
+  if (type === exports.Fragment || type === exports.Profiler || type === REACT_DEBUG_TRACING_MODE_TYPE || type === exports.StrictMode || type === exports.Suspense || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {
+    return true;
+  }
+
+  if (typeof type === 'object' && type !== null) {
+    if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+function memo(type, compare) {
+  {
+    if (!isValidElementType(type)) {
+      error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);
+    }
+  }
+
+  var elementType = {
+    $$typeof: REACT_MEMO_TYPE,
+    type: type,
+    compare: compare === undefined ? null : compare
+  };
+
+  {
+    var ownName;
+    Object.defineProperty(elementType, 'displayName', {
+      enumerable: false,
+      configurable: true,
+      get: function () {
+        return ownName;
+      },
+      set: function (name) {
+        ownName = name;
+
+        if (type.displayName == null) {
+          type.displayName = name;
+        }
+      }
+    });
+  }
+
+  return elementType;
+}
+
+function resolveDispatcher() {
+  var dispatcher = ReactCurrentDispatcher.current;
+
+  if (!(dispatcher !== null)) {
+    {
+      throw Error( "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem." );
+    }
+  }
+
+  return dispatcher;
+}
+
+function useContext(Context, unstable_observedBits) {
+  var dispatcher = resolveDispatcher();
+
+  {
+    if (unstable_observedBits !== undefined) {
+      error('useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\n\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://reactjs.org/link/rules-of-hooks' : '');
+    } // TODO: add a more generic warning for invalid values.
+
+
+    if (Context._context !== undefined) {
+      var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs
+      // and nobody should be using this in existing code.
+
+      if (realContext.Consumer === Context) {
+        error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');
+      } else if (realContext.Provider === Context) {
+        error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');
+      }
+    }
+  }
+
+  return dispatcher.useContext(Context, unstable_observedBits);
+}
+function useState(initialState) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useState(initialState);
+}
+function useReducer(reducer, initialArg, init) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useReducer(reducer, initialArg, init);
+}
+function useRef(initialValue) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useRef(initialValue);
+}
+function useEffect(create, deps) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useEffect(create, deps);
+}
+function useLayoutEffect(create, deps) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useLayoutEffect(create, deps);
+}
+function useCallback(callback, deps) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useCallback(callback, deps);
+}
+function useMemo(create, deps) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useMemo(create, deps);
+}
+function useImperativeHandle(ref, create, deps) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useImperativeHandle(ref, create, deps);
+}
+function useDebugValue(value, formatterFn) {
+  {
+    var dispatcher = resolveDispatcher();
+    return dispatcher.useDebugValue(value, formatterFn);
+  }
+}
+
+// Helpers to patch console.logs to avoid logging during side-effect free
+// replaying on render function. This currently only patches the object
+// lazily which won't cover if the log function was extracted eagerly.
+// We could also eagerly patch the method.
+var disabledDepth = 0;
+var prevLog;
+var prevInfo;
+var prevWarn;
+var prevError;
+var prevGroup;
+var prevGroupCollapsed;
+var prevGroupEnd;
+
+function disabledLog() {}
+
+disabledLog.__reactDisabledLog = true;
+function disableLogs() {
+  {
+    if (disabledDepth === 0) {
+      /* eslint-disable react-internal/no-production-logging */
+      prevLog = console.log;
+      prevInfo = console.info;
+      prevWarn = console.warn;
+      prevError = console.error;
+      prevGroup = console.group;
+      prevGroupCollapsed = console.groupCollapsed;
+      prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099
+
+      var props = {
+        configurable: true,
+        enumerable: true,
+        value: disabledLog,
+        writable: true
+      }; // $FlowFixMe Flow thinks console is immutable.
+
+      Object.defineProperties(console, {
+        info: props,
+        log: props,
+        warn: props,
+        error: props,
+        group: props,
+        groupCollapsed: props,
+        groupEnd: props
+      });
+      /* eslint-enable react-internal/no-production-logging */
+    }
+
+    disabledDepth++;
+  }
+}
+function reenableLogs() {
+  {
+    disabledDepth--;
+
+    if (disabledDepth === 0) {
+      /* eslint-disable react-internal/no-production-logging */
+      var props = {
+        configurable: true,
+        enumerable: true,
+        writable: true
+      }; // $FlowFixMe Flow thinks console is immutable.
+
+      Object.defineProperties(console, {
+        log: _assign({}, props, {
+          value: prevLog
+        }),
+        info: _assign({}, props, {
+          value: prevInfo
+        }),
+        warn: _assign({}, props, {
+          value: prevWarn
+        }),
+        error: _assign({}, props, {
+          value: prevError
+        }),
+        group: _assign({}, props, {
+          value: prevGroup
+        }),
+        groupCollapsed: _assign({}, props, {
+          value: prevGroupCollapsed
+        }),
+        groupEnd: _assign({}, props, {
+          value: prevGroupEnd
+        })
+      });
+      /* eslint-enable react-internal/no-production-logging */
+    }
+
+    if (disabledDepth < 0) {
+      error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');
+    }
+  }
+}
+
+var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;
+var prefix;
+function describeBuiltInComponentFrame(name, source, ownerFn) {
+  {
+    if (prefix === undefined) {
+      // Extract the VM specific prefix used by each line.
+      try {
+        throw Error();
+      } catch (x) {
+        var match = x.stack.trim().match(/\n( *(at )?)/);
+        prefix = match && match[1] || '';
+      }
+    } // We use the prefix to ensure our stacks line up with native stack frames.
+
+
+    return '\n' + prefix + name;
+  }
+}
+var reentry = false;
+var componentFrameCache;
+
+{
+  var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;
+  componentFrameCache = new PossiblyWeakMap();
+}
+
+function describeNativeComponentFrame(fn, construct) {
+  // If something asked for a stack inside a fake render, it should get ignored.
+  if (!fn || reentry) {
+    return '';
+  }
+
+  {
+    var frame = componentFrameCache.get(fn);
+
+    if (frame !== undefined) {
+      return frame;
+    }
+  }
+
+  var control;
+  reentry = true;
+  var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.
+
+  Error.prepareStackTrace = undefined;
+  var previousDispatcher;
+
+  {
+    previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function
+    // for warnings.
+
+    ReactCurrentDispatcher$1.current = null;
+    disableLogs();
+  }
+
+  try {
+    // This should throw.
+    if (construct) {
+      // Something should be setting the props in the constructor.
+      var Fake = function () {
+        throw Error();
+      }; // $FlowFixMe
+
+
+      Object.defineProperty(Fake.prototype, 'props', {
+        set: function () {
+          // We use a throwing setter instead of frozen or non-writable props
+          // because that won't throw in a non-strict mode function.
+          throw Error();
+        }
+      });
+
+      if (typeof Reflect === 'object' && Reflect.construct) {
+        // We construct a different control for this case to include any extra
+        // frames added by the construct call.
+        try {
+          Reflect.construct(Fake, []);
+        } catch (x) {
+          control = x;
+        }
+
+        Reflect.construct(fn, [], Fake);
+      } else {
+        try {
+          Fake.call();
+        } catch (x) {
+          control = x;
+        }
+
+        fn.call(Fake.prototype);
+      }
+    } else {
+      try {
+        throw Error();
+      } catch (x) {
+        control = x;
+      }
+
+      fn();
+    }
+  } catch (sample) {
+    // This is inlined manually because closure doesn't do it for us.
+    if (sample && control && typeof sample.stack === 'string') {
+      // This extracts the first frame from the sample that isn't also in the control.
+      // Skipping one frame that we assume is the frame that calls the two.
+      var sampleLines = sample.stack.split('\n');
+      var controlLines = control.stack.split('\n');
+      var s = sampleLines.length - 1;
+      var c = controlLines.length - 1;
+
+      while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {
+        // We expect at least one stack frame to be shared.
+        // Typically this will be the root most one. However, stack frames may be
+        // cut off due to maximum stack limits. In this case, one maybe cut off
+        // earlier than the other. We assume that the sample is longer or the same
+        // and there for cut off earlier. So we should find the root most frame in
+        // the sample somewhere in the control.
+        c--;
+      }
+
+      for (; s >= 1 && c >= 0; s--, c--) {
+        // Next we find the first one that isn't the same which should be the
+        // frame that called our sample function and the control.
+        if (sampleLines[s] !== controlLines[c]) {
+          // In V8, the first line is describing the message but other VMs don't.
+          // If we're about to return the first line, and the control is also on the same
+          // line, that's a pretty good indicator that our sample threw at same line as
+          // the control. I.e. before we entered the sample frame. So we ignore this result.
+          // This can happen if you passed a class to function component, or non-function.
+          if (s !== 1 || c !== 1) {
+            do {
+              s--;
+              c--; // We may still have similar intermediate frames from the construct call.
+              // The next one that isn't the same should be our match though.
+
+              if (c < 0 || sampleLines[s] !== controlLines[c]) {
+                // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier.
+                var _frame = '\n' + sampleLines[s].replace(' at new ', ' at ');
+
+                {
+                  if (typeof fn === 'function') {
+                    componentFrameCache.set(fn, _frame);
+                  }
+                } // Return the line we found.
+
+
+                return _frame;
+              }
+            } while (s >= 1 && c >= 0);
+          }
+
+          break;
+        }
+      }
+    }
+  } finally {
+    reentry = false;
+
+    {
+      ReactCurrentDispatcher$1.current = previousDispatcher;
+      reenableLogs();
+    }
+
+    Error.prepareStackTrace = previousPrepareStackTrace;
+  } // Fallback to just using the name if we couldn't make it throw.
+
+
+  var name = fn ? fn.displayName || fn.name : '';
+  var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';
+
+  {
+    if (typeof fn === 'function') {
+      componentFrameCache.set(fn, syntheticFrame);
+    }
+  }
+
+  return syntheticFrame;
+}
+function describeFunctionComponentFrame(fn, source, ownerFn) {
+  {
+    return describeNativeComponentFrame(fn, false);
+  }
+}
+
+function shouldConstruct(Component) {
+  var prototype = Component.prototype;
+  return !!(prototype && prototype.isReactComponent);
+}
+
+function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
+
+  if (type == null) {
+    return '';
+  }
+
+  if (typeof type === 'function') {
+    {
+      return describeNativeComponentFrame(type, shouldConstruct(type));
+    }
+  }
+
+  if (typeof type === 'string') {
+    return describeBuiltInComponentFrame(type);
+  }
+
+  switch (type) {
+    case exports.Suspense:
+      return describeBuiltInComponentFrame('Suspense');
+
+    case REACT_SUSPENSE_LIST_TYPE:
+      return describeBuiltInComponentFrame('SuspenseList');
+  }
+
+  if (typeof type === 'object') {
+    switch (type.$$typeof) {
+      case REACT_FORWARD_REF_TYPE:
+        return describeFunctionComponentFrame(type.render);
+
+      case REACT_MEMO_TYPE:
+        // Memo may contain any component type so we recursively resolve it.
+        return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);
+
+      case REACT_BLOCK_TYPE:
+        return describeFunctionComponentFrame(type._render);
+
+      case REACT_LAZY_TYPE:
+        {
+          var lazyComponent = type;
+          var payload = lazyComponent._payload;
+          var init = lazyComponent._init;
+
+          try {
+            // Lazy may contain any component type so we recursively resolve it.
+            return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);
+          } catch (x) {}
+        }
+    }
+  }
+
+  return '';
+}
+
+var loggedTypeFailures = {};
+var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
+
+function setCurrentlyValidatingElement(element) {
+  {
+    if (element) {
+      var owner = element._owner;
+      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
+      ReactDebugCurrentFrame$1.setExtraStackFrame(stack);
+    } else {
+      ReactDebugCurrentFrame$1.setExtraStackFrame(null);
+    }
+  }
+}
+
+function checkPropTypes(typeSpecs, values, location, componentName, element) {
+  {
+    // $FlowFixMe This is okay but Flow doesn't know it.
+    var has = Function.call.bind(Object.prototype.hasOwnProperty);
+
+    for (var typeSpecName in typeSpecs) {
+      if (has(typeSpecs, typeSpecName)) {
+        var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
+        // fail the render phase where it didn't fail before. So we log it.
+        // After these have been cleaned up, we'll let them throw.
+
+        try {
+          // This is intentionally an invariant that gets caught. It's the same
+          // behavior as without this statement except with a better message.
+          if (typeof typeSpecs[typeSpecName] !== 'function') {
+            var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
+            err.name = 'Invariant Violation';
+            throw err;
+          }
+
+          error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
+        } catch (ex) {
+          error$1 = ex;
+        }
+
+        if (error$1 && !(error$1 instanceof Error)) {
+          setCurrentlyValidatingElement(element);
+
+          error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
+
+          setCurrentlyValidatingElement(null);
+        }
+
+        if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
+          // Only monitor this failure once because there tends to be a lot of the
+          // same error.
+          loggedTypeFailures[error$1.message] = true;
+          setCurrentlyValidatingElement(element);
+
+          error('Failed %s type: %s', location, error$1.message);
+
+          setCurrentlyValidatingElement(null);
+        }
+      }
+    }
+  }
+}
+
+function setCurrentlyValidatingElement$1(element) {
+  {
+    if (element) {
+      var owner = element._owner;
+      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
+      setExtraStackFrame(stack);
+    } else {
+      setExtraStackFrame(null);
+    }
+  }
+}
+
+var propTypesMisspellWarningShown;
+
+{
+  propTypesMisspellWarningShown = false;
+}
+
+function getDeclarationErrorAddendum() {
+  if (ReactCurrentOwner.current) {
+    var name = getComponentName(ReactCurrentOwner.current.type);
+
+    if (name) {
+      return '\n\nCheck the render method of `' + name + '`.';
+    }
+  }
+
+  return '';
+}
+
+function getSourceInfoErrorAddendum(source) {
+  if (source !== undefined) {
+    var fileName = source.fileName.replace(/^.*[\\\/]/, '');
+    var lineNumber = source.lineNumber;
+    return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
+  }
+
+  return '';
+}
+
+function getSourceInfoErrorAddendumForProps(elementProps) {
+  if (elementProps !== null && elementProps !== undefined) {
+    return getSourceInfoErrorAddendum(elementProps.__source);
+  }
+
+  return '';
+}
+/**
+ * Warn if there's no key explicitly set on dynamic arrays of children or
+ * object keys are not valid. This allows us to keep track of children between
+ * updates.
+ */
+
+
+var ownerHasKeyUseWarning = {};
+
+function getCurrentComponentErrorInfo(parentType) {
+  var info = getDeclarationErrorAddendum();
+
+  if (!info) {
+    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
+
+    if (parentName) {
+      info = "\n\nCheck the top-level render call using <" + parentName + ">.";
+    }
+  }
+
+  return info;
+}
+/**
+ * Warn if the element doesn't have an explicit key assigned to it.
+ * This element is in an array. The array could grow and shrink or be
+ * reordered. All children that haven't already been validated are required to
+ * have a "key" property assigned to it. Error statuses are cached so a warning
+ * will only be shown once.
+ *
+ * @internal
+ * @param {ReactElement} element Element that requires a key.
+ * @param {*} parentType element's parent's type.
+ */
+
+
+function validateExplicitKey(element, parentType) {
+  if (!element._store || element._store.validated || element.key != null) {
+    return;
+  }
+
+  element._store.validated = true;
+  var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
+
+  if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
+    return;
+  }
+
+  ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
+  // property, it may be the creator of the child that's responsible for
+  // assigning it a key.
+
+  var childOwner = '';
+
+  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {
+    // Give the component that originally created this child.
+    childOwner = " It was passed a child from " + getComponentName(element._owner.type) + ".";
+  }
+
+  {
+    setCurrentlyValidatingElement$1(element);
+
+    error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
+
+    setCurrentlyValidatingElement$1(null);
+  }
+}
+/**
+ * Ensure that every element either is passed in a static location, in an
+ * array with an explicit keys property defined, or in an object literal
+ * with valid key property.
+ *
+ * @internal
+ * @param {ReactNode} node Statically passed child of any type.
+ * @param {*} parentType node's parent's type.
+ */
+
+
+function validateChildKeys(node, parentType) {
+  if (typeof node !== 'object') {
+    return;
+  }
+
+  if (Array.isArray(node)) {
+    for (var i = 0; i < node.length; i++) {
+      var child = node[i];
+
+      if (isValidElement(child)) {
+        validateExplicitKey(child, parentType);
+      }
+    }
+  } else if (isValidElement(node)) {
+    // This element was passed in a valid location.
+    if (node._store) {
+      node._store.validated = true;
+    }
+  } else if (node) {
+    var iteratorFn = getIteratorFn(node);
+
+    if (typeof iteratorFn === 'function') {
+      // Entry iterators used to provide implicit keys,
+      // but now we print a separate warning for them later.
+      if (iteratorFn !== node.entries) {
+        var iterator = iteratorFn.call(node);
+        var step;
+
+        while (!(step = iterator.next()).done) {
+          if (isValidElement(step.value)) {
+            validateExplicitKey(step.value, parentType);
+          }
+        }
+      }
+    }
+  }
+}
+/**
+ * Given an element, validate that its props follow the propTypes definition,
+ * provided by the type.
+ *
+ * @param {ReactElement} element
+ */
+
+
+function validatePropTypes(element) {
+  {
+    var type = element.type;
+
+    if (type === null || type === undefined || typeof type === 'string') {
+      return;
+    }
+
+    var propTypes;
+
+    if (typeof type === 'function') {
+      propTypes = type.propTypes;
+    } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
+    // Inner props are checked in the reconciler.
+    type.$$typeof === REACT_MEMO_TYPE)) {
+      propTypes = type.propTypes;
+    } else {
+      return;
+    }
+
+    if (propTypes) {
+      // Intentionally inside to avoid triggering lazy initializers:
+      var name = getComponentName(type);
+      checkPropTypes(propTypes, element.props, 'prop', name, element);
+    } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
+      propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
+
+      var _name = getComponentName(type);
+
+      error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
+    }
+
+    if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
+      error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
+    }
+  }
+}
+/**
+ * Given a fragment, validate that it can only be provided with fragment props
+ * @param {ReactElement} fragment
+ */
+
+
+function validateFragmentProps(fragment) {
+  {
+    var keys = Object.keys(fragment.props);
+
+    for (var i = 0; i < keys.length; i++) {
+      var key = keys[i];
+
+      if (key !== 'children' && key !== 'key') {
+        setCurrentlyValidatingElement$1(fragment);
+
+        error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
+
+        setCurrentlyValidatingElement$1(null);
+        break;
+      }
+    }
+
+    if (fragment.ref !== null) {
+      setCurrentlyValidatingElement$1(fragment);
+
+      error('Invalid attribute `ref` supplied to `React.Fragment`.');
+
+      setCurrentlyValidatingElement$1(null);
+    }
+  }
+}
+function createElementWithValidation(type, props, children) {
+  var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
+  // succeed and there will likely be errors in render.
+
+  if (!validType) {
+    var info = '';
+
+    if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
+      info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
+    }
+
+    var sourceInfo = getSourceInfoErrorAddendumForProps(props);
+
+    if (sourceInfo) {
+      info += sourceInfo;
+    } else {
+      info += getDeclarationErrorAddendum();
+    }
+
+    var typeString;
+
+    if (type === null) {
+      typeString = 'null';
+    } else if (Array.isArray(type)) {
+      typeString = 'array';
+    } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
+      typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
+      info = ' Did you accidentally export a JSX literal instead of a component?';
+    } else {
+      typeString = typeof type;
+    }
+
+    {
+      error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
+    }
+  }
+
+  var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.
+  // TODO: Drop this when these are no longer allowed as the type argument.
+
+  if (element == null) {
+    return element;
+  } // Skip key warning if the type isn't valid since our key validation logic
+  // doesn't expect a non-string/function type and can throw confusing errors.
+  // We don't want exception behavior to differ between dev and prod.
+  // (Rendering will throw with a helpful message and as soon as the type is
+  // fixed, the key warnings will appear.)
+
+
+  if (validType) {
+    for (var i = 2; i < arguments.length; i++) {
+      validateChildKeys(arguments[i], type);
+    }
+  }
+
+  if (type === exports.Fragment) {
+    validateFragmentProps(element);
+  } else {
+    validatePropTypes(element);
+  }
+
+  return element;
+}
+var didWarnAboutDeprecatedCreateFactory = false;
+function createFactoryWithValidation(type) {
+  var validatedFactory = createElementWithValidation.bind(null, type);
+  validatedFactory.type = type;
+
+  {
+    if (!didWarnAboutDeprecatedCreateFactory) {
+      didWarnAboutDeprecatedCreateFactory = true;
+
+      warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');
+    } // Legacy hook: remove it
+
+
+    Object.defineProperty(validatedFactory, 'type', {
+      enumerable: false,
+      get: function () {
+        warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');
+
+        Object.defineProperty(this, 'type', {
+          value: type
+        });
+        return type;
+      }
+    });
+  }
+
+  return validatedFactory;
+}
+function cloneElementWithValidation(element, props, children) {
+  var newElement = cloneElement.apply(this, arguments);
+
+  for (var i = 2; i < arguments.length; i++) {
+    validateChildKeys(arguments[i], newElement.type);
+  }
+
+  validatePropTypes(newElement);
+  return newElement;
+}
+
+{
+
+  try {
+    var frozenObject = Object.freeze({});
+    /* eslint-disable no-new */
+
+    new Map([[frozenObject, null]]);
+    new Set([frozenObject]);
+    /* eslint-enable no-new */
+  } catch (e) {
+  }
+}
+
+var createElement$1 =  createElementWithValidation ;
+var cloneElement$1 =  cloneElementWithValidation ;
+var createFactory =  createFactoryWithValidation ;
+var Children = {
+  map: mapChildren,
+  forEach: forEachChildren,
+  count: countChildren,
+  toArray: toArray,
+  only: onlyChild
+};
+
+exports.Children = Children;
+exports.Component = Component;
+exports.PureComponent = PureComponent;
+exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;
+exports.cloneElement = cloneElement$1;
+exports.createContext = createContext;
+exports.createElement = createElement$1;
+exports.createFactory = createFactory;
+exports.createRef = createRef;
+exports.forwardRef = forwardRef;
+exports.isValidElement = isValidElement;
+exports.lazy = lazy;
+exports.memo = memo;
+exports.useCallback = useCallback;
+exports.useContext = useContext;
+exports.useDebugValue = useDebugValue;
+exports.useEffect = useEffect;
+exports.useImperativeHandle = useImperativeHandle;
+exports.useLayoutEffect = useLayoutEffect;
+exports.useMemo = useMemo;
+exports.useReducer = useReducer;
+exports.useRef = useRef;
+exports.useState = useState;
+exports.version = ReactVersion;
+  })();
+}
+
+
+/***/ }),
+
+/***/ "./node_modules/react/index.js":
+/*!*************************************!*\
+  !*** ./node_modules/react/index.js ***!
+  \*************************************/
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+if (false) {} else {
+  module.exports = __webpack_require__(/*! ./cjs/react.development.js */ "./node_modules/react/cjs/react.development.js");
+}
+
+
+/***/ }),
+
+/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js":
+/*!*******************************************************************!*\
+  !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
+  \*******************************************************************/
+/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */   "default": function() { return /* binding */ _defineProperty; }
+/* harmony export */ });
+function _defineProperty(obj, key, value) {
+  if (key in obj) {
+    Object.defineProperty(obj, key, {
+      value: value,
+      enumerable: true,
+      configurable: true,
+      writable: true
+    });
+  } else {
+    obj[key] = value;
+  }
+  return obj;
+}
+
+/***/ })
+
+/******/ 	});
+/************************************************************************/
+/******/ 	// The module cache
+/******/ 	var __webpack_module_cache__ = {};
+/******/ 	
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/ 		// Check if module is in cache
+/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
+/******/ 		if (cachedModule !== undefined) {
+/******/ 			return cachedModule.exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = __webpack_module_cache__[moduleId] = {
+/******/ 			// no module.id needed
+/******/ 			// no module.loaded needed
+/******/ 			exports: {}
+/******/ 		};
+/******/ 	
+/******/ 		// Execute the module function
+/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/ 	
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/ 	
+/************************************************************************/
+/******/ 	/* webpack/runtime/compat get default export */
+/******/ 	!function() {
+/******/ 		// getDefaultExport function for compatibility with non-harmony modules
+/******/ 		__webpack_require__.n = function(module) {
+/******/ 			var getter = module && module.__esModule ?
+/******/ 				function() { return module['default']; } :
+/******/ 				function() { return module; };
+/******/ 			__webpack_require__.d(getter, { a: getter });
+/******/ 			return getter;
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/define property getters */
+/******/ 	!function() {
+/******/ 		// define getter functions for harmony exports
+/******/ 		__webpack_require__.d = function(exports, definition) {
+/******/ 			for(var key in definition) {
+/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ 				}
+/******/ 			}
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
+/******/ 	!function() {
+/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/make namespace object */
+/******/ 	!function() {
+/******/ 		// define __esModule on exports
+/******/ 		__webpack_require__.r = function(exports) {
+/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 			}
+/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be in strict mode.
+!function() {
+"use strict";
+/*!***********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/acf-pro-blocks-legacy.js ***!
+  \***********************************************************************************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _acf_jsx_names_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_acf-jsx-names.js */ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-jsx-names.js");
+/* harmony import */ var _acf_jsx_names_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_acf_jsx_names_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _acf_blocks_legacy_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_acf-blocks-legacy.js */ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-blocks-legacy.js");
+
+
+}();
+/******/ })()
+;
+//# sourceMappingURL=acf-pro-blocks-legacy.js.map

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/pro/acf-pro-blocks-legacy.js.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/pro/acf-pro-blocks-legacy.min.js


+ 4846 - 0
inc/acf/assets/build/js/pro/acf-pro-blocks.js

@@ -0,0 +1,4846 @@
+/******/ (function() { // webpackBootstrap
+/******/ 	var __webpack_modules__ = ({
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-blocks.js":
+/*!*************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-blocks.js ***!
+  \*************************************************************************/
+/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");
+/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "./node_modules/react/index.js");
+
+
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
+const md5 = __webpack_require__(/*! md5 */ "./node_modules/md5/md5.js");
+(($, undefined) => {
+  // Dependencies.
+  const {
+    BlockControls,
+    InspectorControls,
+    InnerBlocks,
+    useBlockProps,
+    AlignmentToolbar,
+    BlockVerticalAlignmentToolbar
+  } = wp.blockEditor;
+  const {
+    ToolbarGroup,
+    ToolbarButton,
+    Placeholder,
+    Spinner
+  } = wp.components;
+  const {
+    Fragment
+  } = wp.element;
+  const {
+    Component
+  } = React;
+  const {
+    withSelect
+  } = wp.data;
+  const {
+    createHigherOrderComponent
+  } = wp.compose;
+
+  // Potentially experimental dependencies.
+  const BlockAlignmentMatrixToolbar = wp.blockEditor.__experimentalBlockAlignmentMatrixToolbar || wp.blockEditor.BlockAlignmentMatrixToolbar;
+  // Gutenberg v10.x begins transition from Toolbar components to Control components.
+  const BlockAlignmentMatrixControl = wp.blockEditor.__experimentalBlockAlignmentMatrixControl || wp.blockEditor.BlockAlignmentMatrixControl;
+  const BlockFullHeightAlignmentControl = wp.blockEditor.__experimentalBlockFullHeightAligmentControl || wp.blockEditor.__experimentalBlockFullHeightAlignmentControl || wp.blockEditor.BlockFullHeightAlignmentControl;
+  const useInnerBlocksProps = wp.blockEditor.__experimentalUseInnerBlocksProps || wp.blockEditor.useInnerBlocksProps;
+
+  /**
+   * Storage for registered block types.
+   *
+   * @since 5.8.0
+   * @var object
+   */
+  const blockTypes = {};
+
+  /**
+   * Returns a block type for the given name.
+   *
+   * @date	20/2/19
+   * @since	5.8.0
+   *
+   * @param	string name The block name.
+   * @return	(object|false)
+   */
+  function getBlockType(name) {
+    return blockTypes[name] || false;
+  }
+
+  /**
+   * Returns a block version for a given block name
+   *
+   * @date 8/6/22
+   * @since 6.0
+   *
+   * @param string name The block name
+   * @return int
+   */
+  function getBlockVersion(name) {
+    const blockType = getBlockType(name);
+    return blockType.acf_block_version || 1;
+  }
+
+  /**
+   * Returns true if a block (identified by client ID) is nested in a query loop block.
+   *
+   * @date 17/1/22
+   * @since 5.12
+   *
+   * @param {string} clientId A block client ID
+   * @return boolean
+   */
+  function isBlockInQueryLoop(clientId) {
+    const parents = wp.data.select('core/block-editor').getBlockParents(clientId);
+    const parentsData = wp.data.select('core/block-editor').getBlocksByClientId(parents);
+    return parentsData.filter(block => block.name === 'core/query').length;
+  }
+
+  /**
+   * Returns true if we're currently inside the WP 5.9+ site editor.
+   *
+   * @date 08/02/22
+   * @since 5.12
+   *
+   * @return boolean
+   */
+  function isSiteEditor() {
+    return typeof pagenow === 'string' && pagenow === 'site-editor';
+  }
+
+  /**
+   * Returns true if the block editor is currently showing the desktop device type preview.
+   *
+   * This function will always return true in the site editor as it uses the
+   * edit-post store rather than the edit-site store.
+   *
+   * @date 15/02/22
+   * @since 5.12
+   *
+   * @return boolean
+   */
+  function isDesktopPreviewDeviceType() {
+    const editPostStore = select('core/edit-post');
+
+    // Return true if the edit post store isn't available (such as in the widget editor)
+    if (!editPostStore) return true;
+
+    // Check if function exists (experimental or not) and return true if it's Desktop, or doesn't exist.
+    if (editPostStore.__experimentalGetPreviewDeviceType) {
+      return 'Desktop' === editPostStore.__experimentalGetPreviewDeviceType();
+    } else if (editPostStore.getPreviewDeviceType) {
+      return 'Desktop' === editPostStore.getPreviewDeviceType();
+    } else {
+      return true;
+    }
+  }
+
+  /**
+   * Returns true if the block editor is currently in template edit mode.
+   *
+   * @date 16/02/22
+   * @since 5.12
+   *
+   * @return boolean
+   */
+  function isEditingTemplate() {
+    const editPostStore = select('core/edit-post');
+
+    // Return false if the edit post store isn't available (such as in the widget editor)
+    if (!editPostStore) return false;
+
+    // Return false if the function doesn't exist
+    if (!editPostStore.isEditingTemplate) return false;
+    return editPostStore.isEditingTemplate();
+  }
+
+  /**
+   * Returns true if we're currently inside an iFramed non-desktop device preview type (WP5.9+)
+   *
+   * @date 15/02/22
+   * @since 5.12
+   *
+   * @return boolean
+   */
+  function isiFramedMobileDevicePreview() {
+    return $('iframe[name=editor-canvas]').length && !isDesktopPreviewDeviceType();
+  }
+
+  /**
+   * Registers a block type.
+   *
+   * @date	19/2/19
+   * @since	5.8.0
+   *
+   * @param	object blockType The block type settings localized from PHP.
+   * @return	object The result from wp.blocks.registerBlockType().
+   */
+  function registerBlockType(blockType) {
+    // Bail early if is excluded post_type.
+    const allowedTypes = blockType.post_types || [];
+    if (allowedTypes.length) {
+      // Always allow block to appear on "Edit reusable Block" screen.
+      allowedTypes.push('wp_block');
+
+      // Check post type.
+      const postType = acf.get('postType');
+      if (!allowedTypes.includes(postType)) {
+        return false;
+      }
+    }
+
+    // Handle svg HTML.
+    if (typeof blockType.icon === 'string' && blockType.icon.substr(0, 4) === '<svg') {
+      const iconHTML = blockType.icon;
+      blockType.icon = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Div, null, iconHTML);
+    }
+
+    // Remove icon if empty to allow for default "block".
+    // Avoids JS error preventing block from being registered.
+    if (!blockType.icon) {
+      delete blockType.icon;
+    }
+
+    // Check category exists and fallback to "common".
+    const category = wp.blocks.getCategories().filter(_ref => {
+      let {
+        slug
+      } = _ref;
+      return slug === blockType.category;
+    }).pop();
+    if (!category) {
+      //console.warn( `The block "${blockType.name}" is registered with an unknown category "${blockType.category}".` );
+      blockType.category = 'common';
+    }
+
+    // Merge in block settings before local additions.
+    blockType = acf.parseArgs(blockType, {
+      title: '',
+      name: '',
+      category: '',
+      api_version: 2,
+      acf_block_version: 1
+    });
+
+    // Remove all empty attribute defaults from PHP values to allow serialisation.
+    // https://github.com/WordPress/gutenberg/issues/7342
+    for (const key in blockType.attributes) {
+      if (blockType.attributes[key].default.length === 0) {
+        delete blockType.attributes[key].default;
+      }
+    }
+
+    // Apply anchor supports to avoid block editor default writing to ID.
+    if (blockType.supports.anchor) {
+      blockType.attributes.anchor = {
+        type: 'string'
+      };
+    }
+
+    // Append edit and save functions.
+    let ThisBlockEdit = BlockEdit;
+    let ThisBlockSave = BlockSave;
+
+    // Apply alignText functionality.
+    if (blockType.supports.alignText || blockType.supports.align_text) {
+      blockType.attributes = addBackCompatAttribute(blockType.attributes, 'align_text', 'string');
+      ThisBlockEdit = withAlignTextComponent(ThisBlockEdit, blockType);
+    }
+
+    // Apply alignContent functionality.
+    if (blockType.supports.alignContent || blockType.supports.align_content) {
+      blockType.attributes = addBackCompatAttribute(blockType.attributes, 'align_content', 'string');
+      ThisBlockEdit = withAlignContentComponent(ThisBlockEdit, blockType);
+    }
+
+    // Apply fullHeight functionality.
+    if (blockType.supports.fullHeight || blockType.supports.full_height) {
+      blockType.attributes = addBackCompatAttribute(blockType.attributes, 'full_height', 'boolean');
+      ThisBlockEdit = withFullHeightComponent(ThisBlockEdit, blockType.blockType);
+    }
+
+    // Set edit and save functions.
+    blockType.edit = props => (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(ThisBlockEdit, props);
+    blockType.save = () => (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(ThisBlockSave, null);
+
+    // Add to storage.
+    blockTypes[blockType.name] = blockType;
+
+    // Register with WP.
+    const result = wp.blocks.registerBlockType(blockType.name, blockType);
+
+    // Fix bug in 'core/anchor/attribute' filter overwriting attribute.
+    // Required for < WP5.9
+    // See https://github.com/WordPress/gutenberg/issues/15240
+    if (result.attributes.anchor) {
+      result.attributes.anchor = {
+        type: 'string'
+      };
+    }
+
+    // Return result.
+    return result;
+  }
+
+  /**
+   * Returns the wp.data.select() response with backwards compatibility.
+   *
+   * @date	17/06/2020
+   * @since	5.9.0
+   *
+   * @param	string selector The selector name.
+   * @return	mixed
+   */
+  function select(selector) {
+    if (selector === 'core/block-editor') {
+      return wp.data.select('core/block-editor') || wp.data.select('core/editor');
+    }
+    return wp.data.select(selector);
+  }
+
+  /**
+   * Returns the wp.data.dispatch() response with backwards compatibility.
+   *
+   * @date	17/06/2020
+   * @since	5.9.0
+   *
+   * @param	string selector The selector name.
+   * @return	mixed
+   */
+  function dispatch(selector) {
+    return wp.data.dispatch(selector);
+  }
+
+  /**
+   * Returns an array of all blocks for the given args.
+   *
+   * @date	27/2/19
+   * @since	5.7.13
+   *
+   * @param	{object} args An object of key=>value pairs used to filter results.
+   * @return	array.
+   */
+  function getBlocks(args) {
+    let blocks = [];
+
+    // Local function to recurse through all child blocks and add to the blocks array.
+    const recurseBlocks = block => {
+      blocks.push(block);
+      select('core/block-editor').getBlocks(block.clientId).forEach(recurseBlocks);
+    };
+
+    // Trigger initial recursion for parent level blocks.
+    select('core/block-editor').getBlocks().forEach(recurseBlocks);
+
+    // Loop over args and filter.
+    for (const k in args) {
+      blocks = blocks.filter(_ref2 => {
+        let {
+          attributes
+        } = _ref2;
+        return attributes[k] === args[k];
+      });
+    }
+
+    // Return results.
+    return blocks;
+  }
+
+  /**
+   * Storage for the AJAX queue.
+   *
+   * @const {array}
+   */
+  const ajaxQueue = {};
+
+  /**
+   * Storage for cached AJAX requests for block content.
+   *
+   * @since 5.12
+   * @const {array}
+   */
+  const fetchCache = {};
+
+  /**
+   * Fetches a JSON result from the AJAX API.
+   *
+   * @date	28/2/19
+   * @since	5.7.13
+   *
+   * @param	object block The block props.
+   * @query	object The query args used in AJAX callback.
+   * @return	object The AJAX promise.
+   */
+  function fetchBlock(args) {
+    const {
+      attributes = {},
+      context = {},
+      query = {},
+      clientId = null,
+      delay = 0
+    } = args;
+
+    // Build a unique queue ID from block data, including the clientId for edit forms.
+    const queueId = md5(JSON.stringify(_objectSpread(_objectSpread(_objectSpread({}, attributes), context), query)));
+    const data = ajaxQueue[queueId] || {
+      query: {},
+      timeout: false,
+      promise: $.Deferred(),
+      started: false
+    };
+
+    // Append query args to storage.
+    data.query = _objectSpread(_objectSpread({}, data.query), query);
+    if (data.started) return data.promise;
+
+    // Set fresh timeout.
+    clearTimeout(data.timeout);
+    data.timeout = setTimeout(() => {
+      data.started = true;
+      if (fetchCache[queueId]) {
+        ajaxQueue[queueId] = null;
+        data.promise.resolve.apply(fetchCache[queueId][0], fetchCache[queueId][1]);
+      } else {
+        $.ajax({
+          url: acf.get('ajaxurl'),
+          dataType: 'json',
+          type: 'post',
+          cache: false,
+          data: acf.prepareForAjax({
+            action: 'acf/ajax/fetch-block',
+            block: JSON.stringify(attributes),
+            clientId: clientId,
+            context: JSON.stringify(context),
+            query: data.query
+          })
+        }).always(() => {
+          // Clean up queue after AJAX request is complete.
+          ajaxQueue[queueId] = null;
+        }).done(function () {
+          fetchCache[queueId] = [this, arguments];
+          data.promise.resolve.apply(this, arguments);
+        }).fail(function () {
+          data.promise.reject.apply(this, arguments);
+        });
+      }
+    }, delay);
+
+    // Update storage.
+    ajaxQueue[queueId] = data;
+
+    // Return promise.
+    return data.promise;
+  }
+
+  /**
+   * Returns true if both object are the same.
+   *
+   * @date	19/05/2020
+   * @since	5.9.0
+   *
+   * @param	object obj1
+   * @param	object obj2
+   * @return	bool
+   */
+  function compareObjects(obj1, obj2) {
+    return JSON.stringify(obj1) === JSON.stringify(obj2);
+  }
+
+  /**
+   * Converts HTML into a React element.
+   *
+   * @date	19/05/2020
+   * @since	5.9.0
+   *
+   * @param	string html The HTML to convert.
+   * @param	int acfBlockVersion The ACF block version number.
+   * @return	object Result of React.createElement().
+   */
+  acf.parseJSX = (html, acfBlockVersion) => {
+    // Apply a temporary wrapper for the jQuery parse to prevent text nodes triggering errors.
+    html = '<div>' + html + '</div>';
+    // Correctly balance InnerBlocks tags for jQuery's initial parse.
+    html = html.replace(/<InnerBlocks([^>]+)?\/>/, '<InnerBlocks$1></InnerBlocks>');
+    return parseNode($(html)[0], acfBlockVersion, 0).props.children;
+  };
+
+  /**
+   * Converts a DOM node into a React element.
+   *
+   * @date	19/05/2020
+   * @since	5.9.0
+   *
+   * @param	DOM node The DOM node.
+   * @param	int acfBlockVersion The ACF block version number.
+   * @param	int level The recursion level.
+   * @return	object Result of React.createElement().
+   */
+  function parseNode(node, acfBlockVersion) {
+    let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
+    // Get node name.
+    const nodeName = parseNodeName(node.nodeName.toLowerCase(), acfBlockVersion);
+    if (!nodeName) {
+      return null;
+    }
+
+    // Get node attributes in React friendly format.
+    const nodeAttrs = {};
+    if (level === 1 && nodeName !== 'ACFInnerBlocks') {
+      // Top level (after stripping away the container div), create a ref for passing through to ACF's JS API.
+      nodeAttrs.ref = React.createRef();
+    }
+    acf.arrayArgs(node.attributes).map(parseNodeAttr).forEach(_ref3 => {
+      let {
+        name,
+        value
+      } = _ref3;
+      nodeAttrs[name] = value;
+    });
+    if ('ACFInnerBlocks' === nodeName) {
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(ACFInnerBlocks, nodeAttrs);
+    }
+
+    // Define args for React.createElement().
+    const args = [nodeName, nodeAttrs];
+    acf.arrayArgs(node.childNodes).forEach(child => {
+      if (child instanceof Text) {
+        const text = child.textContent;
+        if (text) {
+          args.push(text);
+        }
+      } else {
+        args.push(parseNode(child, acfBlockVersion, level + 1));
+      }
+    });
+
+    // Return element.
+    return React.createElement.apply(this, args);
+  }
+
+  /**
+   * Converts a node or attribute name into it's JSX compliant name
+   *
+   * @date     05/07/2021
+   * @since    5.9.8
+   *
+   * @param    string name The node or attribute name.
+   * @return  string
+   */
+  function getJSXName(name) {
+    const replacement = acf.isget(acf, 'jsxNameReplacements', name);
+    if (replacement) return replacement;
+    return name;
+  }
+
+  /**
+   * Converts the given name into a React friendly name or component.
+   *
+   * @date	19/05/2020
+   * @since	5.9.0
+   *
+   * @param	string name The node name in lowercase.
+   * @param	int acfBlockVersion The ACF block version number.
+   * @return	mixed
+   */
+  function parseNodeName(name, acfBlockVersion) {
+    switch (name) {
+      case 'innerblocks':
+        if (acfBlockVersion < 2) {
+          return InnerBlocks;
+        }
+        return 'ACFInnerBlocks';
+      case 'script':
+        return Script;
+      case '#comment':
+        return null;
+      default:
+        // Replace names for JSX counterparts.
+        name = getJSXName(name);
+    }
+    return name;
+  }
+
+  /**
+   * Functional component for ACFInnerBlocks.
+   *
+   * @since 6.0.0
+   *
+   * @param obj props element properties.
+   * @return DOM element
+   */
+  function ACFInnerBlocks(props) {
+    const {
+      className = 'acf-innerblocks-container'
+    } = props;
+    const innerBlockProps = useInnerBlocksProps({
+      className: className
+    }, props);
+    return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", innerBlockProps, innerBlockProps.children);
+  }
+
+  /**
+   * Converts the given attribute into a React friendly name and value object.
+   *
+   * @date	19/05/2020
+   * @since	5.9.0
+   *
+   * @param	obj nodeAttr The node attribute.
+   * @return	obj
+   */
+  function parseNodeAttr(nodeAttr) {
+    let name = nodeAttr.name;
+    let value = nodeAttr.value;
+    switch (name) {
+      // Class.
+      case 'class':
+        name = 'className';
+        break;
+
+      // Style.
+      case 'style':
+        const css = {};
+        value.split(';').forEach(s => {
+          const pos = s.indexOf(':');
+          if (pos > 0) {
+            let ruleName = s.substr(0, pos).trim();
+            const ruleValue = s.substr(pos + 1).trim();
+
+            // Rename core properties, but not CSS variables.
+            if (ruleName.charAt(0) !== '-') {
+              ruleName = acf.strCamelCase(ruleName);
+            }
+            css[ruleName] = ruleValue;
+          }
+        });
+        value = css;
+        break;
+
+      // Default.
+      default:
+        // No formatting needed for "data-x" attributes.
+        if (name.indexOf('data-') === 0) {
+          break;
+        }
+
+        // Replace names for JSX counterparts.
+        name = getJSXName(name);
+
+        // Convert JSON values.
+        const c1 = value.charAt(0);
+        if (c1 === '[' || c1 === '{') {
+          value = JSON.parse(value);
+        }
+
+        // Convert bool values.
+        if (value === 'true' || value === 'false') {
+          value = value === 'true';
+        }
+        break;
+    }
+    return {
+      name,
+      value
+    };
+  }
+
+  /**
+   * Higher Order Component used to set default block attribute values.
+   *
+   * By modifying block attributes directly, instead of defining defaults in registerBlockType(),
+   * WordPress will include them always within the saved block serialized JSON.
+   *
+   * @date	31/07/2020
+   * @since	5.9.0
+   *
+   * @param	Component BlockListBlock The BlockListBlock Component.
+   * @return	Component
+   */
+  const withDefaultAttributes = createHigherOrderComponent(BlockListBlock => class WrappedBlockEdit extends Component {
+    constructor(props) {
+      super(props);
+
+      // Extract vars.
+      const {
+        name,
+        attributes
+      } = this.props;
+
+      // Only run on ACF Blocks.
+      const blockType = getBlockType(name);
+      if (!blockType) {
+        return;
+      }
+
+      // Check and remove any empty string attributes to match PHP behaviour.
+      Object.keys(attributes).forEach(key => {
+        if (attributes[key] === '') {
+          delete attributes[key];
+        }
+      });
+
+      // Backward compatibility attribute replacement.
+      const upgrades = {
+        full_height: 'fullHeight',
+        align_content: 'alignContent',
+        align_text: 'alignText'
+      };
+      Object.keys(upgrades).forEach(key => {
+        if (attributes[key] !== undefined) {
+          attributes[upgrades[key]] = attributes[key];
+        } else if (attributes[upgrades[key]] === undefined) {
+          //Check for a default
+          if (blockType[key] !== undefined) {
+            attributes[upgrades[key]] = blockType[key];
+          }
+        }
+        delete blockType[key];
+        delete attributes[key];
+      });
+
+      // Set default attributes for those undefined.
+      for (let attribute in blockType.attributes) {
+        if (attributes[attribute] === undefined && blockType[attribute] !== undefined) {
+          attributes[attribute] = blockType[attribute];
+        }
+      }
+    }
+    render() {
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockListBlock, this.props);
+    }
+  }, 'withDefaultAttributes');
+  wp.hooks.addFilter('editor.BlockListBlock', 'acf/with-default-attributes', withDefaultAttributes);
+
+  /**
+   * The BlockSave functional component.
+   *
+   * @date	08/07/2020
+   * @since	5.9.0
+   */
+  function BlockSave() {
+    return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(InnerBlocks.Content, null);
+  }
+
+  /**
+   * The BlockEdit component.
+   *
+   * @date	19/2/19
+   * @since	5.7.12
+   */
+  class BlockEdit extends Component {
+    constructor(props) {
+      super(props);
+      this.setup();
+    }
+    setup() {
+      const {
+        name,
+        attributes,
+        clientId
+      } = this.props;
+      const blockType = getBlockType(name);
+
+      // Restrict current mode.
+      function restrictMode(modes) {
+        if (!modes.includes(attributes.mode)) {
+          attributes.mode = modes[0];
+        }
+      }
+      if (isBlockInQueryLoop(clientId) || isSiteEditor() || isiFramedMobileDevicePreview() || isEditingTemplate()) {
+        restrictMode(['preview']);
+      } else {
+        switch (blockType.mode) {
+          case 'edit':
+            restrictMode(['edit', 'preview']);
+            break;
+          case 'preview':
+            restrictMode(['preview', 'edit']);
+            break;
+          default:
+            restrictMode(['auto']);
+            break;
+        }
+      }
+    }
+    render() {
+      const {
+        name,
+        attributes,
+        setAttributes,
+        clientId
+      } = this.props;
+      const blockType = getBlockType(name);
+      const forcePreview = isBlockInQueryLoop(clientId) || isSiteEditor() || isiFramedMobileDevicePreview() || isEditingTemplate();
+      let {
+        mode
+      } = attributes;
+      if (forcePreview) {
+        mode = 'preview';
+      }
+
+      // Show toggle only for edit/preview modes and for blocks not in a query loop/FSE.
+      let showToggle = blockType.supports.mode;
+      if (mode === 'auto' || forcePreview) {
+        showToggle = false;
+      }
+
+      // Configure toggle variables.
+      const toggleText = mode === 'preview' ? acf.__('Switch to Edit') : acf.__('Switch to Preview');
+      const toggleIcon = mode === 'preview' ? 'edit' : 'welcome-view-site';
+      function toggleMode() {
+        setAttributes({
+          mode: mode === 'preview' ? 'edit' : 'preview'
+        });
+      }
+
+      // Return template.
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockControls, null, showToggle && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(ToolbarGroup, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(ToolbarButton, {
+        className: "components-icon-button components-toolbar__control",
+        label: toggleText,
+        icon: toggleIcon,
+        onClick: toggleMode
+      }))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(InspectorControls, null, mode === 'preview' && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", {
+        className: "acf-block-component acf-block-panel"
+      }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockForm, this.props))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockBody, this.props));
+    }
+  }
+
+  /**
+   * The BlockBody functional component.
+   *
+   * @date	19/2/19
+   * @since	5.7.12
+   */
+  function _BlockBody(props) {
+    const {
+      attributes,
+      isSelected,
+      name
+    } = props;
+    const {
+      mode
+    } = attributes;
+    let showForm = true;
+    let additionalClasses = 'acf-block-component acf-block-body';
+    if (mode === 'auto' && !isSelected || mode === 'preview') {
+      additionalClasses += ' acf-block-preview';
+      showForm = false;
+    }
+    if (getBlockVersion(name) > 1) {
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", useBlockProps({
+        className: additionalClasses
+      }), showForm ? (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockForm, props) : (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockPreview, props));
+    } else {
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", useBlockProps(), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", {
+        className: "acf-block-component acf-block-body"
+      }, showForm ? (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockForm, props) : (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockPreview, props)));
+    }
+  }
+
+  // Append blockIndex to component props.
+  const BlockBody = withSelect((select, ownProps) => {
+    const {
+      clientId
+    } = ownProps;
+    // Use optional rootClientId to allow discoverability of child blocks.
+    const rootClientId = select('core/block-editor').getBlockRootClientId(clientId);
+    const index = select('core/block-editor').getBlockIndex(clientId, rootClientId);
+    return {
+      index
+    };
+  })(_BlockBody);
+
+  /**
+   * A react component to append HTMl.
+   *
+   * @date	19/2/19
+   * @since	5.7.12
+   *
+   * @param	string children The html to insert.
+   * @return	void
+   */
+  class Div extends Component {
+    render() {
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", {
+        dangerouslySetInnerHTML: {
+          __html: this.props.children
+        }
+      });
+    }
+  }
+
+  /**
+   * A react Component for inline scripts.
+   *
+   * This Component uses a combination of React references and jQuery to append the
+   * inline <script> HTML each time the component is rendered.
+   *
+   * @date	29/05/2020
+   * @since	5.9.0
+   *
+   * @param	type Var Description.
+   * @return	type Description.
+   */
+  class Script extends Component {
+    render() {
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", {
+        ref: el => this.el = el
+      });
+    }
+    setHTML(html) {
+      $(this.el).html(`<script>${html}</script>`);
+    }
+    componentDidUpdate() {
+      this.setHTML(this.props.children);
+    }
+    componentDidMount() {
+      this.setHTML(this.props.children);
+    }
+  }
+
+  // Data storage for DynamicHTML components.
+  const store = {};
+
+  /**
+   * DynamicHTML Class.
+   *
+   * A react componenet to load and insert dynamic HTML.
+   *
+   * @date	19/2/19
+   * @since	5.7.12
+   *
+   * @param	void
+   * @return	void
+   */
+  class DynamicHTML extends Component {
+    constructor(props) {
+      super(props);
+
+      // Bind callbacks.
+      this.setRef = this.setRef.bind(this);
+
+      // Define default props and call setup().
+      this.id = '';
+      this.el = false;
+      this.subscribed = true;
+      this.renderMethod = 'jQuery';
+      this.setup(props);
+
+      // Load state.
+      this.loadState();
+    }
+    setup(props) {
+      // Do nothing.
+    }
+    fetch() {
+      // Do nothing.
+    }
+    maybePreload(blockId, clientId, form) {
+      if (this.state.html === undefined && !isBlockInQueryLoop(this.props.clientId)) {
+        const preloadedBlocks = acf.get('preloadedBlocks');
+        const modeText = form ? 'form' : 'preview';
+        if (preloadedBlocks && preloadedBlocks[blockId]) {
+          // Ensure we only preload the correct block state (form or preview).
+          if (form && !preloadedBlocks[blockId].form || !form && preloadedBlocks[blockId].form) return false;
+
+          // Set HTML to the preloaded version.
+          return preloadedBlocks[blockId].html.replaceAll(blockId, clientId);
+        }
+      }
+      return false;
+    }
+    loadState() {
+      this.state = store[this.id] || {};
+    }
+    setState(state) {
+      store[this.id] = _objectSpread(_objectSpread({}, this.state), state);
+
+      // Update component state if subscribed.
+      // - Allows AJAX callback to update store without modifying state of an unmounted component.
+      if (this.subscribed) {
+        super.setState(state);
+      }
+    }
+    setHtml(html) {
+      html = html ? html.trim() : '';
+
+      // Bail early if html has not changed.
+      if (html === this.state.html) {
+        return;
+      }
+
+      // Update state.
+      const state = {
+        html
+      };
+      if (this.renderMethod === 'jsx') {
+        state.jsx = acf.parseJSX(html, getBlockVersion(this.props.name));
+
+        // Handle templates which don't contain any valid JSX parsable elements.
+        if (!state.jsx) {
+          console.warn('Your ACF block template contains no valid HTML elements. Appending a empty div to prevent React JS errors.');
+          state.html += '<div></div>';
+          state.jsx = acf.parseJSX(state.html, getBlockVersion(this.props.name));
+        }
+
+        // If we've got an object (as an array) find the first valid React ref.
+        if (Array.isArray(state.jsx)) {
+          let refElement = state.jsx.find(element => React.isValidElement(element));
+          state.ref = refElement.ref;
+        } else {
+          state.ref = state.jsx.ref;
+        }
+        state.$el = $(this.el);
+      } else {
+        state.$el = $(html);
+      }
+      this.setState(state);
+    }
+    setRef(el) {
+      this.el = el;
+    }
+    render() {
+      // Render JSX.
+      if (this.state.jsx) {
+        // If we're a v2+ block, use the jsx element itself as our ref.
+        if (getBlockVersion(this.props.name) > 1) {
+          this.setRef(this.state.jsx);
+          return this.state.jsx;
+        } else {
+          return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", {
+            ref: this.setRef
+          }, this.state.jsx);
+        }
+      }
+
+      // Return HTML.
+      return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)("div", {
+        ref: this.setRef
+      }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Placeholder, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Spinner, null)));
+    }
+    shouldComponentUpdate(_ref4, _ref5) {
+      let {
+        index
+      } = _ref4;
+      let {
+        html
+      } = _ref5;
+      if (index !== this.props.index) {
+        this.componentWillMove();
+      }
+      return html !== this.state.html;
+    }
+    display(context) {
+      // This method is called after setting new HTML and the Component render.
+      // The jQuery render method simply needs to move $el into place.
+      if (this.renderMethod === 'jQuery') {
+        const $el = this.state.$el;
+        const $prevParent = $el.parent();
+        const $thisParent = $(this.el);
+
+        // Move $el into place.
+        $thisParent.html($el);
+
+        // Special case for reusable blocks.
+        // Multiple instances of the same reusable block share the same block id.
+        // This causes all instances to share the same state (cool), which unfortunately
+        // pulls $el back and forth between the last rendered reusable block.
+        // This simple fix leaves a "clone" behind :)
+        if ($prevParent.length && $prevParent[0] !== $thisParent[0]) {
+          $prevParent.html($el.clone());
+        }
+      }
+
+      // Call context specific method.
+      switch (context) {
+        case 'append':
+          this.componentDidAppend();
+          break;
+        case 'remount':
+          this.componentDidRemount();
+          break;
+      }
+    }
+    componentDidMount() {
+      // Fetch on first load.
+      if (this.state.html === undefined) {
+        this.fetch();
+
+        // Or remount existing HTML.
+      } else {
+        this.display('remount');
+      }
+    }
+    componentDidUpdate(prevProps, prevState) {
+      // HTML has changed.
+      this.display('append');
+    }
+    componentDidAppend() {
+      acf.doAction('append', this.state.$el);
+    }
+    componentWillUnmount() {
+      acf.doAction('unmount', this.state.$el);
+
+      // Unsubscribe this component from state.
+      this.subscribed = false;
+    }
+    componentDidRemount() {
+      this.subscribed = true;
+
+      // Use setTimeout to avoid incorrect timing of events.
+      // React will unmount and mount components in DOM order.
+      // This means a new component can be mounted before an old one is unmounted.
+      // ACF shares $el across new/old components which is un-React-like.
+      // This timout ensures that unmounting occurs before remounting.
+      setTimeout(() => {
+        acf.doAction('remount', this.state.$el);
+      });
+    }
+    componentWillMove() {
+      acf.doAction('unmount', this.state.$el);
+      setTimeout(() => {
+        acf.doAction('remount', this.state.$el);
+      });
+    }
+  }
+
+  /**
+   * BlockForm Class.
+   *
+   * A react componenet to handle the block form.
+   *
+   * @date	19/2/19
+   * @since	5.7.12
+   *
+   * @param	string id the block id.
+   * @return	void
+   */
+  class BlockForm extends DynamicHTML {
+    setup(_ref6) {
+      let {
+        clientId
+      } = _ref6;
+      this.id = `BlockForm-${clientId}`;
+    }
+    fetch() {
+      // Extract props.
+      const {
+        attributes,
+        context,
+        clientId
+      } = this.props;
+      const hash = createBlockAttributesHash(attributes, context);
+
+      // Try preloaded data first.
+      const preloaded = this.maybePreload(hash, clientId, true);
+      if (preloaded) {
+        this.setHtml(preloaded);
+        return;
+      }
+
+      // Request AJAX and update HTML on complete.
+      fetchBlock({
+        attributes,
+        context,
+        clientId,
+        query: {
+          form: true
+        }
+      }).done(_ref7 => {
+        let {
+          data
+        } = _ref7;
+        this.setHtml(data.form.replaceAll(data.clientId, clientId));
+      });
+    }
+    componentDidRemount() {
+      super.componentDidRemount();
+      const {
+        $el
+      } = this.state;
+
+      // Make sure our on append events are registered.
+      if ($el.data('acf-events-added') !== true) {
+        this.componentDidAppend();
+      }
+    }
+    componentDidAppend() {
+      super.componentDidAppend();
+
+      // Extract props.
+      const {
+        attributes,
+        setAttributes,
+        clientId
+      } = this.props;
+      const props = this.props;
+      const {
+        $el
+      } = this.state;
+
+      // Callback for updating block data.
+      function serializeData() {
+        let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+        const data = acf.serialize($el, `acf-${clientId}`);
+        if (silent) {
+          attributes.data = data;
+        } else {
+          setAttributes({
+            data
+          });
+        }
+      }
+
+      // Add events.
+      let timeout = false;
+      $el.on('change keyup', () => {
+        clearTimeout(timeout);
+        timeout = setTimeout(serializeData, 300);
+      });
+
+      // Log initialization for remount check on the persistent element.
+      $el.data('acf-events-added', true);
+
+      // Ensure newly added block is saved with data.
+      // Do it silently to avoid triggering a preview render.
+      if (!attributes.data) {
+        serializeData(true);
+      }
+    }
+  }
+
+  /**
+   * BlockPreview Class.
+   *
+   * A react componenet to handle the block preview.
+   *
+   * @date	19/2/19
+   * @since	5.7.12
+   *
+   * @param	string id the block id.
+   * @return	void
+   */
+  class BlockPreview extends DynamicHTML {
+    setup(_ref8) {
+      let {
+        clientId,
+        name
+      } = _ref8;
+      const blockType = getBlockType(name);
+      const contextPostId = acf.isget(this.props, 'context', 'postId');
+      this.id = `BlockPreview-${clientId}`;
+
+      // Apply the contextPostId to the ID if set to stop query loop ID duplication.
+      if (contextPostId) {
+        this.id = `BlockPreview-${clientId}-${contextPostId}`;
+      }
+      if (blockType.supports.jsx) {
+        this.renderMethod = 'jsx';
+      }
+    }
+    fetch() {
+      let args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+      const {
+        attributes = this.props.attributes,
+        clientId = this.props.clientId,
+        context = this.props.context,
+        delay = 0
+      } = args;
+      const {
+        name
+      } = this.props;
+
+      // Remember attributes used to fetch HTML.
+      this.setState({
+        prevAttributes: attributes,
+        prevContext: context
+      });
+      const hash = createBlockAttributesHash(attributes, context);
+
+      // Try preloaded data first.
+      let preloaded = this.maybePreload(hash, clientId, false);
+      if (preloaded) {
+        if (getBlockVersion(name) == 1) {
+          preloaded = '<div class="acf-block-preview">' + preloaded + '</div>';
+        }
+        this.setHtml(preloaded);
+        return;
+      }
+
+      // Request AJAX and update HTML on complete.
+      fetchBlock({
+        attributes,
+        context,
+        clientId,
+        query: {
+          preview: true
+        },
+        delay
+      }).done(_ref9 => {
+        let {
+          data
+        } = _ref9;
+        let replaceHtml = data.preview.replaceAll(data.clientId, clientId);
+        if (getBlockVersion(name) == 1) {
+          replaceHtml = '<div class="acf-block-preview">' + replaceHtml + '</div>';
+        }
+        this.setHtml(replaceHtml);
+      });
+    }
+    componentDidAppend() {
+      super.componentDidAppend();
+      this.renderBlockPreviewEvent();
+    }
+    shouldComponentUpdate(nextProps, nextState) {
+      const nextAttributes = nextProps.attributes;
+      const thisAttributes = this.props.attributes;
+
+      // Update preview if block data has changed.
+      if (!compareObjects(nextAttributes, thisAttributes) || !compareObjects(nextProps.context, this.props.context)) {
+        let delay = 0;
+
+        // Delay fetch when editing className or anchor to simulate consistent logic to custom fields.
+        if (nextAttributes.className !== thisAttributes.className) {
+          delay = 300;
+        }
+        if (nextAttributes.anchor !== thisAttributes.anchor) {
+          delay = 300;
+        }
+        this.fetch({
+          attributes: nextAttributes,
+          context: nextProps.context,
+          delay
+        });
+      }
+      return super.shouldComponentUpdate(nextProps, nextState);
+    }
+    renderBlockPreviewEvent() {
+      // Extract props.
+      const {
+        attributes,
+        name
+      } = this.props;
+      const {
+        $el,
+        ref
+      } = this.state;
+      var blockElement;
+
+      // Generate action friendly type.
+      const type = attributes.name.replace('acf/', '');
+      if (ref && ref.current) {
+        // We've got a react ref from a JSX container. Use the parent as the blockElement
+        blockElement = $(ref.current).parent();
+      } else if (getBlockVersion(name) == 1) {
+        blockElement = $el;
+      } else {
+        blockElement = $el.parents('.acf-block-preview');
+      }
+
+      // Do action.
+      acf.doAction('render_block_preview', blockElement, attributes);
+      acf.doAction(`render_block_preview/type=${type}`, blockElement, attributes);
+    }
+    componentDidRemount() {
+      super.componentDidRemount();
+
+      // Update preview if data has changed since last render (changing from "edit" to "preview").
+      if (!compareObjects(this.state.prevAttributes, this.props.attributes) || !compareObjects(this.state.prevContext, this.props.context)) {
+        this.fetch();
+      }
+
+      // Fire the block preview event so blocks can reinit JS elements.
+      // React reusing DOM elements covers any potential race condition from the above fetch.
+      this.renderBlockPreviewEvent();
+    }
+  }
+
+  /**
+   * Initializes ACF Blocks logic and registration.
+   *
+   * @since 5.9.0
+   */
+  function initialize() {
+    // Add support for WordPress versions before 5.2.
+    if (!wp.blockEditor) {
+      wp.blockEditor = wp.editor;
+    }
+
+    // Register block types.
+    const blockTypes = acf.get('blockTypes');
+    if (blockTypes) {
+      blockTypes.map(registerBlockType);
+    }
+  }
+
+  // Run the initialize callback during the "prepare" action.
+  // This ensures that all localized data is available and that blocks are registered before the WP editor has been instantiated.
+  acf.addAction('prepare', initialize);
+
+  /**
+   * Returns a valid vertical alignment.
+   *
+   * @date	07/08/2020
+   * @since	5.9.0
+   *
+   * @param	string align A vertical alignment.
+   * @return	string
+   */
+  function validateVerticalAlignment(align) {
+    const ALIGNMENTS = ['top', 'center', 'bottom'];
+    const DEFAULT = 'top';
+    return ALIGNMENTS.includes(align) ? align : DEFAULT;
+  }
+
+  /**
+   * Returns a valid horizontal alignment.
+   *
+   * @date	07/08/2020
+   * @since	5.9.0
+   *
+   * @param	string align A horizontal alignment.
+   * @return	string
+   */
+  function validateHorizontalAlignment(align) {
+    const ALIGNMENTS = ['left', 'center', 'right'];
+    const DEFAULT = acf.get('rtl') ? 'right' : 'left';
+    return ALIGNMENTS.includes(align) ? align : DEFAULT;
+  }
+
+  /**
+   * Returns a valid matrix alignment.
+   *
+   * Written for "upgrade-path" compatibility from vertical alignment to matrix alignment.
+   *
+   * @date	07/08/2020
+   * @since	5.9.0
+   *
+   * @param	string align A matrix alignment.
+   * @return	string
+   */
+  function validateMatrixAlignment(align) {
+    const DEFAULT = 'center center';
+    if (align) {
+      const [y, x] = align.split(' ');
+      return `${validateVerticalAlignment(y)} ${validateHorizontalAlignment(x)}`;
+    }
+    return DEFAULT;
+  }
+
+  /**
+   * A higher order component adding alignContent editing functionality.
+   *
+   * @date	08/07/2020
+   * @since	5.9.0
+   *
+   * @param	component OriginalBlockEdit The original BlockEdit component.
+   * @param	object blockType The block type settings.
+   * @return	component
+   */
+  function withAlignContentComponent(OriginalBlockEdit, blockType) {
+    // Determine alignment vars
+    let type = blockType.supports.align_content || blockType.supports.alignContent;
+    let AlignmentComponent;
+    let validateAlignment;
+    switch (type) {
+      case 'matrix':
+        AlignmentComponent = BlockAlignmentMatrixControl || BlockAlignmentMatrixToolbar;
+        validateAlignment = validateMatrixAlignment;
+        break;
+      default:
+        AlignmentComponent = BlockVerticalAlignmentToolbar;
+        validateAlignment = validateVerticalAlignment;
+        break;
+    }
+
+    // Ensure alignment component exists.
+    if (AlignmentComponent === undefined) {
+      console.warn(`The "${type}" alignment component was not found.`);
+      return OriginalBlockEdit;
+    }
+
+    // Ensure correct block attribute data is sent in intial preview AJAX request.
+    blockType.alignContent = validateAlignment(blockType.alignContent);
+
+    // Return wrapped component.
+    return class WrappedBlockEdit extends Component {
+      render() {
+        const {
+          attributes,
+          setAttributes
+        } = this.props;
+        const {
+          alignContent
+        } = attributes;
+        function onChangeAlignContent(alignContent) {
+          setAttributes({
+            alignContent: validateAlignment(alignContent)
+          });
+        }
+        return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockControls, {
+          group: "block"
+        }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(AlignmentComponent, {
+          label: acf.__('Change content alignment'),
+          value: validateAlignment(alignContent),
+          onChange: onChangeAlignContent
+        })), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(OriginalBlockEdit, this.props));
+      }
+    };
+  }
+
+  /**
+   * A higher order component adding alignText editing functionality.
+   *
+   * @date	08/07/2020
+   * @since	5.9.0
+   *
+   * @param	component OriginalBlockEdit The original BlockEdit component.
+   * @param	object blockType The block type settings.
+   * @return	component
+   */
+  function withAlignTextComponent(OriginalBlockEdit, blockType) {
+    const validateAlignment = validateHorizontalAlignment;
+
+    // Ensure correct block attribute data is sent in intial preview AJAX request.
+    blockType.alignText = validateAlignment(blockType.alignText);
+
+    // Return wrapped component.
+    return class WrappedBlockEdit extends Component {
+      render() {
+        const {
+          attributes,
+          setAttributes
+        } = this.props;
+        const {
+          alignText
+        } = attributes;
+        function onChangeAlignText(alignText) {
+          setAttributes({
+            alignText: validateAlignment(alignText)
+          });
+        }
+        return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockControls, {
+          group: "block"
+        }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(AlignmentToolbar, {
+          value: validateAlignment(alignText),
+          onChange: onChangeAlignText
+        })), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(OriginalBlockEdit, this.props));
+      }
+    };
+  }
+
+  /**
+   * A higher order component adding full height support.
+   *
+   * @date	19/07/2021
+   * @since	5.10.0
+   *
+   * @param	component OriginalBlockEdit The original BlockEdit component.
+   * @param	object blockType The block type settings.
+   * @return	component
+   */
+  function withFullHeightComponent(OriginalBlockEdit, blockType) {
+    if (!BlockFullHeightAlignmentControl) return OriginalBlockEdit;
+
+    // Return wrapped component.
+    return class WrappedBlockEdit extends Component {
+      render() {
+        const {
+          attributes,
+          setAttributes
+        } = this.props;
+        const {
+          fullHeight
+        } = attributes;
+        function onToggleFullHeight(fullHeight) {
+          setAttributes({
+            fullHeight
+          });
+        }
+        return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockControls, {
+          group: "block"
+        }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(BlockFullHeightAlignmentControl, {
+          isActive: fullHeight,
+          onToggle: onToggleFullHeight
+        })), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createElement)(OriginalBlockEdit, this.props));
+      }
+    };
+  }
+
+  /**
+   * Appends a backwards compatibility attribute for conversion.
+   *
+   * @since	6.0
+   *
+   * @param	object attributes The block type attributes.
+   * @return	object
+   */
+  function addBackCompatAttribute(attributes, new_attribute, type) {
+    attributes[new_attribute] = {
+      type: type
+    };
+    return attributes;
+  }
+
+  /**
+   * Create a block hash from attributes
+   *
+   * @since 6.0
+   *
+   * @param object attributes The block type attributes.
+   * @param object context The current block context object.
+   * @return string
+   */
+  function createBlockAttributesHash(attributes, context) {
+    attributes['_acf_context'] = context;
+    return md5(JSON.stringify(Object.keys(attributes).sort().reduce((acc, currValue) => {
+      acc[currValue] = attributes[currValue];
+      return acc;
+    }, {})));
+  }
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-jsx-names.js":
+/*!****************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-jsx-names.js ***!
+  \****************************************************************************/
+/***/ (function() {
+
+(function ($, undefined) {
+  acf.jsxNameReplacements = {
+    'accent-height': 'accentHeight',
+    accentheight: 'accentHeight',
+    'accept-charset': 'acceptCharset',
+    acceptcharset: 'acceptCharset',
+    accesskey: 'accessKey',
+    'alignment-baseline': 'alignmentBaseline',
+    alignmentbaseline: 'alignmentBaseline',
+    allowedblocks: 'allowedBlocks',
+    allowfullscreen: 'allowFullScreen',
+    allowreorder: 'allowReorder',
+    'arabic-form': 'arabicForm',
+    arabicform: 'arabicForm',
+    attributename: 'attributeName',
+    attributetype: 'attributeType',
+    autocapitalize: 'autoCapitalize',
+    autocomplete: 'autoComplete',
+    autocorrect: 'autoCorrect',
+    autofocus: 'autoFocus',
+    autoplay: 'autoPlay',
+    autoreverse: 'autoReverse',
+    autosave: 'autoSave',
+    basefrequency: 'baseFrequency',
+    'baseline-shift': 'baselineShift',
+    baselineshift: 'baselineShift',
+    baseprofile: 'baseProfile',
+    calcmode: 'calcMode',
+    'cap-height': 'capHeight',
+    capheight: 'capHeight',
+    cellpadding: 'cellPadding',
+    cellspacing: 'cellSpacing',
+    charset: 'charSet',
+    class: 'className',
+    classid: 'classID',
+    classname: 'className',
+    'clip-path': 'clipPath',
+    'clip-rule': 'clipRule',
+    clippath: 'clipPath',
+    clippathunits: 'clipPathUnits',
+    cliprule: 'clipRule',
+    'color-interpolation': 'colorInterpolation',
+    'color-interpolation-filters': 'colorInterpolationFilters',
+    'color-profile': 'colorProfile',
+    'color-rendering': 'colorRendering',
+    colorinterpolation: 'colorInterpolation',
+    colorinterpolationfilters: 'colorInterpolationFilters',
+    colorprofile: 'colorProfile',
+    colorrendering: 'colorRendering',
+    colspan: 'colSpan',
+    contenteditable: 'contentEditable',
+    contentscripttype: 'contentScriptType',
+    contentstyletype: 'contentStyleType',
+    contextmenu: 'contextMenu',
+    controlslist: 'controlsList',
+    crossorigin: 'crossOrigin',
+    dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',
+    datetime: 'dateTime',
+    defaultchecked: 'defaultChecked',
+    defaultvalue: 'defaultValue',
+    diffuseconstant: 'diffuseConstant',
+    disablepictureinpicture: 'disablePictureInPicture',
+    disableremoteplayback: 'disableRemotePlayback',
+    'dominant-baseline': 'dominantBaseline',
+    dominantbaseline: 'dominantBaseline',
+    edgemode: 'edgeMode',
+    'enable-background': 'enableBackground',
+    enablebackground: 'enableBackground',
+    enctype: 'encType',
+    enterkeyhint: 'enterKeyHint',
+    externalresourcesrequired: 'externalResourcesRequired',
+    'fill-opacity': 'fillOpacity',
+    'fill-rule': 'fillRule',
+    fillopacity: 'fillOpacity',
+    fillrule: 'fillRule',
+    filterres: 'filterRes',
+    filterunits: 'filterUnits',
+    'flood-color': 'floodColor',
+    'flood-opacity': 'floodOpacity',
+    floodcolor: 'floodColor',
+    floodopacity: 'floodOpacity',
+    'font-family': 'fontFamily',
+    'font-size': 'fontSize',
+    'font-size-adjust': 'fontSizeAdjust',
+    'font-stretch': 'fontStretch',
+    'font-style': 'fontStyle',
+    'font-variant': 'fontVariant',
+    'font-weight': 'fontWeight',
+    fontfamily: 'fontFamily',
+    fontsize: 'fontSize',
+    fontsizeadjust: 'fontSizeAdjust',
+    fontstretch: 'fontStretch',
+    fontstyle: 'fontStyle',
+    fontvariant: 'fontVariant',
+    fontweight: 'fontWeight',
+    for: 'htmlFor',
+    foreignobject: 'foreignObject',
+    formaction: 'formAction',
+    formenctype: 'formEncType',
+    formmethod: 'formMethod',
+    formnovalidate: 'formNoValidate',
+    formtarget: 'formTarget',
+    frameborder: 'frameBorder',
+    'glyph-name': 'glyphName',
+    'glyph-orientation-horizontal': 'glyphOrientationHorizontal',
+    'glyph-orientation-vertical': 'glyphOrientationVertical',
+    glyphname: 'glyphName',
+    glyphorientationhorizontal: 'glyphOrientationHorizontal',
+    glyphorientationvertical: 'glyphOrientationVertical',
+    glyphref: 'glyphRef',
+    gradienttransform: 'gradientTransform',
+    gradientunits: 'gradientUnits',
+    'horiz-adv-x': 'horizAdvX',
+    'horiz-origin-x': 'horizOriginX',
+    horizadvx: 'horizAdvX',
+    horizoriginx: 'horizOriginX',
+    hreflang: 'hrefLang',
+    htmlfor: 'htmlFor',
+    'http-equiv': 'httpEquiv',
+    httpequiv: 'httpEquiv',
+    'image-rendering': 'imageRendering',
+    imagerendering: 'imageRendering',
+    innerhtml: 'innerHTML',
+    inputmode: 'inputMode',
+    itemid: 'itemID',
+    itemprop: 'itemProp',
+    itemref: 'itemRef',
+    itemscope: 'itemScope',
+    itemtype: 'itemType',
+    kernelmatrix: 'kernelMatrix',
+    kernelunitlength: 'kernelUnitLength',
+    keyparams: 'keyParams',
+    keypoints: 'keyPoints',
+    keysplines: 'keySplines',
+    keytimes: 'keyTimes',
+    keytype: 'keyType',
+    lengthadjust: 'lengthAdjust',
+    'letter-spacing': 'letterSpacing',
+    letterspacing: 'letterSpacing',
+    'lighting-color': 'lightingColor',
+    lightingcolor: 'lightingColor',
+    limitingconeangle: 'limitingConeAngle',
+    marginheight: 'marginHeight',
+    marginwidth: 'marginWidth',
+    'marker-end': 'markerEnd',
+    'marker-mid': 'markerMid',
+    'marker-start': 'markerStart',
+    markerend: 'markerEnd',
+    markerheight: 'markerHeight',
+    markermid: 'markerMid',
+    markerstart: 'markerStart',
+    markerunits: 'markerUnits',
+    markerwidth: 'markerWidth',
+    maskcontentunits: 'maskContentUnits',
+    maskunits: 'maskUnits',
+    maxlength: 'maxLength',
+    mediagroup: 'mediaGroup',
+    minlength: 'minLength',
+    nomodule: 'noModule',
+    novalidate: 'noValidate',
+    numoctaves: 'numOctaves',
+    'overline-position': 'overlinePosition',
+    'overline-thickness': 'overlineThickness',
+    overlineposition: 'overlinePosition',
+    overlinethickness: 'overlineThickness',
+    'paint-order': 'paintOrder',
+    paintorder: 'paintOrder',
+    'panose-1': 'panose1',
+    pathlength: 'pathLength',
+    patterncontentunits: 'patternContentUnits',
+    patterntransform: 'patternTransform',
+    patternunits: 'patternUnits',
+    playsinline: 'playsInline',
+    'pointer-events': 'pointerEvents',
+    pointerevents: 'pointerEvents',
+    pointsatx: 'pointsAtX',
+    pointsaty: 'pointsAtY',
+    pointsatz: 'pointsAtZ',
+    preservealpha: 'preserveAlpha',
+    preserveaspectratio: 'preserveAspectRatio',
+    primitiveunits: 'primitiveUnits',
+    radiogroup: 'radioGroup',
+    readonly: 'readOnly',
+    referrerpolicy: 'referrerPolicy',
+    refx: 'refX',
+    refy: 'refY',
+    'rendering-intent': 'renderingIntent',
+    renderingintent: 'renderingIntent',
+    repeatcount: 'repeatCount',
+    repeatdur: 'repeatDur',
+    requiredextensions: 'requiredExtensions',
+    requiredfeatures: 'requiredFeatures',
+    rowspan: 'rowSpan',
+    'shape-rendering': 'shapeRendering',
+    shaperendering: 'shapeRendering',
+    specularconstant: 'specularConstant',
+    specularexponent: 'specularExponent',
+    spellcheck: 'spellCheck',
+    spreadmethod: 'spreadMethod',
+    srcdoc: 'srcDoc',
+    srclang: 'srcLang',
+    srcset: 'srcSet',
+    startoffset: 'startOffset',
+    stddeviation: 'stdDeviation',
+    stitchtiles: 'stitchTiles',
+    'stop-color': 'stopColor',
+    'stop-opacity': 'stopOpacity',
+    stopcolor: 'stopColor',
+    stopopacity: 'stopOpacity',
+    'strikethrough-position': 'strikethroughPosition',
+    'strikethrough-thickness': 'strikethroughThickness',
+    strikethroughposition: 'strikethroughPosition',
+    strikethroughthickness: 'strikethroughThickness',
+    'stroke-dasharray': 'strokeDasharray',
+    'stroke-dashoffset': 'strokeDashoffset',
+    'stroke-linecap': 'strokeLinecap',
+    'stroke-linejoin': 'strokeLinejoin',
+    'stroke-miterlimit': 'strokeMiterlimit',
+    'stroke-opacity': 'strokeOpacity',
+    'stroke-width': 'strokeWidth',
+    strokedasharray: 'strokeDasharray',
+    strokedashoffset: 'strokeDashoffset',
+    strokelinecap: 'strokeLinecap',
+    strokelinejoin: 'strokeLinejoin',
+    strokemiterlimit: 'strokeMiterlimit',
+    strokeopacity: 'strokeOpacity',
+    strokewidth: 'strokeWidth',
+    suppresscontenteditablewarning: 'suppressContentEditableWarning',
+    suppresshydrationwarning: 'suppressHydrationWarning',
+    surfacescale: 'surfaceScale',
+    systemlanguage: 'systemLanguage',
+    tabindex: 'tabIndex',
+    tablevalues: 'tableValues',
+    targetx: 'targetX',
+    targety: 'targetY',
+    templatelock: 'templateLock',
+    'text-anchor': 'textAnchor',
+    'text-decoration': 'textDecoration',
+    'text-rendering': 'textRendering',
+    textanchor: 'textAnchor',
+    textdecoration: 'textDecoration',
+    textlength: 'textLength',
+    textrendering: 'textRendering',
+    'underline-position': 'underlinePosition',
+    'underline-thickness': 'underlineThickness',
+    underlineposition: 'underlinePosition',
+    underlinethickness: 'underlineThickness',
+    'unicode-bidi': 'unicodeBidi',
+    'unicode-range': 'unicodeRange',
+    unicodebidi: 'unicodeBidi',
+    unicoderange: 'unicodeRange',
+    'units-per-em': 'unitsPerEm',
+    unitsperem: 'unitsPerEm',
+    usemap: 'useMap',
+    'v-alphabetic': 'vAlphabetic',
+    'v-hanging': 'vHanging',
+    'v-ideographic': 'vIdeographic',
+    'v-mathematical': 'vMathematical',
+    valphabetic: 'vAlphabetic',
+    'vector-effect': 'vectorEffect',
+    vectoreffect: 'vectorEffect',
+    'vert-adv-y': 'vertAdvY',
+    'vert-origin-x': 'vertOriginX',
+    'vert-origin-y': 'vertOriginY',
+    vertadvy: 'vertAdvY',
+    vertoriginx: 'vertOriginX',
+    vertoriginy: 'vertOriginY',
+    vhanging: 'vHanging',
+    videographic: 'vIdeographic',
+    viewbox: 'viewBox',
+    viewtarget: 'viewTarget',
+    vmathematical: 'vMathematical',
+    'word-spacing': 'wordSpacing',
+    wordspacing: 'wordSpacing',
+    'writing-mode': 'writingMode',
+    writingmode: 'writingMode',
+    'x-height': 'xHeight',
+    xchannelselector: 'xChannelSelector',
+    xheight: 'xHeight',
+    'xlink:actuate': 'xlinkActuate',
+    'xlink:arcrole': 'xlinkArcrole',
+    'xlink:href': 'xlinkHref',
+    'xlink:role': 'xlinkRole',
+    'xlink:show': 'xlinkShow',
+    'xlink:title': 'xlinkTitle',
+    'xlink:type': 'xlinkType',
+    xlinkactuate: 'xlinkActuate',
+    xlinkarcrole: 'xlinkArcrole',
+    xlinkhref: 'xlinkHref',
+    xlinkrole: 'xlinkRole',
+    xlinkshow: 'xlinkShow',
+    xlinktitle: 'xlinkTitle',
+    xlinktype: 'xlinkType',
+    'xml:base': 'xmlBase',
+    'xml:lang': 'xmlLang',
+    'xml:space': 'xmlSpace',
+    xmlbase: 'xmlBase',
+    xmllang: 'xmlLang',
+    'xmlns:xlink': 'xmlnsXlink',
+    xmlnsxlink: 'xmlnsXlink',
+    xmlspace: 'xmlSpace',
+    ychannelselector: 'yChannelSelector',
+    zoomandpan: 'zoomAndPan'
+  };
+})(jQuery);
+
+/***/ }),
+
+/***/ "./node_modules/charenc/charenc.js":
+/*!*****************************************!*\
+  !*** ./node_modules/charenc/charenc.js ***!
+  \*****************************************/
+/***/ (function(module) {
+
+var charenc = {
+  // UTF-8 encoding
+  utf8: {
+    // Convert a string to a byte array
+    stringToBytes: function(str) {
+      return charenc.bin.stringToBytes(unescape(encodeURIComponent(str)));
+    },
+
+    // Convert a byte array to a string
+    bytesToString: function(bytes) {
+      return decodeURIComponent(escape(charenc.bin.bytesToString(bytes)));
+    }
+  },
+
+  // Binary encoding
+  bin: {
+    // Convert a string to a byte array
+    stringToBytes: function(str) {
+      for (var bytes = [], i = 0; i < str.length; i++)
+        bytes.push(str.charCodeAt(i) & 0xFF);
+      return bytes;
+    },
+
+    // Convert a byte array to a string
+    bytesToString: function(bytes) {
+      for (var str = [], i = 0; i < bytes.length; i++)
+        str.push(String.fromCharCode(bytes[i]));
+      return str.join('');
+    }
+  }
+};
+
+module.exports = charenc;
+
+
+/***/ }),
+
+/***/ "./node_modules/crypt/crypt.js":
+/*!*************************************!*\
+  !*** ./node_modules/crypt/crypt.js ***!
+  \*************************************/
+/***/ (function(module) {
+
+(function() {
+  var base64map
+      = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
+
+  crypt = {
+    // Bit-wise rotation left
+    rotl: function(n, b) {
+      return (n << b) | (n >>> (32 - b));
+    },
+
+    // Bit-wise rotation right
+    rotr: function(n, b) {
+      return (n << (32 - b)) | (n >>> b);
+    },
+
+    // Swap big-endian to little-endian and vice versa
+    endian: function(n) {
+      // If number given, swap endian
+      if (n.constructor == Number) {
+        return crypt.rotl(n, 8) & 0x00FF00FF | crypt.rotl(n, 24) & 0xFF00FF00;
+      }
+
+      // Else, assume array and swap all items
+      for (var i = 0; i < n.length; i++)
+        n[i] = crypt.endian(n[i]);
+      return n;
+    },
+
+    // Generate an array of any length of random bytes
+    randomBytes: function(n) {
+      for (var bytes = []; n > 0; n--)
+        bytes.push(Math.floor(Math.random() * 256));
+      return bytes;
+    },
+
+    // Convert a byte array to big-endian 32-bit words
+    bytesToWords: function(bytes) {
+      for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)
+        words[b >>> 5] |= bytes[i] << (24 - b % 32);
+      return words;
+    },
+
+    // Convert big-endian 32-bit words to a byte array
+    wordsToBytes: function(words) {
+      for (var bytes = [], b = 0; b < words.length * 32; b += 8)
+        bytes.push((words[b >>> 5] >>> (24 - b % 32)) & 0xFF);
+      return bytes;
+    },
+
+    // Convert a byte array to a hex string
+    bytesToHex: function(bytes) {
+      for (var hex = [], i = 0; i < bytes.length; i++) {
+        hex.push((bytes[i] >>> 4).toString(16));
+        hex.push((bytes[i] & 0xF).toString(16));
+      }
+      return hex.join('');
+    },
+
+    // Convert a hex string to a byte array
+    hexToBytes: function(hex) {
+      for (var bytes = [], c = 0; c < hex.length; c += 2)
+        bytes.push(parseInt(hex.substr(c, 2), 16));
+      return bytes;
+    },
+
+    // Convert a byte array to a base-64 string
+    bytesToBase64: function(bytes) {
+      for (var base64 = [], i = 0; i < bytes.length; i += 3) {
+        var triplet = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];
+        for (var j = 0; j < 4; j++)
+          if (i * 8 + j * 6 <= bytes.length * 8)
+            base64.push(base64map.charAt((triplet >>> 6 * (3 - j)) & 0x3F));
+          else
+            base64.push('=');
+      }
+      return base64.join('');
+    },
+
+    // Convert a base-64 string to a byte array
+    base64ToBytes: function(base64) {
+      // Remove non-base-64 characters
+      base64 = base64.replace(/[^A-Z0-9+\/]/ig, '');
+
+      for (var bytes = [], i = 0, imod4 = 0; i < base64.length;
+          imod4 = ++i % 4) {
+        if (imod4 == 0) continue;
+        bytes.push(((base64map.indexOf(base64.charAt(i - 1))
+            & (Math.pow(2, -2 * imod4 + 8) - 1)) << (imod4 * 2))
+            | (base64map.indexOf(base64.charAt(i)) >>> (6 - imod4 * 2)));
+      }
+      return bytes;
+    }
+  };
+
+  module.exports = crypt;
+})();
+
+
+/***/ }),
+
+/***/ "./node_modules/is-buffer/index.js":
+/*!*****************************************!*\
+  !*** ./node_modules/is-buffer/index.js ***!
+  \*****************************************/
+/***/ (function(module) {
+
+/*!
+ * Determine if an object is a Buffer
+ *
+ * @author   Feross Aboukhadijeh <https://feross.org>
+ * @license  MIT
+ */
+
+// The _isBuffer check is for Safari 5-7 support, because it's missing
+// Object.prototype.constructor. Remove this eventually
+module.exports = function (obj) {
+  return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
+}
+
+function isBuffer (obj) {
+  return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
+}
+
+// For Node v0.10 support. Remove this eventually.
+function isSlowBuffer (obj) {
+  return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
+}
+
+
+/***/ }),
+
+/***/ "./node_modules/md5/md5.js":
+/*!*********************************!*\
+  !*** ./node_modules/md5/md5.js ***!
+  \*********************************/
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+(function(){
+  var crypt = __webpack_require__(/*! crypt */ "./node_modules/crypt/crypt.js"),
+      utf8 = (__webpack_require__(/*! charenc */ "./node_modules/charenc/charenc.js").utf8),
+      isBuffer = __webpack_require__(/*! is-buffer */ "./node_modules/is-buffer/index.js"),
+      bin = (__webpack_require__(/*! charenc */ "./node_modules/charenc/charenc.js").bin),
+
+  // The core
+  md5 = function (message, options) {
+    // Convert to byte array
+    if (message.constructor == String)
+      if (options && options.encoding === 'binary')
+        message = bin.stringToBytes(message);
+      else
+        message = utf8.stringToBytes(message);
+    else if (isBuffer(message))
+      message = Array.prototype.slice.call(message, 0);
+    else if (!Array.isArray(message) && message.constructor !== Uint8Array)
+      message = message.toString();
+    // else, assume byte array already
+
+    var m = crypt.bytesToWords(message),
+        l = message.length * 8,
+        a =  1732584193,
+        b = -271733879,
+        c = -1732584194,
+        d =  271733878;
+
+    // Swap endian
+    for (var i = 0; i < m.length; i++) {
+      m[i] = ((m[i] <<  8) | (m[i] >>> 24)) & 0x00FF00FF |
+             ((m[i] << 24) | (m[i] >>>  8)) & 0xFF00FF00;
+    }
+
+    // Padding
+    m[l >>> 5] |= 0x80 << (l % 32);
+    m[(((l + 64) >>> 9) << 4) + 14] = l;
+
+    // Method shortcuts
+    var FF = md5._ff,
+        GG = md5._gg,
+        HH = md5._hh,
+        II = md5._ii;
+
+    for (var i = 0; i < m.length; i += 16) {
+
+      var aa = a,
+          bb = b,
+          cc = c,
+          dd = d;
+
+      a = FF(a, b, c, d, m[i+ 0],  7, -680876936);
+      d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
+      c = FF(c, d, a, b, m[i+ 2], 17,  606105819);
+      b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
+      a = FF(a, b, c, d, m[i+ 4],  7, -176418897);
+      d = FF(d, a, b, c, m[i+ 5], 12,  1200080426);
+      c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
+      b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
+      a = FF(a, b, c, d, m[i+ 8],  7,  1770035416);
+      d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
+      c = FF(c, d, a, b, m[i+10], 17, -42063);
+      b = FF(b, c, d, a, m[i+11], 22, -1990404162);
+      a = FF(a, b, c, d, m[i+12],  7,  1804603682);
+      d = FF(d, a, b, c, m[i+13], 12, -40341101);
+      c = FF(c, d, a, b, m[i+14], 17, -1502002290);
+      b = FF(b, c, d, a, m[i+15], 22,  1236535329);
+
+      a = GG(a, b, c, d, m[i+ 1],  5, -165796510);
+      d = GG(d, a, b, c, m[i+ 6],  9, -1069501632);
+      c = GG(c, d, a, b, m[i+11], 14,  643717713);
+      b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
+      a = GG(a, b, c, d, m[i+ 5],  5, -701558691);
+      d = GG(d, a, b, c, m[i+10],  9,  38016083);
+      c = GG(c, d, a, b, m[i+15], 14, -660478335);
+      b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
+      a = GG(a, b, c, d, m[i+ 9],  5,  568446438);
+      d = GG(d, a, b, c, m[i+14],  9, -1019803690);
+      c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
+      b = GG(b, c, d, a, m[i+ 8], 20,  1163531501);
+      a = GG(a, b, c, d, m[i+13],  5, -1444681467);
+      d = GG(d, a, b, c, m[i+ 2],  9, -51403784);
+      c = GG(c, d, a, b, m[i+ 7], 14,  1735328473);
+      b = GG(b, c, d, a, m[i+12], 20, -1926607734);
+
+      a = HH(a, b, c, d, m[i+ 5],  4, -378558);
+      d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
+      c = HH(c, d, a, b, m[i+11], 16,  1839030562);
+      b = HH(b, c, d, a, m[i+14], 23, -35309556);
+      a = HH(a, b, c, d, m[i+ 1],  4, -1530992060);
+      d = HH(d, a, b, c, m[i+ 4], 11,  1272893353);
+      c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
+      b = HH(b, c, d, a, m[i+10], 23, -1094730640);
+      a = HH(a, b, c, d, m[i+13],  4,  681279174);
+      d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
+      c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
+      b = HH(b, c, d, a, m[i+ 6], 23,  76029189);
+      a = HH(a, b, c, d, m[i+ 9],  4, -640364487);
+      d = HH(d, a, b, c, m[i+12], 11, -421815835);
+      c = HH(c, d, a, b, m[i+15], 16,  530742520);
+      b = HH(b, c, d, a, m[i+ 2], 23, -995338651);
+
+      a = II(a, b, c, d, m[i+ 0],  6, -198630844);
+      d = II(d, a, b, c, m[i+ 7], 10,  1126891415);
+      c = II(c, d, a, b, m[i+14], 15, -1416354905);
+      b = II(b, c, d, a, m[i+ 5], 21, -57434055);
+      a = II(a, b, c, d, m[i+12],  6,  1700485571);
+      d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
+      c = II(c, d, a, b, m[i+10], 15, -1051523);
+      b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
+      a = II(a, b, c, d, m[i+ 8],  6,  1873313359);
+      d = II(d, a, b, c, m[i+15], 10, -30611744);
+      c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
+      b = II(b, c, d, a, m[i+13], 21,  1309151649);
+      a = II(a, b, c, d, m[i+ 4],  6, -145523070);
+      d = II(d, a, b, c, m[i+11], 10, -1120210379);
+      c = II(c, d, a, b, m[i+ 2], 15,  718787259);
+      b = II(b, c, d, a, m[i+ 9], 21, -343485551);
+
+      a = (a + aa) >>> 0;
+      b = (b + bb) >>> 0;
+      c = (c + cc) >>> 0;
+      d = (d + dd) >>> 0;
+    }
+
+    return crypt.endian([a, b, c, d]);
+  };
+
+  // Auxiliary functions
+  md5._ff  = function (a, b, c, d, x, s, t) {
+    var n = a + (b & c | ~b & d) + (x >>> 0) + t;
+    return ((n << s) | (n >>> (32 - s))) + b;
+  };
+  md5._gg  = function (a, b, c, d, x, s, t) {
+    var n = a + (b & d | c & ~d) + (x >>> 0) + t;
+    return ((n << s) | (n >>> (32 - s))) + b;
+  };
+  md5._hh  = function (a, b, c, d, x, s, t) {
+    var n = a + (b ^ c ^ d) + (x >>> 0) + t;
+    return ((n << s) | (n >>> (32 - s))) + b;
+  };
+  md5._ii  = function (a, b, c, d, x, s, t) {
+    var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
+    return ((n << s) | (n >>> (32 - s))) + b;
+  };
+
+  // Package private blocksize
+  md5._blocksize = 16;
+  md5._digestsize = 16;
+
+  module.exports = function (message, options) {
+    if (message === undefined || message === null)
+      throw new Error('Illegal argument ' + message);
+
+    var digestbytes = crypt.wordsToBytes(md5(message, options));
+    return options && options.asBytes ? digestbytes :
+        options && options.asString ? bin.bytesToString(digestbytes) :
+        crypt.bytesToHex(digestbytes);
+  };
+
+})();
+
+
+/***/ }),
+
+/***/ "./node_modules/object-assign/index.js":
+/*!*********************************************!*\
+  !*** ./node_modules/object-assign/index.js ***!
+  \*********************************************/
+/***/ (function(module) {
+
+"use strict";
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+
+/* eslint-disable no-unused-vars */
+var getOwnPropertySymbols = Object.getOwnPropertySymbols;
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+var propIsEnumerable = Object.prototype.propertyIsEnumerable;
+
+function toObject(val) {
+	if (val === null || val === undefined) {
+		throw new TypeError('Object.assign cannot be called with null or undefined');
+	}
+
+	return Object(val);
+}
+
+function shouldUseNative() {
+	try {
+		if (!Object.assign) {
+			return false;
+		}
+
+		// Detect buggy property enumeration order in older V8 versions.
+
+		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
+		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
+		test1[5] = 'de';
+		if (Object.getOwnPropertyNames(test1)[0] === '5') {
+			return false;
+		}
+
+		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
+		var test2 = {};
+		for (var i = 0; i < 10; i++) {
+			test2['_' + String.fromCharCode(i)] = i;
+		}
+		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
+			return test2[n];
+		});
+		if (order2.join('') !== '0123456789') {
+			return false;
+		}
+
+		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
+		var test3 = {};
+		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
+			test3[letter] = letter;
+		});
+		if (Object.keys(Object.assign({}, test3)).join('') !==
+				'abcdefghijklmnopqrst') {
+			return false;
+		}
+
+		return true;
+	} catch (err) {
+		// We don't expect any of the above to throw, but better to be safe.
+		return false;
+	}
+}
+
+module.exports = shouldUseNative() ? Object.assign : function (target, source) {
+	var from;
+	var to = toObject(target);
+	var symbols;
+
+	for (var s = 1; s < arguments.length; s++) {
+		from = Object(arguments[s]);
+
+		for (var key in from) {
+			if (hasOwnProperty.call(from, key)) {
+				to[key] = from[key];
+			}
+		}
+
+		if (getOwnPropertySymbols) {
+			symbols = getOwnPropertySymbols(from);
+			for (var i = 0; i < symbols.length; i++) {
+				if (propIsEnumerable.call(from, symbols[i])) {
+					to[symbols[i]] = from[symbols[i]];
+				}
+			}
+		}
+	}
+
+	return to;
+};
+
+
+/***/ }),
+
+/***/ "./node_modules/react/cjs/react.development.js":
+/*!*****************************************************!*\
+  !*** ./node_modules/react/cjs/react.development.js ***!
+  \*****************************************************/
+/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
+
+"use strict";
+/** @license React v17.0.2
+ * react.development.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+
+
+if (true) {
+  (function() {
+'use strict';
+
+var _assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
+
+// TODO: this is special because it gets imported during build.
+var ReactVersion = '17.0.2';
+
+// ATTENTION
+// When adding new symbols to this file,
+// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
+// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
+// nor polyfill, then a plain number is used for performance.
+var REACT_ELEMENT_TYPE = 0xeac7;
+var REACT_PORTAL_TYPE = 0xeaca;
+exports.Fragment = 0xeacb;
+exports.StrictMode = 0xeacc;
+exports.Profiler = 0xead2;
+var REACT_PROVIDER_TYPE = 0xeacd;
+var REACT_CONTEXT_TYPE = 0xeace;
+var REACT_FORWARD_REF_TYPE = 0xead0;
+exports.Suspense = 0xead1;
+var REACT_SUSPENSE_LIST_TYPE = 0xead8;
+var REACT_MEMO_TYPE = 0xead3;
+var REACT_LAZY_TYPE = 0xead4;
+var REACT_BLOCK_TYPE = 0xead9;
+var REACT_SERVER_BLOCK_TYPE = 0xeada;
+var REACT_FUNDAMENTAL_TYPE = 0xead5;
+var REACT_SCOPE_TYPE = 0xead7;
+var REACT_OPAQUE_ID_TYPE = 0xeae0;
+var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
+var REACT_OFFSCREEN_TYPE = 0xeae2;
+var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
+
+if (typeof Symbol === 'function' && Symbol.for) {
+  var symbolFor = Symbol.for;
+  REACT_ELEMENT_TYPE = symbolFor('react.element');
+  REACT_PORTAL_TYPE = symbolFor('react.portal');
+  exports.Fragment = symbolFor('react.fragment');
+  exports.StrictMode = symbolFor('react.strict_mode');
+  exports.Profiler = symbolFor('react.profiler');
+  REACT_PROVIDER_TYPE = symbolFor('react.provider');
+  REACT_CONTEXT_TYPE = symbolFor('react.context');
+  REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
+  exports.Suspense = symbolFor('react.suspense');
+  REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
+  REACT_MEMO_TYPE = symbolFor('react.memo');
+  REACT_LAZY_TYPE = symbolFor('react.lazy');
+  REACT_BLOCK_TYPE = symbolFor('react.block');
+  REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
+  REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
+  REACT_SCOPE_TYPE = symbolFor('react.scope');
+  REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
+  REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
+  REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
+  REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
+}
+
+var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
+var FAUX_ITERATOR_SYMBOL = '@@iterator';
+function getIteratorFn(maybeIterable) {
+  if (maybeIterable === null || typeof maybeIterable !== 'object') {
+    return null;
+  }
+
+  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
+
+  if (typeof maybeIterator === 'function') {
+    return maybeIterator;
+  }
+
+  return null;
+}
+
+/**
+ * Keeps track of the current dispatcher.
+ */
+var ReactCurrentDispatcher = {
+  /**
+   * @internal
+   * @type {ReactComponent}
+   */
+  current: null
+};
+
+/**
+ * Keeps track of the current batch's configuration such as how long an update
+ * should suspend for if it needs to.
+ */
+var ReactCurrentBatchConfig = {
+  transition: 0
+};
+
+/**
+ * Keeps track of the current owner.
+ *
+ * The current owner is the component who should own any components that are
+ * currently being constructed.
+ */
+var ReactCurrentOwner = {
+  /**
+   * @internal
+   * @type {ReactComponent}
+   */
+  current: null
+};
+
+var ReactDebugCurrentFrame = {};
+var currentExtraStackFrame = null;
+function setExtraStackFrame(stack) {
+  {
+    currentExtraStackFrame = stack;
+  }
+}
+
+{
+  ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {
+    {
+      currentExtraStackFrame = stack;
+    }
+  }; // Stack implementation injected by the current renderer.
+
+
+  ReactDebugCurrentFrame.getCurrentStack = null;
+
+  ReactDebugCurrentFrame.getStackAddendum = function () {
+    var stack = ''; // Add an extra top frame while an element is being validated
+
+    if (currentExtraStackFrame) {
+      stack += currentExtraStackFrame;
+    } // Delegate to the injected renderer-specific implementation
+
+
+    var impl = ReactDebugCurrentFrame.getCurrentStack;
+
+    if (impl) {
+      stack += impl() || '';
+    }
+
+    return stack;
+  };
+}
+
+/**
+ * Used by act() to track whether you're inside an act() scope.
+ */
+var IsSomeRendererActing = {
+  current: false
+};
+
+var ReactSharedInternals = {
+  ReactCurrentDispatcher: ReactCurrentDispatcher,
+  ReactCurrentBatchConfig: ReactCurrentBatchConfig,
+  ReactCurrentOwner: ReactCurrentOwner,
+  IsSomeRendererActing: IsSomeRendererActing,
+  // Used by renderers to avoid bundling object-assign twice in UMD bundles:
+  assign: _assign
+};
+
+{
+  ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;
+}
+
+// by calls to these methods by a Babel plugin.
+//
+// In PROD (or in packages without access to React internals),
+// they are left as they are instead.
+
+function warn(format) {
+  {
+    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+      args[_key - 1] = arguments[_key];
+    }
+
+    printWarning('warn', format, args);
+  }
+}
+function error(format) {
+  {
+    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
+      args[_key2 - 1] = arguments[_key2];
+    }
+
+    printWarning('error', format, args);
+  }
+}
+
+function printWarning(level, format, args) {
+  // When changing this logic, you might want to also
+  // update consoleWithStackDev.www.js as well.
+  {
+    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
+    var stack = ReactDebugCurrentFrame.getStackAddendum();
+
+    if (stack !== '') {
+      format += '%s';
+      args = args.concat([stack]);
+    }
+
+    var argsWithFormat = args.map(function (item) {
+      return '' + item;
+    }); // Careful: RN currently depends on this prefix
+
+    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
+    // breaks IE9: https://github.com/facebook/react/issues/13610
+    // eslint-disable-next-line react-internal/no-production-logging
+
+    Function.prototype.apply.call(console[level], console, argsWithFormat);
+  }
+}
+
+var didWarnStateUpdateForUnmountedComponent = {};
+
+function warnNoop(publicInstance, callerName) {
+  {
+    var _constructor = publicInstance.constructor;
+    var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';
+    var warningKey = componentName + "." + callerName;
+
+    if (didWarnStateUpdateForUnmountedComponent[warningKey]) {
+      return;
+    }
+
+    error("Can't call %s on a component that is not yet mounted. " + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);
+
+    didWarnStateUpdateForUnmountedComponent[warningKey] = true;
+  }
+}
+/**
+ * This is the abstract API for an update queue.
+ */
+
+
+var ReactNoopUpdateQueue = {
+  /**
+   * Checks whether or not this composite component is mounted.
+   * @param {ReactClass} publicInstance The instance we want to test.
+   * @return {boolean} True if mounted, false otherwise.
+   * @protected
+   * @final
+   */
+  isMounted: function (publicInstance) {
+    return false;
+  },
+
+  /**
+   * Forces an update. This should only be invoked when it is known with
+   * certainty that we are **not** in a DOM transaction.
+   *
+   * You may want to call this when you know that some deeper aspect of the
+   * component's state has changed but `setState` was not called.
+   *
+   * This will not invoke `shouldComponentUpdate`, but it will invoke
+   * `componentWillUpdate` and `componentDidUpdate`.
+   *
+   * @param {ReactClass} publicInstance The instance that should rerender.
+   * @param {?function} callback Called after component is updated.
+   * @param {?string} callerName name of the calling function in the public API.
+   * @internal
+   */
+  enqueueForceUpdate: function (publicInstance, callback, callerName) {
+    warnNoop(publicInstance, 'forceUpdate');
+  },
+
+  /**
+   * Replaces all of the state. Always use this or `setState` to mutate state.
+   * You should treat `this.state` as immutable.
+   *
+   * There is no guarantee that `this.state` will be immediately updated, so
+   * accessing `this.state` after calling this method may return the old value.
+   *
+   * @param {ReactClass} publicInstance The instance that should rerender.
+   * @param {object} completeState Next state.
+   * @param {?function} callback Called after component is updated.
+   * @param {?string} callerName name of the calling function in the public API.
+   * @internal
+   */
+  enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {
+    warnNoop(publicInstance, 'replaceState');
+  },
+
+  /**
+   * Sets a subset of the state. This only exists because _pendingState is
+   * internal. This provides a merging strategy that is not available to deep
+   * properties which is confusing. TODO: Expose pendingState or don't use it
+   * during the merge.
+   *
+   * @param {ReactClass} publicInstance The instance that should rerender.
+   * @param {object} partialState Next partial state to be merged with state.
+   * @param {?function} callback Called after component is updated.
+   * @param {?string} Name of the calling function in the public API.
+   * @internal
+   */
+  enqueueSetState: function (publicInstance, partialState, callback, callerName) {
+    warnNoop(publicInstance, 'setState');
+  }
+};
+
+var emptyObject = {};
+
+{
+  Object.freeze(emptyObject);
+}
+/**
+ * Base class helpers for the updating state of a component.
+ */
+
+
+function Component(props, context, updater) {
+  this.props = props;
+  this.context = context; // If a component has string refs, we will assign a different object later.
+
+  this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the
+  // renderer.
+
+  this.updater = updater || ReactNoopUpdateQueue;
+}
+
+Component.prototype.isReactComponent = {};
+/**
+ * Sets a subset of the state. Always use this to mutate
+ * state. You should treat `this.state` as immutable.
+ *
+ * There is no guarantee that `this.state` will be immediately updated, so
+ * accessing `this.state` after calling this method may return the old value.
+ *
+ * There is no guarantee that calls to `setState` will run synchronously,
+ * as they may eventually be batched together.  You can provide an optional
+ * callback that will be executed when the call to setState is actually
+ * completed.
+ *
+ * When a function is provided to setState, it will be called at some point in
+ * the future (not synchronously). It will be called with the up to date
+ * component arguments (state, props, context). These values can be different
+ * from this.* because your function may be called after receiveProps but before
+ * shouldComponentUpdate, and this new state, props, and context will not yet be
+ * assigned to this.
+ *
+ * @param {object|function} partialState Next partial state or function to
+ *        produce next partial state to be merged with current state.
+ * @param {?function} callback Called after state is updated.
+ * @final
+ * @protected
+ */
+
+Component.prototype.setState = function (partialState, callback) {
+  if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {
+    {
+      throw Error( "setState(...): takes an object of state variables to update or a function which returns an object of state variables." );
+    }
+  }
+
+  this.updater.enqueueSetState(this, partialState, callback, 'setState');
+};
+/**
+ * Forces an update. This should only be invoked when it is known with
+ * certainty that we are **not** in a DOM transaction.
+ *
+ * You may want to call this when you know that some deeper aspect of the
+ * component's state has changed but `setState` was not called.
+ *
+ * This will not invoke `shouldComponentUpdate`, but it will invoke
+ * `componentWillUpdate` and `componentDidUpdate`.
+ *
+ * @param {?function} callback Called after update is complete.
+ * @final
+ * @protected
+ */
+
+
+Component.prototype.forceUpdate = function (callback) {
+  this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');
+};
+/**
+ * Deprecated APIs. These APIs used to exist on classic React classes but since
+ * we would like to deprecate them, we're not going to move them over to this
+ * modern base class. Instead, we define a getter that warns if it's accessed.
+ */
+
+
+{
+  var deprecatedAPIs = {
+    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
+    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
+  };
+
+  var defineDeprecationWarning = function (methodName, info) {
+    Object.defineProperty(Component.prototype, methodName, {
+      get: function () {
+        warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);
+
+        return undefined;
+      }
+    });
+  };
+
+  for (var fnName in deprecatedAPIs) {
+    if (deprecatedAPIs.hasOwnProperty(fnName)) {
+      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
+    }
+  }
+}
+
+function ComponentDummy() {}
+
+ComponentDummy.prototype = Component.prototype;
+/**
+ * Convenience component with default shallow equality check for sCU.
+ */
+
+function PureComponent(props, context, updater) {
+  this.props = props;
+  this.context = context; // If a component has string refs, we will assign a different object later.
+
+  this.refs = emptyObject;
+  this.updater = updater || ReactNoopUpdateQueue;
+}
+
+var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();
+pureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.
+
+_assign(pureComponentPrototype, Component.prototype);
+
+pureComponentPrototype.isPureReactComponent = true;
+
+// an immutable object with a single mutable value
+function createRef() {
+  var refObject = {
+    current: null
+  };
+
+  {
+    Object.seal(refObject);
+  }
+
+  return refObject;
+}
+
+function getWrappedName(outerType, innerType, wrapperName) {
+  var functionName = innerType.displayName || innerType.name || '';
+  return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
+}
+
+function getContextName(type) {
+  return type.displayName || 'Context';
+}
+
+function getComponentName(type) {
+  if (type == null) {
+    // Host root, text node or just invalid type.
+    return null;
+  }
+
+  {
+    if (typeof type.tag === 'number') {
+      error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
+    }
+  }
+
+  if (typeof type === 'function') {
+    return type.displayName || type.name || null;
+  }
+
+  if (typeof type === 'string') {
+    return type;
+  }
+
+  switch (type) {
+    case exports.Fragment:
+      return 'Fragment';
+
+    case REACT_PORTAL_TYPE:
+      return 'Portal';
+
+    case exports.Profiler:
+      return 'Profiler';
+
+    case exports.StrictMode:
+      return 'StrictMode';
+
+    case exports.Suspense:
+      return 'Suspense';
+
+    case REACT_SUSPENSE_LIST_TYPE:
+      return 'SuspenseList';
+  }
+
+  if (typeof type === 'object') {
+    switch (type.$$typeof) {
+      case REACT_CONTEXT_TYPE:
+        var context = type;
+        return getContextName(context) + '.Consumer';
+
+      case REACT_PROVIDER_TYPE:
+        var provider = type;
+        return getContextName(provider._context) + '.Provider';
+
+      case REACT_FORWARD_REF_TYPE:
+        return getWrappedName(type, type.render, 'ForwardRef');
+
+      case REACT_MEMO_TYPE:
+        return getComponentName(type.type);
+
+      case REACT_BLOCK_TYPE:
+        return getComponentName(type._render);
+
+      case REACT_LAZY_TYPE:
+        {
+          var lazyComponent = type;
+          var payload = lazyComponent._payload;
+          var init = lazyComponent._init;
+
+          try {
+            return getComponentName(init(payload));
+          } catch (x) {
+            return null;
+          }
+        }
+    }
+  }
+
+  return null;
+}
+
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+var RESERVED_PROPS = {
+  key: true,
+  ref: true,
+  __self: true,
+  __source: true
+};
+var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;
+
+{
+  didWarnAboutStringRefs = {};
+}
+
+function hasValidRef(config) {
+  {
+    if (hasOwnProperty.call(config, 'ref')) {
+      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
+
+      if (getter && getter.isReactWarning) {
+        return false;
+      }
+    }
+  }
+
+  return config.ref !== undefined;
+}
+
+function hasValidKey(config) {
+  {
+    if (hasOwnProperty.call(config, 'key')) {
+      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
+
+      if (getter && getter.isReactWarning) {
+        return false;
+      }
+    }
+  }
+
+  return config.key !== undefined;
+}
+
+function defineKeyPropWarningGetter(props, displayName) {
+  var warnAboutAccessingKey = function () {
+    {
+      if (!specialPropKeyWarningShown) {
+        specialPropKeyWarningShown = true;
+
+        error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
+      }
+    }
+  };
+
+  warnAboutAccessingKey.isReactWarning = true;
+  Object.defineProperty(props, 'key', {
+    get: warnAboutAccessingKey,
+    configurable: true
+  });
+}
+
+function defineRefPropWarningGetter(props, displayName) {
+  var warnAboutAccessingRef = function () {
+    {
+      if (!specialPropRefWarningShown) {
+        specialPropRefWarningShown = true;
+
+        error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
+      }
+    }
+  };
+
+  warnAboutAccessingRef.isReactWarning = true;
+  Object.defineProperty(props, 'ref', {
+    get: warnAboutAccessingRef,
+    configurable: true
+  });
+}
+
+function warnIfStringRefCannotBeAutoConverted(config) {
+  {
+    if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {
+      var componentName = getComponentName(ReactCurrentOwner.current.type);
+
+      if (!didWarnAboutStringRefs[componentName]) {
+        error('Component "%s" contains the string ref "%s". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);
+
+        didWarnAboutStringRefs[componentName] = true;
+      }
+    }
+  }
+}
+/**
+ * Factory method to create a new React element. This no longer adheres to
+ * the class pattern, so do not use new to call it. Also, instanceof check
+ * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
+ * if something is a React Element.
+ *
+ * @param {*} type
+ * @param {*} props
+ * @param {*} key
+ * @param {string|object} ref
+ * @param {*} owner
+ * @param {*} self A *temporary* helper to detect places where `this` is
+ * different from the `owner` when React.createElement is called, so that we
+ * can warn. We want to get rid of owner and replace string `ref`s with arrow
+ * functions, and as long as `this` and owner are the same, there will be no
+ * change in behavior.
+ * @param {*} source An annotation object (added by a transpiler or otherwise)
+ * indicating filename, line number, and/or other information.
+ * @internal
+ */
+
+
+var ReactElement = function (type, key, ref, self, source, owner, props) {
+  var element = {
+    // This tag allows us to uniquely identify this as a React Element
+    $$typeof: REACT_ELEMENT_TYPE,
+    // Built-in properties that belong on the element
+    type: type,
+    key: key,
+    ref: ref,
+    props: props,
+    // Record the component responsible for creating this element.
+    _owner: owner
+  };
+
+  {
+    // The validation flag is currently mutative. We put it on
+    // an external backing store so that we can freeze the whole object.
+    // This can be replaced with a WeakMap once they are implemented in
+    // commonly used development environments.
+    element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
+    // the validation flag non-enumerable (where possible, which should
+    // include every environment we run tests in), so the test framework
+    // ignores it.
+
+    Object.defineProperty(element._store, 'validated', {
+      configurable: false,
+      enumerable: false,
+      writable: true,
+      value: false
+    }); // self and source are DEV only properties.
+
+    Object.defineProperty(element, '_self', {
+      configurable: false,
+      enumerable: false,
+      writable: false,
+      value: self
+    }); // Two elements created in two different places should be considered
+    // equal for testing purposes and therefore we hide it from enumeration.
+
+    Object.defineProperty(element, '_source', {
+      configurable: false,
+      enumerable: false,
+      writable: false,
+      value: source
+    });
+
+    if (Object.freeze) {
+      Object.freeze(element.props);
+      Object.freeze(element);
+    }
+  }
+
+  return element;
+};
+/**
+ * Create and return a new ReactElement of the given type.
+ * See https://reactjs.org/docs/react-api.html#createelement
+ */
+
+function createElement(type, config, children) {
+  var propName; // Reserved names are extracted
+
+  var props = {};
+  var key = null;
+  var ref = null;
+  var self = null;
+  var source = null;
+
+  if (config != null) {
+    if (hasValidRef(config)) {
+      ref = config.ref;
+
+      {
+        warnIfStringRefCannotBeAutoConverted(config);
+      }
+    }
+
+    if (hasValidKey(config)) {
+      key = '' + config.key;
+    }
+
+    self = config.__self === undefined ? null : config.__self;
+    source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object
+
+    for (propName in config) {
+      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
+        props[propName] = config[propName];
+      }
+    }
+  } // Children can be more than one argument, and those are transferred onto
+  // the newly allocated props object.
+
+
+  var childrenLength = arguments.length - 2;
+
+  if (childrenLength === 1) {
+    props.children = children;
+  } else if (childrenLength > 1) {
+    var childArray = Array(childrenLength);
+
+    for (var i = 0; i < childrenLength; i++) {
+      childArray[i] = arguments[i + 2];
+    }
+
+    {
+      if (Object.freeze) {
+        Object.freeze(childArray);
+      }
+    }
+
+    props.children = childArray;
+  } // Resolve default props
+
+
+  if (type && type.defaultProps) {
+    var defaultProps = type.defaultProps;
+
+    for (propName in defaultProps) {
+      if (props[propName] === undefined) {
+        props[propName] = defaultProps[propName];
+      }
+    }
+  }
+
+  {
+    if (key || ref) {
+      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
+
+      if (key) {
+        defineKeyPropWarningGetter(props, displayName);
+      }
+
+      if (ref) {
+        defineRefPropWarningGetter(props, displayName);
+      }
+    }
+  }
+
+  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
+}
+function cloneAndReplaceKey(oldElement, newKey) {
+  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);
+  return newElement;
+}
+/**
+ * Clone and return a new ReactElement using element as the starting point.
+ * See https://reactjs.org/docs/react-api.html#cloneelement
+ */
+
+function cloneElement(element, config, children) {
+  if (!!(element === null || element === undefined)) {
+    {
+      throw Error( "React.cloneElement(...): The argument must be a React element, but you passed " + element + "." );
+    }
+  }
+
+  var propName; // Original props are copied
+
+  var props = _assign({}, element.props); // Reserved names are extracted
+
+
+  var key = element.key;
+  var ref = element.ref; // Self is preserved since the owner is preserved.
+
+  var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a
+  // transpiler, and the original source is probably a better indicator of the
+  // true owner.
+
+  var source = element._source; // Owner will be preserved, unless ref is overridden
+
+  var owner = element._owner;
+
+  if (config != null) {
+    if (hasValidRef(config)) {
+      // Silently steal the ref from the parent.
+      ref = config.ref;
+      owner = ReactCurrentOwner.current;
+    }
+
+    if (hasValidKey(config)) {
+      key = '' + config.key;
+    } // Remaining properties override existing props
+
+
+    var defaultProps;
+
+    if (element.type && element.type.defaultProps) {
+      defaultProps = element.type.defaultProps;
+    }
+
+    for (propName in config) {
+      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
+        if (config[propName] === undefined && defaultProps !== undefined) {
+          // Resolve default props
+          props[propName] = defaultProps[propName];
+        } else {
+          props[propName] = config[propName];
+        }
+      }
+    }
+  } // Children can be more than one argument, and those are transferred onto
+  // the newly allocated props object.
+
+
+  var childrenLength = arguments.length - 2;
+
+  if (childrenLength === 1) {
+    props.children = children;
+  } else if (childrenLength > 1) {
+    var childArray = Array(childrenLength);
+
+    for (var i = 0; i < childrenLength; i++) {
+      childArray[i] = arguments[i + 2];
+    }
+
+    props.children = childArray;
+  }
+
+  return ReactElement(element.type, key, ref, self, source, owner, props);
+}
+/**
+ * Verifies the object is a ReactElement.
+ * See https://reactjs.org/docs/react-api.html#isvalidelement
+ * @param {?object} object
+ * @return {boolean} True if `object` is a ReactElement.
+ * @final
+ */
+
+function isValidElement(object) {
+  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
+}
+
+var SEPARATOR = '.';
+var SUBSEPARATOR = ':';
+/**
+ * Escape and wrap key so it is safe to use as a reactid
+ *
+ * @param {string} key to be escaped.
+ * @return {string} the escaped key.
+ */
+
+function escape(key) {
+  var escapeRegex = /[=:]/g;
+  var escaperLookup = {
+    '=': '=0',
+    ':': '=2'
+  };
+  var escapedString = key.replace(escapeRegex, function (match) {
+    return escaperLookup[match];
+  });
+  return '$' + escapedString;
+}
+/**
+ * TODO: Test that a single child and an array with one item have the same key
+ * pattern.
+ */
+
+
+var didWarnAboutMaps = false;
+var userProvidedKeyEscapeRegex = /\/+/g;
+
+function escapeUserProvidedKey(text) {
+  return text.replace(userProvidedKeyEscapeRegex, '$&/');
+}
+/**
+ * Generate a key string that identifies a element within a set.
+ *
+ * @param {*} element A element that could contain a manual key.
+ * @param {number} index Index that is used if a manual key is not provided.
+ * @return {string}
+ */
+
+
+function getElementKey(element, index) {
+  // Do some typechecking here since we call this blindly. We want to ensure
+  // that we don't block potential future ES APIs.
+  if (typeof element === 'object' && element !== null && element.key != null) {
+    // Explicit key
+    return escape('' + element.key);
+  } // Implicit key determined by the index in the set
+
+
+  return index.toString(36);
+}
+
+function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
+  var type = typeof children;
+
+  if (type === 'undefined' || type === 'boolean') {
+    // All of the above are perceived as null.
+    children = null;
+  }
+
+  var invokeCallback = false;
+
+  if (children === null) {
+    invokeCallback = true;
+  } else {
+    switch (type) {
+      case 'string':
+      case 'number':
+        invokeCallback = true;
+        break;
+
+      case 'object':
+        switch (children.$$typeof) {
+          case REACT_ELEMENT_TYPE:
+          case REACT_PORTAL_TYPE:
+            invokeCallback = true;
+        }
+
+    }
+  }
+
+  if (invokeCallback) {
+    var _child = children;
+    var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array
+    // so that it's consistent if the number of children grows:
+
+    var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;
+
+    if (Array.isArray(mappedChild)) {
+      var escapedChildKey = '';
+
+      if (childKey != null) {
+        escapedChildKey = escapeUserProvidedKey(childKey) + '/';
+      }
+
+      mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {
+        return c;
+      });
+    } else if (mappedChild != null) {
+      if (isValidElement(mappedChild)) {
+        mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as
+        // traverseAllChildren used to do for objects as children
+        escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key
+        mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number
+        escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);
+      }
+
+      array.push(mappedChild);
+    }
+
+    return 1;
+  }
+
+  var child;
+  var nextName;
+  var subtreeCount = 0; // Count of children found in the current subtree.
+
+  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;
+
+  if (Array.isArray(children)) {
+    for (var i = 0; i < children.length; i++) {
+      child = children[i];
+      nextName = nextNamePrefix + getElementKey(child, i);
+      subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);
+    }
+  } else {
+    var iteratorFn = getIteratorFn(children);
+
+    if (typeof iteratorFn === 'function') {
+      var iterableChildren = children;
+
+      {
+        // Warn about using Maps as children
+        if (iteratorFn === iterableChildren.entries) {
+          if (!didWarnAboutMaps) {
+            warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');
+          }
+
+          didWarnAboutMaps = true;
+        }
+      }
+
+      var iterator = iteratorFn.call(iterableChildren);
+      var step;
+      var ii = 0;
+
+      while (!(step = iterator.next()).done) {
+        child = step.value;
+        nextName = nextNamePrefix + getElementKey(child, ii++);
+        subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);
+      }
+    } else if (type === 'object') {
+      var childrenString = '' + children;
+
+      {
+        {
+          throw Error( "Objects are not valid as a React child (found: " + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + "). If you meant to render a collection of children, use an array instead." );
+        }
+      }
+    }
+  }
+
+  return subtreeCount;
+}
+
+/**
+ * Maps children that are typically specified as `props.children`.
+ *
+ * See https://reactjs.org/docs/react-api.html#reactchildrenmap
+ *
+ * The provided mapFunction(child, index) will be called for each
+ * leaf child.
+ *
+ * @param {?*} children Children tree container.
+ * @param {function(*, int)} func The map function.
+ * @param {*} context Context for mapFunction.
+ * @return {object} Object containing the ordered map of results.
+ */
+function mapChildren(children, func, context) {
+  if (children == null) {
+    return children;
+  }
+
+  var result = [];
+  var count = 0;
+  mapIntoArray(children, result, '', '', function (child) {
+    return func.call(context, child, count++);
+  });
+  return result;
+}
+/**
+ * Count the number of children that are typically specified as
+ * `props.children`.
+ *
+ * See https://reactjs.org/docs/react-api.html#reactchildrencount
+ *
+ * @param {?*} children Children tree container.
+ * @return {number} The number of children.
+ */
+
+
+function countChildren(children) {
+  var n = 0;
+  mapChildren(children, function () {
+    n++; // Don't return anything
+  });
+  return n;
+}
+
+/**
+ * Iterates through children that are typically specified as `props.children`.
+ *
+ * See https://reactjs.org/docs/react-api.html#reactchildrenforeach
+ *
+ * The provided forEachFunc(child, index) will be called for each
+ * leaf child.
+ *
+ * @param {?*} children Children tree container.
+ * @param {function(*, int)} forEachFunc
+ * @param {*} forEachContext Context for forEachContext.
+ */
+function forEachChildren(children, forEachFunc, forEachContext) {
+  mapChildren(children, function () {
+    forEachFunc.apply(this, arguments); // Don't return anything.
+  }, forEachContext);
+}
+/**
+ * Flatten a children object (typically specified as `props.children`) and
+ * return an array with appropriately re-keyed children.
+ *
+ * See https://reactjs.org/docs/react-api.html#reactchildrentoarray
+ */
+
+
+function toArray(children) {
+  return mapChildren(children, function (child) {
+    return child;
+  }) || [];
+}
+/**
+ * Returns the first child in a collection of children and verifies that there
+ * is only one child in the collection.
+ *
+ * See https://reactjs.org/docs/react-api.html#reactchildrenonly
+ *
+ * The current implementation of this function assumes that a single child gets
+ * passed without a wrapper, but the purpose of this helper function is to
+ * abstract away the particular structure of children.
+ *
+ * @param {?object} children Child collection structure.
+ * @return {ReactElement} The first and only `ReactElement` contained in the
+ * structure.
+ */
+
+
+function onlyChild(children) {
+  if (!isValidElement(children)) {
+    {
+      throw Error( "React.Children.only expected to receive a single React element child." );
+    }
+  }
+
+  return children;
+}
+
+function createContext(defaultValue, calculateChangedBits) {
+  if (calculateChangedBits === undefined) {
+    calculateChangedBits = null;
+  } else {
+    {
+      if (calculateChangedBits !== null && typeof calculateChangedBits !== 'function') {
+        error('createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits);
+      }
+    }
+  }
+
+  var context = {
+    $$typeof: REACT_CONTEXT_TYPE,
+    _calculateChangedBits: calculateChangedBits,
+    // As a workaround to support multiple concurrent renderers, we categorize
+    // some renderers as primary and others as secondary. We only expect
+    // there to be two concurrent renderers at most: React Native (primary) and
+    // Fabric (secondary); React DOM (primary) and React ART (secondary).
+    // Secondary renderers store their context values on separate fields.
+    _currentValue: defaultValue,
+    _currentValue2: defaultValue,
+    // Used to track how many concurrent renderers this context currently
+    // supports within in a single renderer. Such as parallel server rendering.
+    _threadCount: 0,
+    // These are circular
+    Provider: null,
+    Consumer: null
+  };
+  context.Provider = {
+    $$typeof: REACT_PROVIDER_TYPE,
+    _context: context
+  };
+  var hasWarnedAboutUsingNestedContextConsumers = false;
+  var hasWarnedAboutUsingConsumerProvider = false;
+  var hasWarnedAboutDisplayNameOnConsumer = false;
+
+  {
+    // A separate object, but proxies back to the original context object for
+    // backwards compatibility. It has a different $$typeof, so we can properly
+    // warn for the incorrect usage of Context as a Consumer.
+    var Consumer = {
+      $$typeof: REACT_CONTEXT_TYPE,
+      _context: context,
+      _calculateChangedBits: context._calculateChangedBits
+    }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here
+
+    Object.defineProperties(Consumer, {
+      Provider: {
+        get: function () {
+          if (!hasWarnedAboutUsingConsumerProvider) {
+            hasWarnedAboutUsingConsumerProvider = true;
+
+            error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');
+          }
+
+          return context.Provider;
+        },
+        set: function (_Provider) {
+          context.Provider = _Provider;
+        }
+      },
+      _currentValue: {
+        get: function () {
+          return context._currentValue;
+        },
+        set: function (_currentValue) {
+          context._currentValue = _currentValue;
+        }
+      },
+      _currentValue2: {
+        get: function () {
+          return context._currentValue2;
+        },
+        set: function (_currentValue2) {
+          context._currentValue2 = _currentValue2;
+        }
+      },
+      _threadCount: {
+        get: function () {
+          return context._threadCount;
+        },
+        set: function (_threadCount) {
+          context._threadCount = _threadCount;
+        }
+      },
+      Consumer: {
+        get: function () {
+          if (!hasWarnedAboutUsingNestedContextConsumers) {
+            hasWarnedAboutUsingNestedContextConsumers = true;
+
+            error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');
+          }
+
+          return context.Consumer;
+        }
+      },
+      displayName: {
+        get: function () {
+          return context.displayName;
+        },
+        set: function (displayName) {
+          if (!hasWarnedAboutDisplayNameOnConsumer) {
+            warn('Setting `displayName` on Context.Consumer has no effect. ' + "You should set it directly on the context with Context.displayName = '%s'.", displayName);
+
+            hasWarnedAboutDisplayNameOnConsumer = true;
+          }
+        }
+      }
+    }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty
+
+    context.Consumer = Consumer;
+  }
+
+  {
+    context._currentRenderer = null;
+    context._currentRenderer2 = null;
+  }
+
+  return context;
+}
+
+var Uninitialized = -1;
+var Pending = 0;
+var Resolved = 1;
+var Rejected = 2;
+
+function lazyInitializer(payload) {
+  if (payload._status === Uninitialized) {
+    var ctor = payload._result;
+    var thenable = ctor(); // Transition to the next state.
+
+    var pending = payload;
+    pending._status = Pending;
+    pending._result = thenable;
+    thenable.then(function (moduleObject) {
+      if (payload._status === Pending) {
+        var defaultExport = moduleObject.default;
+
+        {
+          if (defaultExport === undefined) {
+            error('lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\n\nYour code should look like: \n  ' + // Break up imports to avoid accidentally parsing them as dependencies.
+            'const MyComponent = lazy(() => imp' + "ort('./MyComponent'))", moduleObject);
+          }
+        } // Transition to the next state.
+
+
+        var resolved = payload;
+        resolved._status = Resolved;
+        resolved._result = defaultExport;
+      }
+    }, function (error) {
+      if (payload._status === Pending) {
+        // Transition to the next state.
+        var rejected = payload;
+        rejected._status = Rejected;
+        rejected._result = error;
+      }
+    });
+  }
+
+  if (payload._status === Resolved) {
+    return payload._result;
+  } else {
+    throw payload._result;
+  }
+}
+
+function lazy(ctor) {
+  var payload = {
+    // We use these fields to store the result.
+    _status: -1,
+    _result: ctor
+  };
+  var lazyType = {
+    $$typeof: REACT_LAZY_TYPE,
+    _payload: payload,
+    _init: lazyInitializer
+  };
+
+  {
+    // In production, this would just set it on the object.
+    var defaultProps;
+    var propTypes; // $FlowFixMe
+
+    Object.defineProperties(lazyType, {
+      defaultProps: {
+        configurable: true,
+        get: function () {
+          return defaultProps;
+        },
+        set: function (newDefaultProps) {
+          error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');
+
+          defaultProps = newDefaultProps; // Match production behavior more closely:
+          // $FlowFixMe
+
+          Object.defineProperty(lazyType, 'defaultProps', {
+            enumerable: true
+          });
+        }
+      },
+      propTypes: {
+        configurable: true,
+        get: function () {
+          return propTypes;
+        },
+        set: function (newPropTypes) {
+          error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');
+
+          propTypes = newPropTypes; // Match production behavior more closely:
+          // $FlowFixMe
+
+          Object.defineProperty(lazyType, 'propTypes', {
+            enumerable: true
+          });
+        }
+      }
+    });
+  }
+
+  return lazyType;
+}
+
+function forwardRef(render) {
+  {
+    if (render != null && render.$$typeof === REACT_MEMO_TYPE) {
+      error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');
+    } else if (typeof render !== 'function') {
+      error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);
+    } else {
+      if (render.length !== 0 && render.length !== 2) {
+        error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');
+      }
+    }
+
+    if (render != null) {
+      if (render.defaultProps != null || render.propTypes != null) {
+        error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');
+      }
+    }
+  }
+
+  var elementType = {
+    $$typeof: REACT_FORWARD_REF_TYPE,
+    render: render
+  };
+
+  {
+    var ownName;
+    Object.defineProperty(elementType, 'displayName', {
+      enumerable: false,
+      configurable: true,
+      get: function () {
+        return ownName;
+      },
+      set: function (name) {
+        ownName = name;
+
+        if (render.displayName == null) {
+          render.displayName = name;
+        }
+      }
+    });
+  }
+
+  return elementType;
+}
+
+// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
+
+var enableScopeAPI = false; // Experimental Create Event Handle API.
+
+function isValidElementType(type) {
+  if (typeof type === 'string' || typeof type === 'function') {
+    return true;
+  } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
+
+
+  if (type === exports.Fragment || type === exports.Profiler || type === REACT_DEBUG_TRACING_MODE_TYPE || type === exports.StrictMode || type === exports.Suspense || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {
+    return true;
+  }
+
+  if (typeof type === 'object' && type !== null) {
+    if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+function memo(type, compare) {
+  {
+    if (!isValidElementType(type)) {
+      error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);
+    }
+  }
+
+  var elementType = {
+    $$typeof: REACT_MEMO_TYPE,
+    type: type,
+    compare: compare === undefined ? null : compare
+  };
+
+  {
+    var ownName;
+    Object.defineProperty(elementType, 'displayName', {
+      enumerable: false,
+      configurable: true,
+      get: function () {
+        return ownName;
+      },
+      set: function (name) {
+        ownName = name;
+
+        if (type.displayName == null) {
+          type.displayName = name;
+        }
+      }
+    });
+  }
+
+  return elementType;
+}
+
+function resolveDispatcher() {
+  var dispatcher = ReactCurrentDispatcher.current;
+
+  if (!(dispatcher !== null)) {
+    {
+      throw Error( "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem." );
+    }
+  }
+
+  return dispatcher;
+}
+
+function useContext(Context, unstable_observedBits) {
+  var dispatcher = resolveDispatcher();
+
+  {
+    if (unstable_observedBits !== undefined) {
+      error('useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\n\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://reactjs.org/link/rules-of-hooks' : '');
+    } // TODO: add a more generic warning for invalid values.
+
+
+    if (Context._context !== undefined) {
+      var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs
+      // and nobody should be using this in existing code.
+
+      if (realContext.Consumer === Context) {
+        error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');
+      } else if (realContext.Provider === Context) {
+        error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');
+      }
+    }
+  }
+
+  return dispatcher.useContext(Context, unstable_observedBits);
+}
+function useState(initialState) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useState(initialState);
+}
+function useReducer(reducer, initialArg, init) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useReducer(reducer, initialArg, init);
+}
+function useRef(initialValue) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useRef(initialValue);
+}
+function useEffect(create, deps) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useEffect(create, deps);
+}
+function useLayoutEffect(create, deps) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useLayoutEffect(create, deps);
+}
+function useCallback(callback, deps) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useCallback(callback, deps);
+}
+function useMemo(create, deps) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useMemo(create, deps);
+}
+function useImperativeHandle(ref, create, deps) {
+  var dispatcher = resolveDispatcher();
+  return dispatcher.useImperativeHandle(ref, create, deps);
+}
+function useDebugValue(value, formatterFn) {
+  {
+    var dispatcher = resolveDispatcher();
+    return dispatcher.useDebugValue(value, formatterFn);
+  }
+}
+
+// Helpers to patch console.logs to avoid logging during side-effect free
+// replaying on render function. This currently only patches the object
+// lazily which won't cover if the log function was extracted eagerly.
+// We could also eagerly patch the method.
+var disabledDepth = 0;
+var prevLog;
+var prevInfo;
+var prevWarn;
+var prevError;
+var prevGroup;
+var prevGroupCollapsed;
+var prevGroupEnd;
+
+function disabledLog() {}
+
+disabledLog.__reactDisabledLog = true;
+function disableLogs() {
+  {
+    if (disabledDepth === 0) {
+      /* eslint-disable react-internal/no-production-logging */
+      prevLog = console.log;
+      prevInfo = console.info;
+      prevWarn = console.warn;
+      prevError = console.error;
+      prevGroup = console.group;
+      prevGroupCollapsed = console.groupCollapsed;
+      prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099
+
+      var props = {
+        configurable: true,
+        enumerable: true,
+        value: disabledLog,
+        writable: true
+      }; // $FlowFixMe Flow thinks console is immutable.
+
+      Object.defineProperties(console, {
+        info: props,
+        log: props,
+        warn: props,
+        error: props,
+        group: props,
+        groupCollapsed: props,
+        groupEnd: props
+      });
+      /* eslint-enable react-internal/no-production-logging */
+    }
+
+    disabledDepth++;
+  }
+}
+function reenableLogs() {
+  {
+    disabledDepth--;
+
+    if (disabledDepth === 0) {
+      /* eslint-disable react-internal/no-production-logging */
+      var props = {
+        configurable: true,
+        enumerable: true,
+        writable: true
+      }; // $FlowFixMe Flow thinks console is immutable.
+
+      Object.defineProperties(console, {
+        log: _assign({}, props, {
+          value: prevLog
+        }),
+        info: _assign({}, props, {
+          value: prevInfo
+        }),
+        warn: _assign({}, props, {
+          value: prevWarn
+        }),
+        error: _assign({}, props, {
+          value: prevError
+        }),
+        group: _assign({}, props, {
+          value: prevGroup
+        }),
+        groupCollapsed: _assign({}, props, {
+          value: prevGroupCollapsed
+        }),
+        groupEnd: _assign({}, props, {
+          value: prevGroupEnd
+        })
+      });
+      /* eslint-enable react-internal/no-production-logging */
+    }
+
+    if (disabledDepth < 0) {
+      error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');
+    }
+  }
+}
+
+var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;
+var prefix;
+function describeBuiltInComponentFrame(name, source, ownerFn) {
+  {
+    if (prefix === undefined) {
+      // Extract the VM specific prefix used by each line.
+      try {
+        throw Error();
+      } catch (x) {
+        var match = x.stack.trim().match(/\n( *(at )?)/);
+        prefix = match && match[1] || '';
+      }
+    } // We use the prefix to ensure our stacks line up with native stack frames.
+
+
+    return '\n' + prefix + name;
+  }
+}
+var reentry = false;
+var componentFrameCache;
+
+{
+  var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;
+  componentFrameCache = new PossiblyWeakMap();
+}
+
+function describeNativeComponentFrame(fn, construct) {
+  // If something asked for a stack inside a fake render, it should get ignored.
+  if (!fn || reentry) {
+    return '';
+  }
+
+  {
+    var frame = componentFrameCache.get(fn);
+
+    if (frame !== undefined) {
+      return frame;
+    }
+  }
+
+  var control;
+  reentry = true;
+  var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.
+
+  Error.prepareStackTrace = undefined;
+  var previousDispatcher;
+
+  {
+    previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function
+    // for warnings.
+
+    ReactCurrentDispatcher$1.current = null;
+    disableLogs();
+  }
+
+  try {
+    // This should throw.
+    if (construct) {
+      // Something should be setting the props in the constructor.
+      var Fake = function () {
+        throw Error();
+      }; // $FlowFixMe
+
+
+      Object.defineProperty(Fake.prototype, 'props', {
+        set: function () {
+          // We use a throwing setter instead of frozen or non-writable props
+          // because that won't throw in a non-strict mode function.
+          throw Error();
+        }
+      });
+
+      if (typeof Reflect === 'object' && Reflect.construct) {
+        // We construct a different control for this case to include any extra
+        // frames added by the construct call.
+        try {
+          Reflect.construct(Fake, []);
+        } catch (x) {
+          control = x;
+        }
+
+        Reflect.construct(fn, [], Fake);
+      } else {
+        try {
+          Fake.call();
+        } catch (x) {
+          control = x;
+        }
+
+        fn.call(Fake.prototype);
+      }
+    } else {
+      try {
+        throw Error();
+      } catch (x) {
+        control = x;
+      }
+
+      fn();
+    }
+  } catch (sample) {
+    // This is inlined manually because closure doesn't do it for us.
+    if (sample && control && typeof sample.stack === 'string') {
+      // This extracts the first frame from the sample that isn't also in the control.
+      // Skipping one frame that we assume is the frame that calls the two.
+      var sampleLines = sample.stack.split('\n');
+      var controlLines = control.stack.split('\n');
+      var s = sampleLines.length - 1;
+      var c = controlLines.length - 1;
+
+      while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {
+        // We expect at least one stack frame to be shared.
+        // Typically this will be the root most one. However, stack frames may be
+        // cut off due to maximum stack limits. In this case, one maybe cut off
+        // earlier than the other. We assume that the sample is longer or the same
+        // and there for cut off earlier. So we should find the root most frame in
+        // the sample somewhere in the control.
+        c--;
+      }
+
+      for (; s >= 1 && c >= 0; s--, c--) {
+        // Next we find the first one that isn't the same which should be the
+        // frame that called our sample function and the control.
+        if (sampleLines[s] !== controlLines[c]) {
+          // In V8, the first line is describing the message but other VMs don't.
+          // If we're about to return the first line, and the control is also on the same
+          // line, that's a pretty good indicator that our sample threw at same line as
+          // the control. I.e. before we entered the sample frame. So we ignore this result.
+          // This can happen if you passed a class to function component, or non-function.
+          if (s !== 1 || c !== 1) {
+            do {
+              s--;
+              c--; // We may still have similar intermediate frames from the construct call.
+              // The next one that isn't the same should be our match though.
+
+              if (c < 0 || sampleLines[s] !== controlLines[c]) {
+                // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier.
+                var _frame = '\n' + sampleLines[s].replace(' at new ', ' at ');
+
+                {
+                  if (typeof fn === 'function') {
+                    componentFrameCache.set(fn, _frame);
+                  }
+                } // Return the line we found.
+
+
+                return _frame;
+              }
+            } while (s >= 1 && c >= 0);
+          }
+
+          break;
+        }
+      }
+    }
+  } finally {
+    reentry = false;
+
+    {
+      ReactCurrentDispatcher$1.current = previousDispatcher;
+      reenableLogs();
+    }
+
+    Error.prepareStackTrace = previousPrepareStackTrace;
+  } // Fallback to just using the name if we couldn't make it throw.
+
+
+  var name = fn ? fn.displayName || fn.name : '';
+  var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';
+
+  {
+    if (typeof fn === 'function') {
+      componentFrameCache.set(fn, syntheticFrame);
+    }
+  }
+
+  return syntheticFrame;
+}
+function describeFunctionComponentFrame(fn, source, ownerFn) {
+  {
+    return describeNativeComponentFrame(fn, false);
+  }
+}
+
+function shouldConstruct(Component) {
+  var prototype = Component.prototype;
+  return !!(prototype && prototype.isReactComponent);
+}
+
+function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
+
+  if (type == null) {
+    return '';
+  }
+
+  if (typeof type === 'function') {
+    {
+      return describeNativeComponentFrame(type, shouldConstruct(type));
+    }
+  }
+
+  if (typeof type === 'string') {
+    return describeBuiltInComponentFrame(type);
+  }
+
+  switch (type) {
+    case exports.Suspense:
+      return describeBuiltInComponentFrame('Suspense');
+
+    case REACT_SUSPENSE_LIST_TYPE:
+      return describeBuiltInComponentFrame('SuspenseList');
+  }
+
+  if (typeof type === 'object') {
+    switch (type.$$typeof) {
+      case REACT_FORWARD_REF_TYPE:
+        return describeFunctionComponentFrame(type.render);
+
+      case REACT_MEMO_TYPE:
+        // Memo may contain any component type so we recursively resolve it.
+        return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);
+
+      case REACT_BLOCK_TYPE:
+        return describeFunctionComponentFrame(type._render);
+
+      case REACT_LAZY_TYPE:
+        {
+          var lazyComponent = type;
+          var payload = lazyComponent._payload;
+          var init = lazyComponent._init;
+
+          try {
+            // Lazy may contain any component type so we recursively resolve it.
+            return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);
+          } catch (x) {}
+        }
+    }
+  }
+
+  return '';
+}
+
+var loggedTypeFailures = {};
+var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
+
+function setCurrentlyValidatingElement(element) {
+  {
+    if (element) {
+      var owner = element._owner;
+      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
+      ReactDebugCurrentFrame$1.setExtraStackFrame(stack);
+    } else {
+      ReactDebugCurrentFrame$1.setExtraStackFrame(null);
+    }
+  }
+}
+
+function checkPropTypes(typeSpecs, values, location, componentName, element) {
+  {
+    // $FlowFixMe This is okay but Flow doesn't know it.
+    var has = Function.call.bind(Object.prototype.hasOwnProperty);
+
+    for (var typeSpecName in typeSpecs) {
+      if (has(typeSpecs, typeSpecName)) {
+        var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
+        // fail the render phase where it didn't fail before. So we log it.
+        // After these have been cleaned up, we'll let them throw.
+
+        try {
+          // This is intentionally an invariant that gets caught. It's the same
+          // behavior as without this statement except with a better message.
+          if (typeof typeSpecs[typeSpecName] !== 'function') {
+            var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
+            err.name = 'Invariant Violation';
+            throw err;
+          }
+
+          error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
+        } catch (ex) {
+          error$1 = ex;
+        }
+
+        if (error$1 && !(error$1 instanceof Error)) {
+          setCurrentlyValidatingElement(element);
+
+          error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
+
+          setCurrentlyValidatingElement(null);
+        }
+
+        if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
+          // Only monitor this failure once because there tends to be a lot of the
+          // same error.
+          loggedTypeFailures[error$1.message] = true;
+          setCurrentlyValidatingElement(element);
+
+          error('Failed %s type: %s', location, error$1.message);
+
+          setCurrentlyValidatingElement(null);
+        }
+      }
+    }
+  }
+}
+
+function setCurrentlyValidatingElement$1(element) {
+  {
+    if (element) {
+      var owner = element._owner;
+      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
+      setExtraStackFrame(stack);
+    } else {
+      setExtraStackFrame(null);
+    }
+  }
+}
+
+var propTypesMisspellWarningShown;
+
+{
+  propTypesMisspellWarningShown = false;
+}
+
+function getDeclarationErrorAddendum() {
+  if (ReactCurrentOwner.current) {
+    var name = getComponentName(ReactCurrentOwner.current.type);
+
+    if (name) {
+      return '\n\nCheck the render method of `' + name + '`.';
+    }
+  }
+
+  return '';
+}
+
+function getSourceInfoErrorAddendum(source) {
+  if (source !== undefined) {
+    var fileName = source.fileName.replace(/^.*[\\\/]/, '');
+    var lineNumber = source.lineNumber;
+    return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
+  }
+
+  return '';
+}
+
+function getSourceInfoErrorAddendumForProps(elementProps) {
+  if (elementProps !== null && elementProps !== undefined) {
+    return getSourceInfoErrorAddendum(elementProps.__source);
+  }
+
+  return '';
+}
+/**
+ * Warn if there's no key explicitly set on dynamic arrays of children or
+ * object keys are not valid. This allows us to keep track of children between
+ * updates.
+ */
+
+
+var ownerHasKeyUseWarning = {};
+
+function getCurrentComponentErrorInfo(parentType) {
+  var info = getDeclarationErrorAddendum();
+
+  if (!info) {
+    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
+
+    if (parentName) {
+      info = "\n\nCheck the top-level render call using <" + parentName + ">.";
+    }
+  }
+
+  return info;
+}
+/**
+ * Warn if the element doesn't have an explicit key assigned to it.
+ * This element is in an array. The array could grow and shrink or be
+ * reordered. All children that haven't already been validated are required to
+ * have a "key" property assigned to it. Error statuses are cached so a warning
+ * will only be shown once.
+ *
+ * @internal
+ * @param {ReactElement} element Element that requires a key.
+ * @param {*} parentType element's parent's type.
+ */
+
+
+function validateExplicitKey(element, parentType) {
+  if (!element._store || element._store.validated || element.key != null) {
+    return;
+  }
+
+  element._store.validated = true;
+  var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
+
+  if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
+    return;
+  }
+
+  ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
+  // property, it may be the creator of the child that's responsible for
+  // assigning it a key.
+
+  var childOwner = '';
+
+  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {
+    // Give the component that originally created this child.
+    childOwner = " It was passed a child from " + getComponentName(element._owner.type) + ".";
+  }
+
+  {
+    setCurrentlyValidatingElement$1(element);
+
+    error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
+
+    setCurrentlyValidatingElement$1(null);
+  }
+}
+/**
+ * Ensure that every element either is passed in a static location, in an
+ * array with an explicit keys property defined, or in an object literal
+ * with valid key property.
+ *
+ * @internal
+ * @param {ReactNode} node Statically passed child of any type.
+ * @param {*} parentType node's parent's type.
+ */
+
+
+function validateChildKeys(node, parentType) {
+  if (typeof node !== 'object') {
+    return;
+  }
+
+  if (Array.isArray(node)) {
+    for (var i = 0; i < node.length; i++) {
+      var child = node[i];
+
+      if (isValidElement(child)) {
+        validateExplicitKey(child, parentType);
+      }
+    }
+  } else if (isValidElement(node)) {
+    // This element was passed in a valid location.
+    if (node._store) {
+      node._store.validated = true;
+    }
+  } else if (node) {
+    var iteratorFn = getIteratorFn(node);
+
+    if (typeof iteratorFn === 'function') {
+      // Entry iterators used to provide implicit keys,
+      // but now we print a separate warning for them later.
+      if (iteratorFn !== node.entries) {
+        var iterator = iteratorFn.call(node);
+        var step;
+
+        while (!(step = iterator.next()).done) {
+          if (isValidElement(step.value)) {
+            validateExplicitKey(step.value, parentType);
+          }
+        }
+      }
+    }
+  }
+}
+/**
+ * Given an element, validate that its props follow the propTypes definition,
+ * provided by the type.
+ *
+ * @param {ReactElement} element
+ */
+
+
+function validatePropTypes(element) {
+  {
+    var type = element.type;
+
+    if (type === null || type === undefined || typeof type === 'string') {
+      return;
+    }
+
+    var propTypes;
+
+    if (typeof type === 'function') {
+      propTypes = type.propTypes;
+    } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
+    // Inner props are checked in the reconciler.
+    type.$$typeof === REACT_MEMO_TYPE)) {
+      propTypes = type.propTypes;
+    } else {
+      return;
+    }
+
+    if (propTypes) {
+      // Intentionally inside to avoid triggering lazy initializers:
+      var name = getComponentName(type);
+      checkPropTypes(propTypes, element.props, 'prop', name, element);
+    } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
+      propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
+
+      var _name = getComponentName(type);
+
+      error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
+    }
+
+    if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
+      error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
+    }
+  }
+}
+/**
+ * Given a fragment, validate that it can only be provided with fragment props
+ * @param {ReactElement} fragment
+ */
+
+
+function validateFragmentProps(fragment) {
+  {
+    var keys = Object.keys(fragment.props);
+
+    for (var i = 0; i < keys.length; i++) {
+      var key = keys[i];
+
+      if (key !== 'children' && key !== 'key') {
+        setCurrentlyValidatingElement$1(fragment);
+
+        error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
+
+        setCurrentlyValidatingElement$1(null);
+        break;
+      }
+    }
+
+    if (fragment.ref !== null) {
+      setCurrentlyValidatingElement$1(fragment);
+
+      error('Invalid attribute `ref` supplied to `React.Fragment`.');
+
+      setCurrentlyValidatingElement$1(null);
+    }
+  }
+}
+function createElementWithValidation(type, props, children) {
+  var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
+  // succeed and there will likely be errors in render.
+
+  if (!validType) {
+    var info = '';
+
+    if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
+      info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
+    }
+
+    var sourceInfo = getSourceInfoErrorAddendumForProps(props);
+
+    if (sourceInfo) {
+      info += sourceInfo;
+    } else {
+      info += getDeclarationErrorAddendum();
+    }
+
+    var typeString;
+
+    if (type === null) {
+      typeString = 'null';
+    } else if (Array.isArray(type)) {
+      typeString = 'array';
+    } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
+      typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
+      info = ' Did you accidentally export a JSX literal instead of a component?';
+    } else {
+      typeString = typeof type;
+    }
+
+    {
+      error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
+    }
+  }
+
+  var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.
+  // TODO: Drop this when these are no longer allowed as the type argument.
+
+  if (element == null) {
+    return element;
+  } // Skip key warning if the type isn't valid since our key validation logic
+  // doesn't expect a non-string/function type and can throw confusing errors.
+  // We don't want exception behavior to differ between dev and prod.
+  // (Rendering will throw with a helpful message and as soon as the type is
+  // fixed, the key warnings will appear.)
+
+
+  if (validType) {
+    for (var i = 2; i < arguments.length; i++) {
+      validateChildKeys(arguments[i], type);
+    }
+  }
+
+  if (type === exports.Fragment) {
+    validateFragmentProps(element);
+  } else {
+    validatePropTypes(element);
+  }
+
+  return element;
+}
+var didWarnAboutDeprecatedCreateFactory = false;
+function createFactoryWithValidation(type) {
+  var validatedFactory = createElementWithValidation.bind(null, type);
+  validatedFactory.type = type;
+
+  {
+    if (!didWarnAboutDeprecatedCreateFactory) {
+      didWarnAboutDeprecatedCreateFactory = true;
+
+      warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');
+    } // Legacy hook: remove it
+
+
+    Object.defineProperty(validatedFactory, 'type', {
+      enumerable: false,
+      get: function () {
+        warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');
+
+        Object.defineProperty(this, 'type', {
+          value: type
+        });
+        return type;
+      }
+    });
+  }
+
+  return validatedFactory;
+}
+function cloneElementWithValidation(element, props, children) {
+  var newElement = cloneElement.apply(this, arguments);
+
+  for (var i = 2; i < arguments.length; i++) {
+    validateChildKeys(arguments[i], newElement.type);
+  }
+
+  validatePropTypes(newElement);
+  return newElement;
+}
+
+{
+
+  try {
+    var frozenObject = Object.freeze({});
+    /* eslint-disable no-new */
+
+    new Map([[frozenObject, null]]);
+    new Set([frozenObject]);
+    /* eslint-enable no-new */
+  } catch (e) {
+  }
+}
+
+var createElement$1 =  createElementWithValidation ;
+var cloneElement$1 =  cloneElementWithValidation ;
+var createFactory =  createFactoryWithValidation ;
+var Children = {
+  map: mapChildren,
+  forEach: forEachChildren,
+  count: countChildren,
+  toArray: toArray,
+  only: onlyChild
+};
+
+exports.Children = Children;
+exports.Component = Component;
+exports.PureComponent = PureComponent;
+exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;
+exports.cloneElement = cloneElement$1;
+exports.createContext = createContext;
+exports.createElement = createElement$1;
+exports.createFactory = createFactory;
+exports.createRef = createRef;
+exports.forwardRef = forwardRef;
+exports.isValidElement = isValidElement;
+exports.lazy = lazy;
+exports.memo = memo;
+exports.useCallback = useCallback;
+exports.useContext = useContext;
+exports.useDebugValue = useDebugValue;
+exports.useEffect = useEffect;
+exports.useImperativeHandle = useImperativeHandle;
+exports.useLayoutEffect = useLayoutEffect;
+exports.useMemo = useMemo;
+exports.useReducer = useReducer;
+exports.useRef = useRef;
+exports.useState = useState;
+exports.version = ReactVersion;
+  })();
+}
+
+
+/***/ }),
+
+/***/ "./node_modules/react/index.js":
+/*!*************************************!*\
+  !*** ./node_modules/react/index.js ***!
+  \*************************************/
+/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
+
+"use strict";
+
+
+if (false) {} else {
+  module.exports = __webpack_require__(/*! ./cjs/react.development.js */ "./node_modules/react/cjs/react.development.js");
+}
+
+
+/***/ }),
+
+/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js":
+/*!*******************************************************************!*\
+  !*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
+  \*******************************************************************/
+/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */   "default": function() { return /* binding */ _defineProperty; }
+/* harmony export */ });
+function _defineProperty(obj, key, value) {
+  if (key in obj) {
+    Object.defineProperty(obj, key, {
+      value: value,
+      enumerable: true,
+      configurable: true,
+      writable: true
+    });
+  } else {
+    obj[key] = value;
+  }
+  return obj;
+}
+
+/***/ })
+
+/******/ 	});
+/************************************************************************/
+/******/ 	// The module cache
+/******/ 	var __webpack_module_cache__ = {};
+/******/ 	
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/ 		// Check if module is in cache
+/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
+/******/ 		if (cachedModule !== undefined) {
+/******/ 			return cachedModule.exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = __webpack_module_cache__[moduleId] = {
+/******/ 			// no module.id needed
+/******/ 			// no module.loaded needed
+/******/ 			exports: {}
+/******/ 		};
+/******/ 	
+/******/ 		// Execute the module function
+/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/ 	
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/ 	
+/************************************************************************/
+/******/ 	/* webpack/runtime/compat get default export */
+/******/ 	!function() {
+/******/ 		// getDefaultExport function for compatibility with non-harmony modules
+/******/ 		__webpack_require__.n = function(module) {
+/******/ 			var getter = module && module.__esModule ?
+/******/ 				function() { return module['default']; } :
+/******/ 				function() { return module; };
+/******/ 			__webpack_require__.d(getter, { a: getter });
+/******/ 			return getter;
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/define property getters */
+/******/ 	!function() {
+/******/ 		// define getter functions for harmony exports
+/******/ 		__webpack_require__.d = function(exports, definition) {
+/******/ 			for(var key in definition) {
+/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ 				}
+/******/ 			}
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
+/******/ 	!function() {
+/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/make namespace object */
+/******/ 	!function() {
+/******/ 		// define __esModule on exports
+/******/ 		__webpack_require__.r = function(exports) {
+/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 			}
+/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be in strict mode.
+!function() {
+"use strict";
+/*!****************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/acf-pro-blocks.js ***!
+  \****************************************************************************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _acf_jsx_names_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_acf-jsx-names.js */ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-jsx-names.js");
+/* harmony import */ var _acf_jsx_names_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_acf_jsx_names_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _acf_blocks_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_acf-blocks.js */ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-blocks.js");
+
+
+}();
+/******/ })()
+;
+//# sourceMappingURL=acf-pro-blocks.js.map

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/pro/acf-pro-blocks.js.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/pro/acf-pro-blocks.min.js


+ 620 - 0
inc/acf/assets/build/js/pro/acf-pro-field-group.js

@@ -0,0 +1,620 @@
+/******/ (function() { // webpackBootstrap
+/******/ 	var __webpack_modules__ = ({
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-setting-clone.js":
+/*!********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-setting-clone.js ***!
+  \********************************************************************************/
+/***/ (function() {
+
+(function ($) {
+  /**
+   *  CloneDisplayFieldSetting
+   *
+   *  Extra logic for this field setting
+   *
+   *  @date	18/4/18
+   *  @since	5.6.9
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var CloneDisplayFieldSetting = acf.FieldSetting.extend({
+    type: 'clone',
+    name: 'display',
+    render: function () {
+      // vars
+      var display = this.field.val();
+
+      // set data attribute used by CSS to hide/show
+      this.$fieldObject.attr('data-display', display);
+    }
+  });
+  acf.registerFieldSetting(CloneDisplayFieldSetting);
+
+  /**
+   *  ClonePrefixLabelFieldSetting
+   *
+   *  Extra logic for this field setting
+   *
+   *  @date	18/4/18
+   *  @since	5.6.9
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var ClonePrefixLabelFieldSetting = acf.FieldSetting.extend({
+    type: 'clone',
+    name: 'prefix_label',
+    render: function () {
+      // vars
+      var prefix = '';
+
+      // if checked
+      if (this.field.val()) {
+        prefix = this.fieldObject.prop('label') + ' ';
+      }
+
+      // update HTML
+      this.$('code').html(prefix + '%field_label%');
+    }
+  });
+  acf.registerFieldSetting(ClonePrefixLabelFieldSetting);
+
+  /**
+   *  ClonePrefixNameFieldSetting
+   *
+   *  Extra logic for this field setting
+   *
+   *  @date	18/4/18
+   *  @since	5.6.9
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var ClonePrefixNameFieldSetting = acf.FieldSetting.extend({
+    type: 'clone',
+    name: 'prefix_name',
+    render: function () {
+      // vars
+      var prefix = '';
+
+      // if checked
+      if (this.field.val()) {
+        prefix = this.fieldObject.prop('name') + '_';
+      }
+
+      // update HTML
+      this.$('code').html(prefix + '%field_name%');
+    }
+  });
+  acf.registerFieldSetting(ClonePrefixNameFieldSetting);
+
+  /**
+   *  cloneFieldSelectHelper
+   *
+   *  Customizes the clone field setting Select2 isntance
+   *
+   *  @date	18/4/18
+   *  @since	5.6.9
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var cloneFieldSelectHelper = new acf.Model({
+    filters: {
+      select2_args: 'select2Args'
+    },
+    select2Args: function (options, $select, data, $el, instance) {
+      // check
+      if (data.ajaxAction == 'acf/fields/clone/query') {
+        // remain open on select
+        options.closeOnSelect = false;
+
+        // customize ajaxData function
+        instance.data.ajaxData = this.ajaxData;
+      }
+
+      // return
+      return options;
+    },
+    ajaxData: function (data) {
+      // find current fields
+      data.fields = {};
+
+      // loop
+      acf.getFieldObjects().map(function (fieldObject) {
+        // append
+        data.fields[fieldObject.prop('key')] = {
+          key: fieldObject.prop('key'),
+          type: fieldObject.prop('type'),
+          label: fieldObject.prop('label'),
+          ancestors: fieldObject.getParents().length
+        };
+      });
+
+      // append title
+      data.title = $('#title').val();
+
+      // return
+      return data;
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-setting-flexible-content.js":
+/*!*******************************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-setting-flexible-content.js ***!
+  \*******************************************************************************************/
+/***/ (function() {
+
+(function ($) {
+  /**
+   *  CloneDisplayFieldSetting
+   *
+   *  Extra logic for this field setting
+   *
+   *  @date	18/4/18
+   *  @since	5.6.9
+   *
+   *  @param	void
+   *  @return	void
+   */
+
+  var FlexibleContentLayoutFieldSetting = acf.FieldSetting.extend({
+    type: 'flexible_content',
+    name: 'fc_layout',
+    events: {
+      'blur .layout-label': 'onChangeLabel',
+      'click .add-layout': 'onClickAdd',
+      'click .acf-field-settings-fc_head': 'onClickEdit',
+      'click .acf-field-setting-fc-duplicate': 'onClickDuplicate',
+      'click .acf-field-setting-fc-delete': 'onClickDelete',
+      'changed:layoutLabel': 'updateLayoutTitles'
+    },
+    $input: function (name) {
+      return $('#' + this.getInputId() + '-' + name);
+    },
+    $list: function () {
+      return this.$('.acf-field-list:first');
+    },
+    getInputId: function () {
+      return this.fieldObject.getInputId() + '-layouts-' + this.field.get('id');
+    },
+    // get all sub fields
+    getFields: function () {
+      return acf.getFieldObjects({
+        parent: this.$el
+      });
+    },
+    // get imediate children
+    getChildren: function () {
+      return acf.getFieldObjects({
+        list: this.$list()
+      });
+    },
+    initialize: function () {
+      // add sortable
+      var $tbody = this.$el.parent();
+      if (!$tbody.hasClass('ui-sortable')) {
+        $tbody.sortable({
+          items: '> .acf-field-setting-fc_layout',
+          handle: '.acf-fc_draggable',
+          forceHelperSize: true,
+          forcePlaceholderSize: true,
+          scroll: true,
+          stop: this.proxy(function (event, ui) {
+            this.fieldObject.save();
+          })
+        });
+      }
+
+      // add meta to sub fields
+      this.updateFieldLayouts();
+      this.updateLayoutTitles();
+    },
+    updateFieldLayouts: function () {
+      this.getChildren().map(this.updateFieldLayout, this);
+    },
+    updateFieldLayout: function (field) {
+      field.prop('parent_layout', this.get('id'));
+    },
+    updateLayoutTitles: function () {
+      const label = this.get('layoutLabel');
+      const parentLabel = this.$el.find('> .acf-label .acf-fc-layout-name');
+      const subFieldsLabel = this.$el.find('> .acf-input > .acf-input-sub > .acf-sub-field-list-header > h3.acf-sub-field-list-title');
+      if (label) {
+        parentLabel.html(': ' + label);
+        subFieldsLabel.html(acf.__('Fields') + ': ' + label);
+      } else {
+        parentLabel.html('');
+        subFieldsLabel.html(acf.__('Fields'));
+      }
+    },
+    onClickEdit: function (e) {
+      const $target = $(e.target);
+      if ($target.hasClass('acf-btn') || $target.parent().hasClass('acf-btn')) {
+        return;
+      }
+      this.isOpen() ? this.close() : this.open();
+    },
+    isOpen: function (e) {
+      const $settings = this.$el.children('.acf-field-layout-settings');
+      return $settings.hasClass('open');
+    },
+    open: function (element, isAddingLayout) {
+      const $settings = element ? element.children('.acf-field-layout-settings') : this.$el.children('.acf-field-layout-settings');
+      const toggle = element ? element.find('.toggle-indicator').first() : this.$el.find('.toggle-indicator').first();
+
+      // action (show)
+      acf.doAction('show', $settings);
+
+      // open
+      if (isAddingLayout) {
+        $settings.slideDown({
+          complete: function () {
+            $settings.find('.layout-label').trigger('focus');
+          }
+        });
+      } else {
+        $settings.slideDown();
+      }
+      toggle.addClass('open');
+      if (toggle.hasClass('closed')) {
+        toggle.removeClass('closed');
+      }
+      $settings.addClass('open');
+    },
+    close: function () {
+      const $settings = this.$el.children('.acf-field-layout-settings');
+      const toggle = this.$el.find('.toggle-indicator').first();
+
+      // close
+      $settings.slideUp();
+      $settings.removeClass('open');
+      toggle.removeClass('open');
+      if (!toggle.hasClass('closed')) {
+        toggle.addClass('closed');
+      }
+
+      // action (hide)
+      acf.doAction('hide', $settings);
+    },
+    onChangeLabel: function (e, $el) {
+      var label = $el.val();
+      this.set('layoutLabel', label);
+      this.$el.attr('data-layout-label', label);
+      var $name = this.$input('name');
+
+      // render name
+      if ($name.val() == '') {
+        acf.val($name, acf.strSanitize(label));
+      }
+    },
+    onClickAdd: function (e, $el) {
+      e.preventDefault();
+      var prevKey = this.get('id');
+      var newKey = acf.uniqid('layout_');
+
+      // duplicate
+      $layout = acf.duplicate({
+        $el: this.$el,
+        search: prevKey,
+        replace: newKey,
+        after: function ($el, $el2) {
+          var $list = $el2.find('.acf-field-list:first');
+
+          // remove sub fields
+          $list.children('.acf-field-object').remove();
+
+          // show empty
+          $list.addClass('-empty');
+
+          // reset layout meta values
+          $el2.attr('data-layout-label', '');
+          $el2.find('.acf-fc-meta input').val('');
+          $el2.find('.acf-fc-layout-name').html('');
+          $el2.find('.acf-sub-field-list-title').html(acf.__('Fields '));
+        }
+      });
+
+      // get layout
+      var layout = acf.getFieldSetting($layout);
+
+      // update hidden input
+      layout.$input('key').val(newKey);
+      !this.isOpen() ? this.open(layout.$el, true) : layout.$el.find('.layout-label').trigger('focus');
+
+      // save
+      this.fieldObject.save();
+    },
+    onClickDuplicate: function (e, $el) {
+      e.preventDefault();
+      var prevKey = this.get('id');
+      var newKey = acf.uniqid('layout_');
+
+      // duplicate
+      $layout = acf.duplicate({
+        $el: this.$el,
+        search: prevKey,
+        replace: newKey
+      });
+
+      // get all fields in new layout similar to fieldManager.onDuplicateField().
+      // important to run field.wipe() before making any changes to the "parent_layout" prop
+      // to ensure the correct input is modified.
+      var children = acf.getFieldObjects({
+        parent: $layout
+      });
+      if (children.length) {
+        // loop
+        children.map(function (child) {
+          // wipe field
+          child.wipe();
+
+          // update parent
+          child.updateParent();
+        });
+
+        // action
+        acf.doAction('duplicate_field_objects', children, this.fieldObject, this.fieldObject);
+      }
+
+      // get layout
+      var layout = acf.getFieldSetting($layout);
+
+      // update hidden input
+      layout.$input('key').val(newKey);
+      !this.isOpen() ? this.open(layout.$el, true) : layout.$el.find('.layout-label').trigger('focus');
+      // save
+      this.fieldObject.save();
+    },
+    onClickDelete: function (e, $el) {
+      e.preventDefault();
+      // Bypass confirmation when holding down "shift" key.
+      if (e.shiftKey) {
+        return this.delete();
+      }
+
+      // add class
+      this.$el.addClass('-hover');
+
+      // add tooltip
+      var tooltip = acf.newTooltip({
+        confirmRemove: true,
+        target: $el,
+        context: this,
+        confirm: function () {
+          this.delete();
+        },
+        cancel: function () {
+          this.$el.removeClass('-hover');
+        }
+      });
+    },
+    delete: function () {
+      var $siblings = this.$el.siblings('.acf-field-setting-fc_layout');
+
+      // validate
+      if (!$siblings.length) {
+        alert(acf.__('Flexible Content requires at least 1 layout'));
+        return false;
+      }
+
+      // delete sub fields
+      this.getFields().map(function (child) {
+        child.delete({
+          animate: false
+        });
+      });
+
+      // remove tr
+      acf.remove(this.$el);
+
+      // save
+      this.fieldObject.save();
+    }
+  });
+  acf.registerFieldSetting(FlexibleContentLayoutFieldSetting);
+
+  /**
+   *  flexibleContentHelper
+   *
+   *  description
+   *
+   *  @date	19/4/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var flexibleContentHelper = new acf.Model({
+    actions: {
+      sortstop_field_object: 'updateParentLayout',
+      change_field_object_parent: 'updateParentLayout'
+    },
+    updateParentLayout: function (fieldObject) {
+      var parent = fieldObject.getParent();
+
+      // delete meta
+      if (!parent || parent.prop('type') !== 'flexible_content') {
+        fieldObject.prop('parent_layout', null);
+        return;
+      }
+
+      // get layout
+      var $layout = fieldObject.$el.closest('.acf-field-setting-fc_layout');
+      var layout = acf.getFieldSetting($layout);
+
+      // check if previous prop exists
+      // - if not, set prop to allow following code to trigger 'change' and save the field
+      if (!fieldObject.has('parent_layout')) {
+        fieldObject.prop('parent_layout', 0);
+      }
+
+      // update meta
+      fieldObject.prop('parent_layout', layout.get('id'));
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-setting-repeater.js":
+/*!***********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-setting-repeater.js ***!
+  \***********************************************************************************/
+/***/ (function() {
+
+(function ($) {
+  /*
+   *  Repeater
+   *
+   *  This field type requires some extra logic for its settings
+   *
+   *  @type	function
+   *  @date	24/10/13
+   *  @since	5.0.0
+   *
+   *  @param	n/a
+   *  @return	n/a
+   */
+
+  var RepeaterCollapsedFieldSetting = acf.FieldSetting.extend({
+    type: 'repeater',
+    name: 'collapsed',
+    events: {
+      'focus select': 'onFocus'
+    },
+    onFocus: function (e, $el) {
+      // vars
+      var $select = $el;
+
+      // collapsed
+      var choices = [];
+
+      // keep 'null' choice
+      choices.push({
+        label: $select.find('option[value=""]').text(),
+        value: ''
+      });
+
+      // find sub fields
+      var $list = this.fieldObject.$('.acf-field-list:first');
+      var fields = acf.getFieldObjects({
+        list: $list
+      });
+
+      // loop
+      fields.map(function (field) {
+        choices.push({
+          label: field.prop('label'),
+          value: field.prop('key')
+        });
+      });
+
+      // render
+      acf.renderSelect($select, choices);
+    }
+  });
+  acf.registerFieldSetting(RepeaterCollapsedFieldSetting);
+})(jQuery);
+
+/***/ })
+
+/******/ 	});
+/************************************************************************/
+/******/ 	// The module cache
+/******/ 	var __webpack_module_cache__ = {};
+/******/ 	
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/ 		// Check if module is in cache
+/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
+/******/ 		if (cachedModule !== undefined) {
+/******/ 			return cachedModule.exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = __webpack_module_cache__[moduleId] = {
+/******/ 			// no module.id needed
+/******/ 			// no module.loaded needed
+/******/ 			exports: {}
+/******/ 		};
+/******/ 	
+/******/ 		// Execute the module function
+/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/ 	
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/ 	
+/************************************************************************/
+/******/ 	/* webpack/runtime/compat get default export */
+/******/ 	!function() {
+/******/ 		// getDefaultExport function for compatibility with non-harmony modules
+/******/ 		__webpack_require__.n = function(module) {
+/******/ 			var getter = module && module.__esModule ?
+/******/ 				function() { return module['default']; } :
+/******/ 				function() { return module; };
+/******/ 			__webpack_require__.d(getter, { a: getter });
+/******/ 			return getter;
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/define property getters */
+/******/ 	!function() {
+/******/ 		// define getter functions for harmony exports
+/******/ 		__webpack_require__.d = function(exports, definition) {
+/******/ 			for(var key in definition) {
+/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ 				}
+/******/ 			}
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
+/******/ 	!function() {
+/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/make namespace object */
+/******/ 	!function() {
+/******/ 		// define __esModule on exports
+/******/ 		__webpack_require__.r = function(exports) {
+/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 			}
+/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be in strict mode.
+!function() {
+"use strict";
+/*!*********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/acf-pro-field-group.js ***!
+  \*********************************************************************************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _acf_setting_repeater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_acf-setting-repeater.js */ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-setting-repeater.js");
+/* harmony import */ var _acf_setting_repeater_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_acf_setting_repeater_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _acf_setting_flexible_content_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_acf-setting-flexible-content.js */ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-setting-flexible-content.js");
+/* harmony import */ var _acf_setting_flexible_content_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_acf_setting_flexible_content_js__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _acf_setting_clone_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_acf-setting-clone.js */ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-setting-clone.js");
+/* harmony import */ var _acf_setting_clone_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_acf_setting_clone_js__WEBPACK_IMPORTED_MODULE_2__);
+
+
+
+}();
+/******/ })()
+;
+//# sourceMappingURL=acf-pro-field-group.js.map

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/pro/acf-pro-field-group.js.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/pro/acf-pro-field-group.min.js


+ 2101 - 0
inc/acf/assets/build/js/pro/acf-pro-input.js

@@ -0,0 +1,2101 @@
+/******/ (function() { // webpackBootstrap
+/******/ 	var __webpack_modules__ = ({
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-field-flexible-content.js":
+/*!*****************************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-field-flexible-content.js ***!
+  \*****************************************************************************************/
+/***/ (function() {
+
+(function ($) {
+  var Field = acf.Field.extend({
+    type: 'flexible_content',
+    wait: '',
+    events: {
+      'click [data-name="add-layout"]': 'onClickAdd',
+      'click [data-name="duplicate-layout"]': 'onClickDuplicate',
+      'click [data-name="remove-layout"]': 'onClickRemove',
+      'click [data-name="collapse-layout"]': 'onClickCollapse',
+      showField: 'onShow',
+      unloadField: 'onUnload',
+      mouseover: 'onHover'
+    },
+    $control: function () {
+      return this.$('.acf-flexible-content:first');
+    },
+    $layoutsWrap: function () {
+      return this.$('.acf-flexible-content:first > .values');
+    },
+    $layouts: function () {
+      return this.$('.acf-flexible-content:first > .values > .layout');
+    },
+    $layout: function (index) {
+      return this.$('.acf-flexible-content:first > .values > .layout:eq(' + index + ')');
+    },
+    $clonesWrap: function () {
+      return this.$('.acf-flexible-content:first > .clones');
+    },
+    $clones: function () {
+      return this.$('.acf-flexible-content:first > .clones  > .layout');
+    },
+    $clone: function (name) {
+      return this.$('.acf-flexible-content:first > .clones  > .layout[data-layout="' + name + '"]');
+    },
+    $actions: function () {
+      return this.$('.acf-actions:last');
+    },
+    $button: function () {
+      return this.$('.acf-actions:last .button');
+    },
+    $popup: function () {
+      return this.$('.tmpl-popup:last');
+    },
+    getPopupHTML: function () {
+      var html = this.$popup().html();
+      var $html = $(html);
+
+      // count layouts
+      var $layouts = this.$layouts();
+      var countLayouts = function (name) {
+        return $layouts.filter(function () {
+          return $(this).data('layout') === name;
+        }).length;
+      };
+
+      // modify popup
+      $html.find('[data-layout]').each(function () {
+        var $a = $(this);
+        var min = $a.data('min') || 0;
+        var max = $a.data('max') || 0;
+        var name = $a.data('layout') || '';
+        var count = countLayouts(name);
+
+        // max
+        if (max && count >= max) {
+          $a.addClass('disabled');
+          return;
+        }
+
+        // min
+        if (min && count < min) {
+          var required = min - count;
+          var title = acf.__('{required} {label} {identifier} required (min {min})');
+          var identifier = acf._n('layout', 'layouts', required);
+
+          // translate
+          title = title.replace('{required}', required);
+          title = title.replace('{label}', name); // 5.5.0
+          title = title.replace('{identifier}', identifier);
+          title = title.replace('{min}', min);
+
+          // badge
+          $a.append('<span class="badge" title="' + title + '">' + required + '</span>');
+        }
+      });
+
+      // update
+      html = $html.outerHTML();
+      return html;
+    },
+    getValue: function () {
+      return this.$layouts().length;
+    },
+    allowRemove: function () {
+      var min = parseInt(this.get('min'));
+      return !min || min < this.val();
+    },
+    allowAdd: function () {
+      var max = parseInt(this.get('max'));
+      return !max || max > this.val();
+    },
+    isFull: function () {
+      var max = parseInt(this.get('max'));
+      return max && this.val() >= max;
+    },
+    addSortable: function (self) {
+      // bail early if max 1 row
+      if (this.get('max') == 1) {
+        return;
+      }
+
+      // add sortable
+      this.$layoutsWrap().sortable({
+        items: '> .layout',
+        handle: '> .acf-fc-layout-handle',
+        forceHelperSize: true,
+        forcePlaceholderSize: true,
+        scroll: true,
+        stop: function (event, ui) {
+          self.render();
+        },
+        update: function (event, ui) {
+          self.$input().trigger('change');
+        }
+      });
+    },
+    addCollapsed: function () {
+      var indexes = preference.load(this.get('key'));
+
+      // bail early if no collapsed
+      if (!indexes) {
+        return false;
+      }
+
+      // loop
+      this.$layouts().each(function (i) {
+        if (indexes.indexOf(i) > -1) {
+          $(this).addClass('-collapsed');
+        }
+      });
+    },
+    addUnscopedEvents: function (self) {
+      // invalidField
+      this.on('invalidField', '.layout', function (e) {
+        self.onInvalidField(e, $(this));
+      });
+    },
+    initialize: function () {
+      // add unscoped events
+      this.addUnscopedEvents(this);
+
+      // add collapsed
+      this.addCollapsed();
+
+      // disable clone
+      acf.disable(this.$clonesWrap(), this.cid);
+
+      // render
+      this.render();
+    },
+    render: function () {
+      // update order number
+      this.$layouts().each(function (i) {
+        $(this).find('.acf-fc-layout-order:first').html(i + 1);
+      });
+
+      // empty
+      if (this.val() == 0) {
+        this.$control().addClass('-empty');
+      } else {
+        this.$control().removeClass('-empty');
+      }
+
+      // max
+      if (this.isFull()) {
+        this.$button().addClass('disabled');
+      } else {
+        this.$button().removeClass('disabled');
+      }
+    },
+    onShow: function (e, $el, context) {
+      // get sub fields
+      var fields = acf.getFields({
+        is: ':visible',
+        parent: this.$el
+      });
+
+      // trigger action
+      // - ignore context, no need to pass through 'conditional_logic'
+      // - this is just for fields like google_map to render itself
+      acf.doAction('show_fields', fields);
+    },
+    validateAdd: function () {
+      // return true if allowed
+      if (this.allowAdd()) {
+        return true;
+      }
+      var max = this.get('max');
+      var text = acf.__('This field has a limit of {max} {label} {identifier}');
+      var identifier = acf._n('layout', 'layouts', max);
+
+      // replace
+      text = text.replace('{max}', max);
+      text = text.replace('{label}', '');
+      text = text.replace('{identifier}', identifier);
+
+      // add notice
+      this.showNotice({
+        text: text,
+        type: 'warning'
+      });
+      return false;
+    },
+    onClickAdd: function (e, $el) {
+      // validate
+      if (!this.validateAdd()) {
+        return false;
+      }
+
+      // within layout
+      var $layout = null;
+      if ($el.hasClass('acf-icon')) {
+        $layout = $el.closest('.layout');
+        $layout.addClass('-hover');
+      }
+
+      // new popup
+      var popup = new Popup({
+        target: $el,
+        targetConfirm: false,
+        text: this.getPopupHTML(),
+        context: this,
+        confirm: function (e, $el) {
+          // check disabled
+          if ($el.hasClass('disabled')) {
+            return;
+          }
+
+          // add
+          this.add({
+            layout: $el.data('layout'),
+            before: $layout
+          });
+        },
+        cancel: function () {
+          if ($layout) {
+            $layout.removeClass('-hover');
+          }
+        }
+      });
+
+      // add extra event
+      popup.on('click', '[data-layout]', 'onConfirm');
+    },
+    add: function (args) {
+      // defaults
+      args = acf.parseArgs(args, {
+        layout: '',
+        before: false
+      });
+
+      // validate
+      if (!this.allowAdd()) {
+        return false;
+      }
+
+      // add row
+      var $el = acf.duplicate({
+        target: this.$clone(args.layout),
+        append: this.proxy(function ($el, $el2) {
+          // append
+          if (args.before) {
+            args.before.before($el2);
+          } else {
+            this.$layoutsWrap().append($el2);
+          }
+
+          // enable
+          acf.enable($el2, this.cid);
+
+          // render
+          this.render();
+        })
+      });
+
+      // trigger change for validation errors
+      this.$input().trigger('change');
+      return $el;
+    },
+    onClickDuplicate: function (e, $el) {
+      // Validate with warning.
+      if (!this.validateAdd()) {
+        return false;
+      }
+
+      // get layout and duplicate it.
+      var $layout = $el.closest('.layout');
+      this.duplicateLayout($layout);
+    },
+    duplicateLayout: function ($layout) {
+      // Validate without warning.
+      if (!this.allowAdd()) {
+        return false;
+      }
+      var fieldKey = this.get('key');
+
+      // Duplicate layout.
+      var $el = acf.duplicate({
+        target: $layout,
+        // Provide a custom renaming callback to avoid renaming parent row attributes.
+        rename: function (name, value, search, replace) {
+          // Rename id attributes from "field_1-search" to "field_1-replace".
+          if (name === 'id' || name === 'for') {
+            return value.replace(fieldKey + '-' + search, fieldKey + '-' + replace);
+
+            // Rename name and for attributes from "[field_1][search]" to "[field_1][replace]".
+          } else {
+            return value.replace(fieldKey + '][' + search, fieldKey + '][' + replace);
+          }
+        },
+        before: function ($el) {
+          acf.doAction('unmount', $el);
+        },
+        after: function ($el, $el2) {
+          acf.doAction('remount', $el);
+        }
+      });
+
+      // trigger change for validation errors
+      this.$input().trigger('change');
+
+      // Update order numbers.
+      this.render();
+
+      // Draw focus to layout.
+      acf.focusAttention($el);
+
+      // Return new layout.
+      return $el;
+    },
+    validateRemove: function () {
+      // return true if allowed
+      if (this.allowRemove()) {
+        return true;
+      }
+      var min = this.get('min');
+      var text = acf.__('This field requires at least {min} {label} {identifier}');
+      var identifier = acf._n('layout', 'layouts', min);
+
+      // replace
+      text = text.replace('{min}', min);
+      text = text.replace('{label}', '');
+      text = text.replace('{identifier}', identifier);
+
+      // add notice
+      this.showNotice({
+        text: text,
+        type: 'warning'
+      });
+      return false;
+    },
+    onClickRemove: function (e, $el) {
+      var $layout = $el.closest('.layout');
+
+      // Bypass confirmation when holding down "shift" key.
+      if (e.shiftKey) {
+        return this.removeLayout($layout);
+      }
+
+      // add class
+      $layout.addClass('-hover');
+
+      // add tooltip
+      var tooltip = acf.newTooltip({
+        confirmRemove: true,
+        target: $el,
+        context: this,
+        confirm: function () {
+          this.removeLayout($layout);
+        },
+        cancel: function () {
+          $layout.removeClass('-hover');
+        }
+      });
+    },
+    removeLayout: function ($layout) {
+      // reference
+      var self = this;
+      var endHeight = this.getValue() == 1 ? 60 : 0;
+
+      // remove
+      acf.remove({
+        target: $layout,
+        endHeight: endHeight,
+        complete: function () {
+          // trigger change to allow attachment save
+          self.$input().trigger('change');
+
+          // render
+          self.render();
+        }
+      });
+    },
+    onClickCollapse: function (e, $el) {
+      var $layout = $el.closest('.layout');
+
+      // toggle
+      if (this.isLayoutClosed($layout)) {
+        this.openLayout($layout);
+      } else {
+        this.closeLayout($layout);
+      }
+    },
+    isLayoutClosed: function ($layout) {
+      return $layout.hasClass('-collapsed');
+    },
+    openLayout: function ($layout) {
+      $layout.removeClass('-collapsed');
+      acf.doAction('show', $layout, 'collapse');
+    },
+    closeLayout: function ($layout) {
+      $layout.addClass('-collapsed');
+      acf.doAction('hide', $layout, 'collapse');
+
+      // render
+      // - no change could happen if layout was already closed. Only render when closing
+      this.renderLayout($layout);
+    },
+    renderLayout: function ($layout) {
+      var $input = $layout.children('input');
+      var prefix = $input.attr('name').replace('[acf_fc_layout]', '');
+
+      // ajax data
+      var ajaxData = {
+        action: 'acf/fields/flexible_content/layout_title',
+        field_key: this.get('key'),
+        i: $layout.index(),
+        layout: $layout.data('layout'),
+        value: acf.serialize($layout, prefix)
+      };
+
+      // ajax
+      $.ajax({
+        url: acf.get('ajaxurl'),
+        data: acf.prepareForAjax(ajaxData),
+        dataType: 'html',
+        type: 'post',
+        success: function (html) {
+          if (html) {
+            $layout.children('.acf-fc-layout-handle').html(html);
+          }
+        }
+      });
+    },
+    onUnload: function () {
+      var indexes = [];
+
+      // loop
+      this.$layouts().each(function (i) {
+        if ($(this).hasClass('-collapsed')) {
+          indexes.push(i);
+        }
+      });
+
+      // allow null
+      indexes = indexes.length ? indexes : null;
+
+      // set
+      preference.save(this.get('key'), indexes);
+    },
+    onInvalidField: function (e, $layout) {
+      // open if is collapsed
+      if (this.isLayoutClosed($layout)) {
+        this.openLayout($layout);
+      }
+    },
+    onHover: function () {
+      // add sortable
+      this.addSortable(this);
+
+      // remove event
+      this.off('mouseover');
+    }
+  });
+  acf.registerFieldType(Field);
+
+  /**
+   *  Popup
+   *
+   *  description
+   *
+   *  @date	7/4/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  var Popup = acf.models.TooltipConfirm.extend({
+    events: {
+      'click [data-layout]': 'onConfirm',
+      'click [data-event="cancel"]': 'onCancel'
+    },
+    render: function () {
+      // set HTML
+      this.html(this.get('text'));
+
+      // add class
+      this.$el.addClass('acf-fc-popup');
+    }
+  });
+
+  /**
+   *  conditions
+   *
+   *  description
+   *
+   *  @date	9/4/18
+   *  @since	5.6.9
+   *
+   *  @param	type $var Description. Default.
+   *  @return	type Description.
+   */
+
+  // register existing conditions
+  acf.registerConditionForFieldType('hasValue', 'flexible_content');
+  acf.registerConditionForFieldType('hasNoValue', 'flexible_content');
+  acf.registerConditionForFieldType('lessThan', 'flexible_content');
+  acf.registerConditionForFieldType('greaterThan', 'flexible_content');
+
+  // state
+  var preference = new acf.Model({
+    name: 'this.collapsedLayouts',
+    key: function (key, context) {
+      var count = this.get(key + context) || 0;
+
+      // update
+      count++;
+      this.set(key + context, count, true);
+
+      // modify fieldKey
+      if (count > 1) {
+        key += '-' + count;
+      }
+      return key;
+    },
+    load: function (key) {
+      var key = this.key(key, 'load');
+      var data = acf.getPreference(this.name);
+      if (data && data[key]) {
+        return data[key];
+      } else {
+        return false;
+      }
+    },
+    save: function (key, value) {
+      var key = this.key(key, 'save');
+      var data = acf.getPreference(this.name) || {};
+
+      // delete
+      if (value === null) {
+        delete data[key];
+
+        // append
+      } else {
+        data[key] = value;
+      }
+
+      // allow null
+      if ($.isEmptyObject(data)) {
+        data = null;
+      }
+
+      // save
+      acf.setPreference(this.name, data);
+    }
+  });
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-field-gallery.js":
+/*!********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-field-gallery.js ***!
+  \********************************************************************************/
+/***/ (function() {
+
+(function ($) {
+  var Field = acf.Field.extend({
+    type: 'gallery',
+    events: {
+      'click .acf-gallery-add': 'onClickAdd',
+      'click .acf-gallery-edit': 'onClickEdit',
+      'click .acf-gallery-remove': 'onClickRemove',
+      'click .acf-gallery-attachment': 'onClickSelect',
+      'click .acf-gallery-close': 'onClickClose',
+      'change .acf-gallery-sort': 'onChangeSort',
+      'click .acf-gallery-update': 'onUpdate',
+      mouseover: 'onHover',
+      showField: 'render'
+    },
+    actions: {
+      validation_begin: 'onValidationBegin',
+      validation_failure: 'onValidationFailure',
+      resize: 'onResize'
+    },
+    onValidationBegin: function () {
+      acf.disable(this.$sideData(), this.cid);
+    },
+    onValidationFailure: function () {
+      acf.enable(this.$sideData(), this.cid);
+    },
+    $control: function () {
+      return this.$('.acf-gallery');
+    },
+    $collection: function () {
+      return this.$('.acf-gallery-attachments');
+    },
+    $attachments: function () {
+      return this.$('.acf-gallery-attachment');
+    },
+    $attachment: function (id) {
+      return this.$('.acf-gallery-attachment[data-id="' + id + '"]');
+    },
+    $active: function () {
+      return this.$('.acf-gallery-attachment.active');
+    },
+    $main: function () {
+      return this.$('.acf-gallery-main');
+    },
+    $side: function () {
+      return this.$('.acf-gallery-side');
+    },
+    $sideData: function () {
+      return this.$('.acf-gallery-side-data');
+    },
+    isFull: function () {
+      var max = parseInt(this.get('max'));
+      var count = this.$attachments().length;
+      return max && count >= max;
+    },
+    getValue: function () {
+      // vars
+      var val = [];
+
+      // loop
+      this.$attachments().each(function () {
+        val.push($(this).data('id'));
+      });
+
+      // return
+      return val.length ? val : false;
+    },
+    addUnscopedEvents: function (self) {
+      // invalidField
+      this.on('change', '.acf-gallery-side', function (e) {
+        self.onUpdate(e, $(this));
+      });
+    },
+    addSortable: function (self) {
+      // add sortable
+      this.$collection().sortable({
+        items: '.acf-gallery-attachment',
+        forceHelperSize: true,
+        forcePlaceholderSize: true,
+        scroll: true,
+        start: function (event, ui) {
+          ui.placeholder.html(ui.item.html());
+          ui.placeholder.removeAttr('style');
+        },
+        update: function (event, ui) {
+          self.$input().trigger('change');
+        }
+      });
+
+      // resizable
+      this.$control().resizable({
+        handles: 's',
+        minHeight: 200,
+        stop: function (event, ui) {
+          acf.update_user_setting('gallery_height', ui.size.height);
+        }
+      });
+    },
+    initialize: function () {
+      // add unscoped events
+      this.addUnscopedEvents(this);
+
+      // render
+      this.render();
+    },
+    render: function () {
+      // vars
+      var $sort = this.$('.acf-gallery-sort');
+      var $add = this.$('.acf-gallery-add');
+      var count = this.$attachments().length;
+
+      // disable add
+      if (this.isFull()) {
+        $add.addClass('disabled');
+      } else {
+        $add.removeClass('disabled');
+      }
+
+      // disable select
+      if (!count) {
+        $sort.addClass('disabled');
+      } else {
+        $sort.removeClass('disabled');
+      }
+
+      // resize
+      this.resize();
+    },
+    resize: function () {
+      // vars
+      var width = this.$control().width();
+      var target = 150;
+      var columns = Math.round(width / target);
+
+      // max columns = 8
+      columns = Math.min(columns, 8);
+
+      // update data
+      this.$control().attr('data-columns', columns);
+    },
+    onResize: function () {
+      this.resize();
+    },
+    openSidebar: function () {
+      // add class
+      this.$control().addClass('-open');
+
+      // hide bulk actions
+      // should be done with CSS
+      //this.$main().find('.acf-gallery-sort').hide();
+
+      // vars
+      var width = this.$control().width() / 3;
+      width = parseInt(width);
+      width = Math.max(width, 350);
+
+      // animate
+      this.$('.acf-gallery-side-inner').css({
+        width: width - 1
+      });
+      this.$side().animate({
+        width: width - 1
+      }, 250);
+      this.$main().animate({
+        right: width
+      }, 250);
+    },
+    closeSidebar: function () {
+      // remove class
+      this.$control().removeClass('-open');
+
+      // clear selection
+      this.$active().removeClass('active');
+
+      // disable sidebar
+      acf.disable(this.$side());
+
+      // animate
+      var $sideData = this.$('.acf-gallery-side-data');
+      this.$main().animate({
+        right: 0
+      }, 250);
+      this.$side().animate({
+        width: 0
+      }, 250, function () {
+        $sideData.html('');
+      });
+    },
+    onClickAdd: function (e, $el) {
+      // validate
+      if (this.isFull()) {
+        this.showNotice({
+          text: acf.__('Maximum selection reached'),
+          type: 'warning'
+        });
+        return;
+      }
+
+      // new frame
+      var frame = acf.newMediaPopup({
+        mode: 'select',
+        title: acf.__('Add Image to Gallery'),
+        field: this.get('key'),
+        multiple: 'add',
+        library: this.get('library'),
+        allowedTypes: this.get('mime_types'),
+        selected: this.val(),
+        select: $.proxy(function (attachment, i) {
+          this.appendAttachment(attachment, i);
+        }, this)
+      });
+    },
+    appendAttachment: function (attachment, i) {
+      // vars
+      attachment = this.validateAttachment(attachment);
+
+      // bail early if is full
+      if (this.isFull()) {
+        return;
+      }
+
+      // bail early if already exists
+      if (this.$attachment(attachment.id).length) {
+        return;
+      }
+
+      // html
+      var html = ['<div class="acf-gallery-attachment" data-id="' + attachment.id + '">', '<input type="hidden" value="' + attachment.id + '" name="' + this.getInputName() + '[]">', '<div class="margin" title="">', '<div class="thumbnail">', '<img src="" alt="">', '</div>', '<div class="filename"></div>', '</div>', '<div class="actions">', '<a href="#" class="acf-icon -cancel dark acf-gallery-remove" data-id="' + attachment.id + '"></a>', '</div>', '</div>'].join('');
+      var $html = $(html);
+
+      // append
+      this.$collection().append($html);
+
+      // move to beginning
+      if (this.get('insert') === 'prepend') {
+        var $before = this.$attachments().eq(i);
+        if ($before.length) {
+          $before.before($html);
+        }
+      }
+
+      // render attachment
+      this.renderAttachment(attachment);
+
+      // render
+      this.render();
+
+      // trigger change
+      this.$input().trigger('change');
+    },
+    validateAttachment: function (attachment) {
+      // defaults
+      attachment = acf.parseArgs(attachment, {
+        id: '',
+        url: '',
+        alt: '',
+        title: '',
+        filename: '',
+        type: 'image'
+      });
+
+      // WP attachment
+      if (attachment.attributes) {
+        attachment = attachment.attributes;
+
+        // preview size
+        var url = acf.isget(attachment, 'sizes', this.get('preview_size'), 'url');
+        if (url !== null) {
+          attachment.url = url;
+        }
+      }
+
+      // return
+      return attachment;
+    },
+    renderAttachment: function (attachment) {
+      // vars
+      attachment = this.validateAttachment(attachment);
+
+      // vars
+      var $el = this.$attachment(attachment.id);
+
+      // Image type.
+      if (attachment.type == 'image') {
+        // Remove filename.
+        $el.find('.filename').remove();
+
+        // Other file type.
+      } else {
+        // Check for attachment featured image.
+        var image = acf.isget(attachment, 'image', 'src');
+        if (image !== null) {
+          attachment.url = image;
+        }
+
+        // Update filename text.
+        $el.find('.filename').text(attachment.filename);
+      }
+
+      // Default to mimetype icon.
+      if (!attachment.url) {
+        attachment.url = acf.get('mimeTypeIcon');
+        $el.addClass('-icon');
+      }
+
+      // update els
+      $el.find('img').attr({
+        src: attachment.url,
+        alt: attachment.alt,
+        title: attachment.title
+      });
+
+      // update val
+      acf.val($el.find('input'), attachment.id);
+    },
+    editAttachment: function (id) {
+      // new frame
+      var frame = acf.newMediaPopup({
+        mode: 'edit',
+        title: acf.__('Edit Image'),
+        button: acf.__('Update Image'),
+        attachment: id,
+        field: this.get('key'),
+        select: $.proxy(function (attachment, i) {
+          this.renderAttachment(attachment);
+          // todo - render sidebar
+        }, this)
+      });
+    },
+    onClickEdit: function (e, $el) {
+      var id = $el.data('id');
+      if (id) {
+        this.editAttachment(id);
+      }
+    },
+    removeAttachment: function (id) {
+      // close sidebar (if open)
+      this.closeSidebar();
+
+      // remove attachment
+      this.$attachment(id).remove();
+
+      // render
+      this.render();
+
+      // trigger change
+      this.$input().trigger('change');
+    },
+    onClickRemove: function (e, $el) {
+      // prevent event from triggering click on attachment
+      e.preventDefault();
+      e.stopPropagation();
+
+      //remove
+      var id = $el.data('id');
+      if (id) {
+        this.removeAttachment(id);
+      }
+    },
+    selectAttachment: function (id) {
+      // vars
+      var $el = this.$attachment(id);
+
+      // bail early if already active
+      if ($el.hasClass('active')) {
+        return;
+      }
+
+      // step 1
+      var step1 = this.proxy(function () {
+        // save any changes in sidebar
+        this.$side().find(':focus').trigger('blur');
+
+        // clear selection
+        this.$active().removeClass('active');
+
+        // add selection
+        $el.addClass('active');
+
+        // open sidebar
+        this.openSidebar();
+
+        // call step 2
+        step2();
+      });
+
+      // step 2
+      var step2 = this.proxy(function () {
+        // ajax
+        var ajaxData = {
+          action: 'acf/fields/gallery/get_attachment',
+          field_key: this.get('key'),
+          id: id
+        };
+
+        // abort prev ajax call
+        if (this.has('xhr')) {
+          this.get('xhr').abort();
+        }
+
+        // loading
+        acf.showLoading(this.$sideData());
+
+        // get HTML
+        var xhr = $.ajax({
+          url: acf.get('ajaxurl'),
+          data: acf.prepareForAjax(ajaxData),
+          type: 'post',
+          dataType: 'html',
+          cache: false,
+          success: step3
+        });
+
+        // update
+        this.set('xhr', xhr);
+      });
+
+      // step 3
+      var step3 = this.proxy(function (html) {
+        // bail early if no html
+        if (!html) {
+          return;
+        }
+
+        // vars
+        var $side = this.$sideData();
+
+        // render
+        $side.html(html);
+
+        // remove acf form data
+        $side.find('.compat-field-acf-form-data').remove();
+
+        // merge tables
+        $side.find('> table.form-table > tbody').append($side.find('> .compat-attachment-fields > tbody > tr'));
+
+        // setup fields
+        acf.doAction('append', $side);
+      });
+
+      // run step 1
+      step1();
+    },
+    onClickSelect: function (e, $el) {
+      var id = $el.data('id');
+      if (id) {
+        this.selectAttachment(id);
+      }
+    },
+    onClickClose: function (e, $el) {
+      this.closeSidebar();
+    },
+    onChangeSort: function (e, $el) {
+      // Bail early if is disabled.
+      if ($el.hasClass('disabled')) {
+        return;
+      }
+
+      // Get sort val.
+      var val = $el.val();
+      if (!val) {
+        return;
+      }
+
+      // find ids
+      var ids = [];
+      this.$attachments().each(function () {
+        ids.push($(this).data('id'));
+      });
+
+      // step 1
+      var step1 = this.proxy(function () {
+        // vars
+        var ajaxData = {
+          action: 'acf/fields/gallery/get_sort_order',
+          field_key: this.get('key'),
+          ids: ids,
+          sort: val
+        };
+
+        // get results
+        var xhr = $.ajax({
+          url: acf.get('ajaxurl'),
+          dataType: 'json',
+          type: 'post',
+          cache: false,
+          data: acf.prepareForAjax(ajaxData),
+          success: step2
+        });
+      });
+
+      // step 2
+      var step2 = this.proxy(function (json) {
+        // validate
+        if (!acf.isAjaxSuccess(json)) {
+          return;
+        }
+
+        // reverse order
+        json.data.reverse();
+
+        // loop
+        json.data.map(function (id) {
+          this.$collection().prepend(this.$attachment(id));
+        }, this);
+      });
+
+      // call step 1
+      step1();
+    },
+    onUpdate: function (e, $el) {
+      // vars
+      var $submit = this.$('.acf-gallery-update');
+
+      // validate
+      if ($submit.hasClass('disabled')) {
+        return;
+      }
+
+      // serialize data
+      var ajaxData = acf.serialize(this.$sideData());
+
+      // loading
+      $submit.addClass('disabled');
+      $submit.before('<i class="acf-loading"></i> ');
+
+      // append AJAX action
+      ajaxData.action = 'acf/fields/gallery/update_attachment';
+
+      // ajax
+      $.ajax({
+        url: acf.get('ajaxurl'),
+        data: acf.prepareForAjax(ajaxData),
+        type: 'post',
+        dataType: 'json',
+        complete: function () {
+          $submit.removeClass('disabled');
+          $submit.prev('.acf-loading').remove();
+        }
+      });
+    },
+    onHover: function () {
+      // add sortable
+      this.addSortable(this);
+
+      // remove event
+      this.off('mouseover');
+    }
+  });
+  acf.registerFieldType(Field);
+
+  // register existing conditions
+  acf.registerConditionForFieldType('hasValue', 'gallery');
+  acf.registerConditionForFieldType('hasNoValue', 'gallery');
+  acf.registerConditionForFieldType('selectionLessThan', 'gallery');
+  acf.registerConditionForFieldType('selectionGreaterThan', 'gallery');
+})(jQuery);
+
+/***/ }),
+
+/***/ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-field-repeater.js":
+/*!*********************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-field-repeater.js ***!
+  \*********************************************************************************/
+/***/ (function() {
+
+(function ($) {
+  var Field = acf.Field.extend({
+    type: 'repeater',
+    wait: '',
+    page: 1,
+    nextRowNum: 0,
+    events: {
+      'click a[data-event="add-row"]': 'onClickAdd',
+      'click a[data-event="duplicate-row"]': 'onClickDuplicate',
+      'click a[data-event="remove-row"]': 'onClickRemove',
+      'click a[data-event="collapse-row"]': 'onClickCollapse',
+      'click a[data-event="first-page"]:not(.disabled)': 'onClickFirstPage',
+      'click a[data-event="last-page"]:not(.disabled)': 'onClickLastPage',
+      'click a[data-event="prev-page"]:not(.disabled)': 'onClickPrevPage',
+      'click a[data-event="next-page"]:not(.disabled)': 'onClickNextPage',
+      'change .current-page': 'onChangeCurrentPage',
+      'click .acf-order-input-wrap': 'onClickRowOrder',
+      'blur .acf-order-input': 'onBlurRowOrder',
+      'change .acf-order-input': 'onChangeRowOrder',
+      'changed:total_rows': 'onChangeTotalRows',
+      showField: 'onShow',
+      unloadField: 'onUnload',
+      mouseover: 'onHover',
+      change: 'onChangeField'
+    },
+    $control: function () {
+      return this.$('.acf-repeater:first');
+    },
+    $table: function () {
+      return this.$('table:first');
+    },
+    $tbody: function () {
+      return this.$('tbody:first');
+    },
+    $rows: function () {
+      return this.$('tbody:first > tr').not('.acf-clone, .acf-deleted');
+    },
+    $row: function (index) {
+      return this.$('tbody:first > tr:eq(' + index + ')');
+    },
+    $clone: function () {
+      return this.$('tbody:first > tr.acf-clone');
+    },
+    $actions: function () {
+      return this.$('.acf-actions:last');
+    },
+    $button: function () {
+      return this.$('.acf-actions:last .button');
+    },
+    $firstPageButton: function () {
+      return this.$('.acf-tablenav:last .first-page');
+    },
+    $prevPageButton: function () {
+      return this.$('.acf-tablenav:last .prev-page');
+    },
+    $nextPageButton: function () {
+      return this.$('.acf-tablenav:last .next-page');
+    },
+    $lastPageButton: function () {
+      return this.$('.acf-tablenav:last .last-page');
+    },
+    $pageInput: function () {
+      return this.$('.current-page:last');
+    },
+    totalPages: function () {
+      const totalPages = this.$('.acf-total-pages:last').text();
+      return parseInt(totalPages);
+    },
+    getValue: function () {
+      return this.$rows().length;
+    },
+    allowRemove: function () {
+      let numRows = this.val();
+      let minRows = parseInt(this.get('min'));
+      if (this.get('pagination')) {
+        numRows = this.get('total_rows');
+      }
+      return !minRows || minRows < numRows;
+    },
+    allowAdd: function () {
+      let numRows = this.val();
+      let maxRows = parseInt(this.get('max'));
+      if (this.get('pagination')) {
+        numRows = this.get('total_rows');
+      }
+      return !maxRows || maxRows > numRows;
+    },
+    addSortable: function (self) {
+      // bail early if max 1 row
+      if (this.get('max') == 1) {
+        return;
+      }
+
+      // Bail early if using pagination.
+      if (this.get('pagination')) {
+        return;
+      }
+
+      // add sortable
+      this.$tbody().sortable({
+        items: '> tr',
+        handle: '> td.order',
+        forceHelperSize: true,
+        forcePlaceholderSize: true,
+        scroll: true,
+        stop: function (event, ui) {
+          self.render();
+        },
+        update: function (event, ui) {
+          self.$input().trigger('change');
+        }
+      });
+    },
+    addCollapsed: function () {
+      // vars
+      var indexes = preference.load(this.get('key'));
+
+      // bail early if no collapsed
+      if (!indexes) {
+        return false;
+      }
+
+      // loop
+      this.$rows().each(function (i) {
+        if (indexes.indexOf(i) > -1) {
+          if ($(this).find('.-collapsed-target').length) {
+            $(this).addClass('-collapsed');
+          }
+        }
+      });
+    },
+    addUnscopedEvents: function (self) {
+      // invalidField
+      this.on('invalidField', '.acf-row', function (e) {
+        var $row = $(this);
+        if (self.isCollapsed($row)) {
+          self.expand($row);
+        }
+      });
+
+      // Listen for changes to fields, so we can persist them in the DOM.
+      if (this.get('pagination')) {
+        this.on('change', 'input, select, textarea', function (e) {
+          const $changed = $(e.currentTarget);
+          if (!$changed.hasClass('acf-order-input') && !$changed.hasClass('acf-row-status')) {
+            self.onChangeField(e, $(this));
+          }
+        });
+      }
+      this.listenForSavedMetaBoxes();
+    },
+    initialize: function () {
+      // add unscoped events
+      this.addUnscopedEvents(this);
+
+      // add collapsed
+      this.addCollapsed();
+
+      // disable clone
+      acf.disable(this.$clone(), this.cid);
+
+      // Set up the next row number.
+      if (this.get('pagination')) {
+        this.nextRowNum = this.get('total_rows');
+      }
+
+      // render
+      this.render();
+    },
+    render: function () {
+      let update_order_numbers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
+      // Update order number.
+      if (update_order_numbers) {
+        this.$rows().each(function (i) {
+          $(this).find('> .order > span').html(i + 1);
+        });
+      }
+
+      // Extract vars.
+      var $control = this.$control();
+      var $button = this.$button();
+
+      // empty
+      if (this.val() == 0) {
+        $control.addClass('-empty');
+      } else {
+        $control.removeClass('-empty');
+      }
+
+      // Reached max rows.
+      if (!this.allowAdd()) {
+        $control.addClass('-max');
+        $button.addClass('disabled');
+      } else {
+        $control.removeClass('-max');
+        $button.removeClass('disabled');
+      }
+      if (this.get('pagination')) {
+        this.maybeDisablePagination();
+      }
+
+      // Reached min rows (not used).
+      //if( !this.allowRemove() ) {
+      //	$control.addClass('-min');
+      //} else {
+      //	$control.removeClass('-min');
+      //}
+    },
+
+    listenForSavedMetaBoxes: function () {
+      if (!acf.isGutenberg() || !this.get('pagination')) {
+        return;
+      }
+      let checkedMetaBoxes = true;
+      wp.data.subscribe(() => {
+        if (wp.data.select('core/edit-post').isSavingMetaBoxes()) {
+          checkedMetaBoxes = false;
+        } else {
+          if (!checkedMetaBoxes) {
+            checkedMetaBoxes = true;
+            this.set('total_rows', 0, true);
+            this.ajaxLoadPage(true);
+          }
+        }
+      });
+    },
+    incrementTotalRows: function () {
+      let totalRows = this.get('total_rows');
+      this.set('total_rows', ++totalRows, true);
+    },
+    decrementTotalRows: function () {
+      let totalRows = this.get('total_rows');
+      this.set('total_rows', --totalRows, true);
+    },
+    validateAdd: function () {
+      // return true if allowed
+      if (this.allowAdd()) {
+        return true;
+      }
+
+      // vars
+      var max = this.get('max');
+      var text = acf.__('Maximum rows reached ({max} rows)');
+
+      // replace
+      text = text.replace('{max}', max);
+
+      // add notice
+      this.showNotice({
+        text: text,
+        type: 'warning'
+      });
+
+      // return
+      return false;
+    },
+    onClickAdd: function (e, $el) {
+      // validate
+      if (!this.validateAdd()) {
+        return false;
+      }
+
+      // add above row
+      if ($el.hasClass('acf-icon')) {
+        this.add({
+          before: $el.closest('.acf-row')
+        });
+
+        // default
+      } else {
+        this.add();
+      }
+    },
+    add: function (args) {
+      // validate
+      if (!this.allowAdd()) {
+        return false;
+      }
+
+      // defaults
+      args = acf.parseArgs(args, {
+        before: false
+      });
+
+      // add row
+      var $el = acf.duplicate({
+        target: this.$clone(),
+        append: this.proxy(function ($el, $el2) {
+          // append
+          if (args.before) {
+            args.before.before($el2);
+          } else {
+            $el.before($el2);
+          }
+
+          // remove clone class
+          $el2.removeClass('acf-clone');
+
+          // enable
+          acf.enable($el2, this.cid);
+        })
+      });
+      if (this.get('pagination')) {
+        this.incrementTotalRows();
+        if (false !== args.before) {
+          // If the row was inserted above an existing row, try to keep that order.
+          const prevRowNum = parseInt(args.before.find('.acf-row-number').first().text()) || 0;
+          let newRowNum = prevRowNum;
+          if (newRowNum && !args.before.hasClass('acf-inserted') && !args.before.hasClass('acf-added')) {
+            --newRowNum;
+          }
+          if (args.before.hasClass('acf-divider')) {
+            args.before.removeClass('acf-divider');
+            $el.addClass('acf-divider');
+          }
+          this.updateRowStatus($el, 'inserted');
+          this.updateRowStatus($el, 'reordered', newRowNum);
+
+          // Hide the row numbers to avoid confusion with existing rows.
+          $el.find('.acf-row-number').first().hide().text(newRowNum);
+          if (!$el.find('.acf-order-input-wrap').hasClass('disabled')) {
+            let message = acf.__('Order will be assigned upon save');
+            $el.find('.acf-order-input-wrap').addClass('disabled');
+            $el.find('.acf-row-number').first().after('<span title="' + message + '">-</span>');
+          }
+          $el.find('.acf-order-input').first().hide();
+          $el.attr('data-inserted', newRowNum);
+        } else {
+          this.nextRowNum++;
+          $el.find('.acf-order-input').first().val(this.nextRowNum);
+          $el.find('.acf-row-number').first().text(this.nextRowNum);
+          this.updateRowStatus($el, 'added');
+          if (!this.$tbody().find('.acf-divider').length) {
+            $el.addClass('acf-divider');
+          }
+        }
+        $el.find('.acf-input:first').find('input:not([type=hidden]), select, textarea').first().trigger('focus');
+      }
+
+      // Render and trigger change for validation errors.
+      this.render();
+      this.$input().trigger('change');
+      return $el;
+    },
+    onClickDuplicate: function (e, $el) {
+      // Validate with warning.
+      if (!this.validateAdd()) {
+        return false;
+      }
+
+      // get layout and duplicate it.
+      var $row = $el.closest('.acf-row');
+      this.duplicateRow($row);
+    },
+    duplicateRow: function ($row) {
+      // Validate without warning.
+      if (!this.allowAdd()) {
+        return false;
+      }
+
+      // Vars.
+      var fieldKey = this.get('key');
+
+      // Duplicate row.
+      var $el = acf.duplicate({
+        target: $row,
+        // Provide a custom renaming callback to avoid renaming parent row attributes.
+        rename: function (name, value, search, replace) {
+          // Rename id attributes from "field_1-search" to "field_1-replace".
+          if (name === 'id' || name === 'for') {
+            return value.replace(fieldKey + '-' + search, fieldKey + '-' + replace);
+
+            // Rename name and for attributes from "[field_1][search]" to "[field_1][replace]".
+          } else {
+            return value.replace(fieldKey + '][' + search, fieldKey + '][' + replace);
+          }
+        },
+        before: function ($el) {
+          acf.doAction('unmount', $el);
+        },
+        after: function ($el, $el2) {
+          acf.doAction('remount', $el);
+        }
+      });
+      if (this.get('pagination')) {
+        this.incrementTotalRows();
+
+        // If the row was inserted above an existing row, try to keep that order.
+        const prevRowNum = parseInt($row.find('.acf-row-number').first().text()) || 0;
+        this.updateRowStatus($el, 'inserted');
+        this.updateRowStatus($el, 'reordered', prevRowNum);
+
+        // Hide the row numbers to avoid confusion with existing rows.
+        $el.find('.acf-row-number').first().hide();
+        if (!$el.find('.acf-order-input-wrap').hasClass('disabled')) {
+          let message = acf.__('Order will be assigned upon save');
+          $el.find('.acf-order-input-wrap').addClass('disabled');
+          $el.find('.acf-row-number').first().after('<span title="' + message + '">-</span>');
+        }
+        $el.find('.acf-order-input').first().hide();
+        $el.attr('data-inserted', prevRowNum);
+        $el.removeClass('acf-divider');
+      }
+
+      // trigger change for validation errors
+      this.$input().trigger('change');
+
+      // Update order numbers.
+      this.render();
+
+      // Focus on new row.
+      acf.focusAttention($el);
+
+      // Return new layout.
+      return $el;
+    },
+    validateRemove: function () {
+      // return true if allowed
+      if (this.allowRemove()) {
+        return true;
+      }
+
+      // vars
+      var min = this.get('min');
+      var text = acf.__('Minimum rows reached ({min} rows)');
+
+      // replace
+      text = text.replace('{min}', min);
+
+      // add notice
+      this.showNotice({
+        text: text,
+        type: 'warning'
+      });
+
+      // return
+      return false;
+    },
+    onClickRemove: function (e, $el) {
+      var $row = $el.closest('.acf-row');
+
+      // Bypass confirmation when holding down "shift" key.
+      if (e.shiftKey) {
+        return this.remove($row);
+      }
+
+      // add class
+      $row.addClass('-hover');
+
+      // add tooltip
+      var tooltip = acf.newTooltip({
+        confirmRemove: true,
+        target: $el,
+        context: this,
+        confirm: function () {
+          this.remove($row);
+        },
+        cancel: function () {
+          $row.removeClass('-hover');
+        }
+      });
+    },
+    onClickRowOrder: function (e, $el) {
+      if (!this.get('pagination')) {
+        return;
+      }
+      if ($el.hasClass('disabled')) {
+        return;
+      }
+      $el.find('.acf-row-number').hide();
+      $el.find('.acf-order-input').show().trigger('select');
+    },
+    onBlurRowOrder: function (e, $el) {
+      this.onChangeRowOrder(e, $el, false);
+    },
+    onChangeRowOrder: function (e, $el) {
+      let update = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
+      if (!this.get('pagination')) {
+        return;
+      }
+      const $row = $el.closest('.acf-row');
+      const $orderSpan = $row.find('.acf-row-number').first();
+      let hrOrder = $el.val();
+      $row.find('.acf-order-input').first().hide();
+      if (!acf.isNumeric(hrOrder) || parseFloat(hrOrder) < 0) {
+        $orderSpan.show();
+        return;
+      }
+      hrOrder = Math.round(hrOrder);
+      const newOrder = hrOrder - 1;
+      $el.val(hrOrder);
+      $orderSpan.text(hrOrder).show();
+      if (update) {
+        this.updateRowStatus($row, 'reordered', newOrder);
+      }
+    },
+    onChangeTotalRows: function () {
+      const perPage = parseInt(this.get('per_page')) || 20;
+      const totalRows = parseInt(this.get('total_rows')) || 0;
+      const totalPages = Math.ceil(totalRows / perPage);
+
+      // Update the total pages in pagination.
+      this.$('.acf-total-pages:last').text(totalPages);
+      this.nextRowNum = totalRows;
+
+      // If the current page no longer exists, load the last page.
+      if (this.page > totalPages) {
+        this.page = totalPages;
+        this.ajaxLoadPage();
+      }
+    },
+    remove: function ($row) {
+      const self = this;
+      if (this.get('pagination')) {
+        this.decrementTotalRows();
+
+        // If using pagination and the row had already been saved, just hide the row instead of deleting it.
+        if ($row.data('id').includes('row-')) {
+          this.updateRowStatus($row, 'deleted');
+          $row.hide();
+          self.$input().trigger('change');
+          self.render(false);
+          return;
+        } else if ($row.hasClass('acf-divider')) {
+          $row.next('.acf-added').addClass('acf-divider');
+        }
+      }
+
+      // If not using pagination, delete the actual row.
+      acf.remove({
+        target: $row,
+        endHeight: 0,
+        complete: function () {
+          // trigger change to allow attachment save
+          self.$input().trigger('change');
+
+          // render
+          self.render();
+
+          // sync collapsed order
+          //self.sync();
+        }
+      });
+    },
+
+    isCollapsed: function ($row) {
+      return $row.hasClass('-collapsed');
+    },
+    collapse: function ($row) {
+      $row.addClass('-collapsed');
+      acf.doAction('hide', $row, 'collapse');
+    },
+    expand: function ($row) {
+      $row.removeClass('-collapsed');
+      acf.doAction('show', $row, 'collapse');
+    },
+    onClickCollapse: function (e, $el) {
+      // vars
+      var $row = $el.closest('.acf-row');
+      var isCollpased = this.isCollapsed($row);
+
+      // shift
+      if (e.shiftKey) {
+        $row = this.$rows();
+      }
+
+      // toggle
+      if (isCollpased) {
+        this.expand($row);
+      } else {
+        this.collapse($row);
+      }
+    },
+    onShow: function (e, $el, context) {
+      // get sub fields
+      var fields = acf.getFields({
+        is: ':visible',
+        parent: this.$el
+      });
+
+      // trigger action
+      // - ignore context, no need to pass through 'conditional_logic'
+      // - this is just for fields like google_map to render itself
+      acf.doAction('show_fields', fields);
+    },
+    onUnload: function () {
+      // vars
+      var indexes = [];
+
+      // loop
+      this.$rows().each(function (i) {
+        if ($(this).hasClass('-collapsed')) {
+          indexes.push(i);
+        }
+      });
+
+      // allow null
+      indexes = indexes.length ? indexes : null;
+
+      // set
+      preference.save(this.get('key'), indexes);
+    },
+    onHover: function () {
+      // add sortable
+      this.addSortable(this);
+
+      // remove event
+      this.off('mouseover');
+    },
+    onChangeField: function (e, $el) {
+      const $target = $(e.delegateTarget);
+      let $row = $el.closest('.acf-row');
+      if ($row.closest('.acf-field-repeater').data('key') !== $target.data('key')) {
+        $row = $row.parent().closest('.acf-row');
+      }
+      this.updateRowStatus($row, 'changed');
+    },
+    updateRowStatus: function ($row, status) {
+      let data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
+      if (!this.get('pagination')) {
+        return;
+      }
+      const parent_key = $row.parents('.acf-field-repeater').data('key');
+      if (this.parent() && parent_key !== this.get('key')) {
+        return;
+      }
+      const row_id = $row.data('id');
+      const input_name = this.$el.find('.acf-repeater-hidden-input:first').attr('name');
+      const status_name = `${input_name}[${row_id}][acf_${status}]`;
+      const status_input = `<input type="hidden" class="acf-row-status" name="${status_name}" value="${data}" />`;
+      if (!$row.hasClass('acf-' + status)) {
+        $row.addClass('acf-' + status);
+      }
+
+      // TODO: Update so that this doesn't get messed up with repeater subfields.
+      const $existing_status = $row.find(`input[name='${status_name}']`);
+      if (!$existing_status.length) {
+        $row.find('td').first().append(status_input);
+      } else {
+        $existing_status.val(data);
+      }
+    },
+    onClickFirstPage: function () {
+      this.validatePage(1);
+    },
+    onClickPrevPage: function () {
+      this.validatePage(this.page - 1);
+    },
+    onClickNextPage: function (e) {
+      this.validatePage(this.page + 1);
+    },
+    onClickLastPage: function () {
+      this.validatePage(this.totalPages());
+    },
+    onChangeCurrentPage: function () {
+      this.validatePage(this.$pageInput().val());
+    },
+    maybeDisablePagination: function () {
+      this.$actions().find('.acf-nav').removeClass('disabled');
+      if (this.page <= 1) {
+        this.$firstPageButton().addClass('disabled');
+        this.$prevPageButton().addClass('disabled');
+      }
+      if (this.page >= this.totalPages()) {
+        this.$nextPageButton().addClass('disabled');
+        this.$lastPageButton().addClass('disabled');
+      }
+    },
+    validatePage: function (nextPage) {
+      const self = this;
+
+      // Validate the current page.
+      acf.validateForm({
+        form: this.$control(),
+        event: '',
+        reset: true,
+        success: function ($form) {
+          self.page = nextPage;
+
+          // Set up some sane defaults.
+          if (self.page <= 1) {
+            self.page = 1;
+          }
+          if (self.page >= self.totalPages()) {
+            self.page = self.totalPages();
+          }
+          self.ajaxLoadPage();
+        },
+        failure: function ($form) {
+          self.$pageInput().val(self.page);
+          return false;
+        }
+      });
+    },
+    ajaxLoadPage: function () {
+      let clearChanged = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+      const ajaxData = acf.prepareForAjax({
+        action: 'acf/ajax/query_repeater',
+        paged: this.page,
+        field_key: this.get('key'),
+        field_name: this.get('orig_name'),
+        rows_per_page: parseInt(this.get('per_page')),
+        refresh: clearChanged
+      });
+      $.ajax({
+        url: ajaxurl,
+        method: 'POST',
+        dataType: 'json',
+        data: ajaxData,
+        context: this
+      }).done(function (response) {
+        const {
+          rows
+        } = response.data;
+        const $existingRows = this.$tbody().find('> tr');
+        $existingRows.not('.acf-clone').hide();
+        if (clearChanged) {
+          // Remove any existing rows since we are refreshing from the server.
+          $existingRows.not('.acf-clone').remove();
+
+          // Trigger a change in total rows, so we can update pagination.
+          this.set('total_rows', response.data.total_rows, false);
+        } else {
+          $existingRows.not('.acf-changed, .acf-deleted, .acf-reordered, .acf-added, .acf-inserted, .acf-clone').remove();
+        }
+        Object.keys(rows).forEach(index => {
+          let $row = false;
+          let $unsavedRow = this.$tbody().find('> *[data-id=row-' + index + ']');
+          let $insertedRow = this.$tbody().find('> *[data-inserted=' + index + ']');
+
+          // Unsaved new rows that are inserted into this specific position.
+          if ($insertedRow.length) {
+            $insertedRow.appendTo(this.$tbody()).show();
+            acf.doAction('remount', $insertedRow);
+          }
+
+          // Skip unsaved deleted rows; we don't want to show them again.
+          if ($unsavedRow.hasClass('acf-deleted')) {
+            return;
+          }
+
+          // Unsaved edited rows should be moved to correct position.
+          if ($unsavedRow.length) {
+            acf.doAction('unmount', $unsavedRow);
+            $unsavedRow.appendTo(this.$tbody()).show();
+            acf.doAction('remount', $unsavedRow);
+            return;
+          }
+
+          // Rows from the server (that haven't been changed or deleted) should be appended and shown.
+          $row = $(rows[index]);
+          this.$tbody().append($row).show();
+          acf.doAction('remount', $row);
+
+          // Move clone field back to the right spot.
+          this.$clone().appendTo(this.$tbody());
+        });
+        const $addedRows = this.$tbody().find('.acf-added:hidden');
+
+        // If there are any new rows that are still hidden, append them to the bottom.
+        if ($addedRows.length) {
+          const self = this;
+          $addedRows.each(function () {
+            const $addedRow = $(this);
+            $addedRow.insertBefore(self.$clone()).show();
+            acf.doAction('remount', $addedRow);
+          });
+        }
+
+        // Update the page input.
+        this.$pageInput().val(this.page);
+        this.maybeDisablePagination();
+      }).fail(function (jqXHR, textStatus, errorThrown) {
+        const error = acf.getXhrError(jqXHR);
+        let message = acf.__('Error loading page');
+        if ('' !== error) {
+          message = `${message}: ${error}`;
+        }
+        this.showNotice({
+          text: message,
+          type: 'warning'
+        });
+      });
+    }
+  });
+  acf.registerFieldType(Field);
+
+  // register existing conditions
+  acf.registerConditionForFieldType('hasValue', 'repeater');
+  acf.registerConditionForFieldType('hasNoValue', 'repeater');
+  acf.registerConditionForFieldType('lessThan', 'repeater');
+  acf.registerConditionForFieldType('greaterThan', 'repeater');
+
+  // state
+  var preference = new acf.Model({
+    name: 'this.collapsedRows',
+    key: function (key, context) {
+      // vars
+      var count = this.get(key + context) || 0;
+
+      // update
+      count++;
+      this.set(key + context, count, true);
+
+      // modify fieldKey
+      if (count > 1) {
+        key += '-' + count;
+      }
+
+      // return
+      return key;
+    },
+    load: function (key) {
+      // vars
+      var key = this.key(key, 'load');
+      var data = acf.getPreference(this.name);
+
+      // return
+      if (data && data[key]) {
+        return data[key];
+      } else {
+        return false;
+      }
+    },
+    save: function (key, value) {
+      // vars
+      var key = this.key(key, 'save');
+      var data = acf.getPreference(this.name) || {};
+
+      // delete
+      if (value === null) {
+        delete data[key];
+
+        // append
+      } else {
+        data[key] = value;
+      }
+
+      // allow null
+      if ($.isEmptyObject(data)) {
+        data = null;
+      }
+
+      // save
+      acf.setPreference(this.name, data);
+    }
+  });
+})(jQuery);
+
+/***/ })
+
+/******/ 	});
+/************************************************************************/
+/******/ 	// The module cache
+/******/ 	var __webpack_module_cache__ = {};
+/******/ 	
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/ 		// Check if module is in cache
+/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
+/******/ 		if (cachedModule !== undefined) {
+/******/ 			return cachedModule.exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = __webpack_module_cache__[moduleId] = {
+/******/ 			// no module.id needed
+/******/ 			// no module.loaded needed
+/******/ 			exports: {}
+/******/ 		};
+/******/ 	
+/******/ 		// Execute the module function
+/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/ 	
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/ 	
+/************************************************************************/
+/******/ 	/* webpack/runtime/compat get default export */
+/******/ 	!function() {
+/******/ 		// getDefaultExport function for compatibility with non-harmony modules
+/******/ 		__webpack_require__.n = function(module) {
+/******/ 			var getter = module && module.__esModule ?
+/******/ 				function() { return module['default']; } :
+/******/ 				function() { return module; };
+/******/ 			__webpack_require__.d(getter, { a: getter });
+/******/ 			return getter;
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/define property getters */
+/******/ 	!function() {
+/******/ 		// define getter functions for harmony exports
+/******/ 		__webpack_require__.d = function(exports, definition) {
+/******/ 			for(var key in definition) {
+/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ 				}
+/******/ 			}
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
+/******/ 	!function() {
+/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
+/******/ 	}();
+/******/ 	
+/******/ 	/* webpack/runtime/make namespace object */
+/******/ 	!function() {
+/******/ 		// define __esModule on exports
+/******/ 		__webpack_require__.r = function(exports) {
+/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 			}
+/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 		};
+/******/ 	}();
+/******/ 	
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry need to be wrapped in an IIFE because it need to be in strict mode.
+!function() {
+"use strict";
+/*!***************************************************************************!*\
+  !*** ./src/advanced-custom-fields-pro/assets/src/js/pro/acf-pro-input.js ***!
+  \***************************************************************************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _acf_field_repeater_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_acf-field-repeater.js */ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-field-repeater.js");
+/* harmony import */ var _acf_field_repeater_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_acf_field_repeater_js__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _acf_field_flexible_content_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_acf-field-flexible-content.js */ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-field-flexible-content.js");
+/* harmony import */ var _acf_field_flexible_content_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_acf_field_flexible_content_js__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var _acf_field_gallery_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_acf-field-gallery.js */ "./src/advanced-custom-fields-pro/assets/src/js/pro/_acf-field-gallery.js");
+/* harmony import */ var _acf_field_gallery_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_acf_field_gallery_js__WEBPACK_IMPORTED_MODULE_2__);
+
+
+
+}();
+/******/ })()
+;
+//# sourceMappingURL=acf-pro-input.js.map

File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/pro/acf-pro-input.js.map


File diff suppressed because it is too large
+ 0 - 0
inc/acf/assets/build/js/pro/acf-pro-input.min.js


BIN
inc/acf/assets/images/acf-logo.png


+ 7 - 0
inc/acf/assets/images/acf-logo.svg

@@ -0,0 +1,7 @@
+<svg width="55" height="24" viewBox="0 0 55 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M43.9986 23.8816H38.0521V0.0253448H53.9034V5.58064H43.9986V9.83762H53.334V15.2547H43.9986V23.8825V23.8816Z" fill="white"/>
+<path opacity="0.05" d="M36.4832 13.8697H42.3772C41.5051 19.9417 36.3849 23.9574 30.1814 23.9574C23.3882 23.9574 17.8572 18.8809 17.8572 12.0448C17.843 10.4551 18.1521 8.879 18.7658 7.41239C19.3795 5.94579 20.2849 4.61924 21.4271 3.51334C23.7714 1.24304 26.9182 -0.00834104 30.1814 0.0320335C36.3275 0.0320335 41.5908 4.07879 42.3392 10.0536H36.4511C34.6807 3.2856 23.649 3.94741 23.649 12.0448C23.649 20.1432 34.8189 20.7398 36.4832 13.8716V13.8697Z" fill="white"/>
+<path d="M35.2772 13.8697C34.266 17.2858 30.667 19.317 27.1244 18.4664C23.5798 17.6128 21.3588 14.187 22.0946 10.7047C22.8294 7.22146 26.2572 4.92655 29.8582 5.50758C31.3334 5.70738 32.6937 6.41247 33.7074 7.50273C34.408 8.22394 34.9337 9.0963 35.2442 10.0526H40.96C40.2116 4.06425 34.9337 0.0320875 28.8022 0.0320875C25.5386 -0.00942939 22.391 1.24129 20.0459 3.51144C18.903 4.61761 17.997 5.94473 17.3831 7.41208C16.7693 8.87942 16.4603 10.4563 16.4751 12.0468C16.4751 18.8829 21.9739 23.9574 28.8042 23.9574C35.0028 23.9574 40.1084 19.9418 40.996 13.8697H35.2763H35.2772Z" fill="white"/>
+<path opacity="0.05" d="M17.5146 20.4109H9.2391L7.88629 23.8776H1.55337L11.245 0H15.4689L25.5459 23.8854H18.8597L17.5127 20.4109H17.5146ZM11.5914 14.5004L11.3841 15.0396H15.4017L15.2625 14.6347L13.3919 9.51446L11.5914 14.5004Z" fill="white"/>
+<path d="M15.9476 20.4109H7.68573L6.33389 23.8776H0L9.69257 0H13.9165L23.9935 23.8854H17.3102L15.9476 20.4109ZM10.0381 14.5004L9.83174 15.0396H13.8493L13.7092 14.6347L11.8396 9.51446L10.039 14.5004H10.0381Z" fill="white"/>
+</svg>

File diff suppressed because it is too large
+ 2 - 0
inc/acf/assets/images/empty-group.svg


+ 3 - 0
inc/acf/assets/images/field-states/checkbox-active.svg

@@ -0,0 +1,3 @@
+<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M13.2002 5.8502L7.42519 11.6252L4.80019 9.0002" stroke="#0783BE" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>

+ 3 - 0
inc/acf/assets/images/field-states/checkbox-indeterminate.svg

@@ -0,0 +1,3 @@
+<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.3252 9.0002H12.6752" stroke="#0783BE" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>

+ 3 - 0
inc/acf/assets/images/field-states/radio-active.svg

@@ -0,0 +1,3 @@
+<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect x="5" y="5" width="8" height="8" rx="4" fill="#0783BE"/>
+</svg>

File diff suppressed because it is too large
+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-accordion.svg


+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-button-group.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.5 10.77c.61-.24.92-.36 1.01-.53 .07-.15.07-.33-.01-.47 -.1-.17-.41-.28-1.03-.51L4.58 3.55c-.51-.19-.77-.28-.94-.22 -.15.05-.26.16-.31.3 -.06.16.03.42.21.93l5.7 15.88c.22.62.33.93.5 1.02 .14.07.31.08.46 0 .16-.09.28-.4.52-1.02l2.59-6.68c.04-.13.07-.19.1-.24 .03-.05.07-.09.11-.12 .05-.04.11-.06.23-.11l6.67-2.6Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-checkbox.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7.5 12l3 3 6-6M7.8 21h8.4c1.68 0 2.52 0 3.16-.33 .56-.29 1.02-.75 1.31-1.32 .32-.65.32-1.49.32-3.17v-8.4c0-1.69 0-2.53-.33-3.17 -.29-.57-.75-1.03-1.32-1.32 -.65-.33-1.49-.33-3.17-.33h-8.4c-1.69 0-2.53 0-3.17.32 -.57.28-1.03.74-1.32 1.31 -.33.64-.33 1.48-.33 3.16v8.4c0 1.68 0 2.52.32 3.16 .28.56.74 1.02 1.31 1.31 .64.32 1.48.32 3.16.32Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-clone.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.5 2c-.68 0-1.09.04-1.41.21 -.38.19-.69.49-.88.87 -.17.32-.21.73-.22 1.4m11.49-2.5c.67 0 1.08.04 1.4.21 .37.19.68.49.87.87 .16.32.2.73.21 1.4m0 9c-.01.67-.05 1.08-.22 1.4 -.2.37-.5.68-.88.87 -.33.16-.74.2-1.41.21m2.5-8v2m-8-8h1.99m-10.8 20h7.6c1.12 0 1.68 0 2.1-.22 .37-.2.68-.5.87-.88 .21-.43.21-.99.21-2.11v-7.6c0-1.13 0-1.69-.22-2.11 -.2-.38-.5-.69-.88-.88 -.43-.22-.99-.22-2.11-.22h-7.6c-1.13 0-1.69 0-2.11.21 -.38.19-.69.49-.88.87 -.22.42-.22.98-.22 2.1v7.6c0 1.12 0 1.68.21 2.1 .19.37.49.68.87.87 .42.21.98.21 2.1.21Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-color-picker.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 14c0 4.41-3.59 8-8 8 -4.42 0-8-3.59-8-8 0-1.07.2-2.08.58-3 1.18-2.94 7.41-9 7.41-9s6.23 6.06 7.41 9c.375.92.58 1.93.58 3Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-date-picker.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 10H3m13-8v4M8 2v4m-.2 16h8.4c1.68 0 2.52 0 3.16-.33 .56-.29 1.02-.75 1.31-1.32 .32-.65.32-1.49.32-3.17v-8.4c0-1.69 0-2.53-.33-3.17 -.29-.57-.75-1.03-1.32-1.32 -.65-.33-1.49-.33-3.17-.33h-8.4c-1.69 0-2.53 0-3.17.32 -.57.28-1.03.74-1.32 1.31 -.33.64-.33 1.48-.33 3.16v8.4c0 1.68 0 2.52.32 3.16 .28.56.74 1.02 1.31 1.31 .64.32 1.48.32 3.16.32Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-date-time-picker.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 10H3m13-8v4M8 2v4m-.2 16h8.4c1.68 0 2.52 0 3.16-.33 .56-.29 1.02-.75 1.31-1.32 .32-.65.32-1.49.32-3.17v-8.4c0-1.69 0-2.53-.33-3.17 -.29-.57-.75-1.03-1.32-1.32 -.65-.33-1.49-.33-3.17-.33h-8.4c-1.69 0-2.53 0-3.17.32 -.57.28-1.03.74-1.32 1.31 -.33.64-.33 1.48-.33 3.16v8.4c0 1.68 0 2.52.32 3.16 .28.56.74 1.02 1.31 1.31 .64.32 1.48.32 3.16.32Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-default.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20.01 6.4l-8.5 4.72c-.49.26-.66.87-.39 1.35 .26.48.87.65 1.35.38l8.5-4.73c.48-.27.65-.88.38-1.36 -.27-.49-.88-.66-1.36-.39Zm-7.53 4.72L3.97 6.39c-.49-.27-1.1-.1-1.36.38 -.27.48-.1 1.09.38 1.35l8.5 4.72c.48.26 1.09.09 1.35-.39 .26-.49.09-1.1-.39-1.36Zm-1.49.87v9.5c0 .55.44 1 1 1 .55 0 1-.45 1-1v-9.5c0-.56-.45-1-1-1 -.56 0-1 .44-1 1Zm11 4.05V7.92c0-.56-.01-.71-.11-.99 -.09-.27-.24-.52-.43-.73 -.2-.22-.33-.3-.81-.57l-7.4-4.12c-.47-.26-.59-.32-.86-.38s-.55-.06-.81-.01c-.03 0-.03 0-.06.01 -.25.06-.37.11-.81.35L3.29 5.59c-.33.18-.43.23-.57.34 -.09.06-.17.13-.25.21 -.2.2-.34.45-.43.72 -.1.27-.11.42-.11.98v8.11c0 .55 0 .7.1.98 .08.27.23.51.42.72 .19.21.32.29.8.56l7.4 4.11c.45.25.58.31.85.37 .26.05.54.05.8-.01 .27-.06.4-.12.85-.38l7.39-4.12c.48-.27.6-.35.8-.57 .19-.21.33-.46.42-.73 .09-.28.1-.43.1-.99Zm-2 0c0 .3-.01.36 0 .35 -.01 0 0 0 0 0 0-.01-.05.02-.31.17l-7.41 4.11c-.25.13-.31.16-.3.16 0-.01 0-.01 0 0 .01 0-.05-.03-.3-.17l-7.41-4.12c-.27-.15-.32-.19-.31-.18 -.01-.01-.01-.01-.01-.01 0 .01 0-.06 0-.36V7.87c0-.31 0-.37 0-.36 -.01 0-.01 0 0 0 -.02.01-.02.01-.03.02 .03-.03.1-.07.33-.2l7.4-4.12c.24-.14.3-.17.3-.17 -.01 0-.01 0-.01 0 0-.01-.01-.01 0 0 -.02-.01.04.02.29.16l7.4 4.11c.26.14.31.18.3.17 -.01-.01-.01-.01-.01-.01 -.01-.02 0 .05 0 .35v8.11Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-email.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7.99v5c0 .79.31 1.55.87 2.12 .56.56 1.32.87 2.12.87 .79 0 1.55-.32 2.12-.88 .56-.57.87-1.33.87-2.13v-1c-.01-2.26-.77-4.45-2.17-6.22 -1.41-1.77-3.37-3.01-5.57-3.53s-4.51-.27-6.55.69c-2.05.96-3.7 2.59-4.7 4.61 -1 2.02-1.29 4.32-.81 6.53 .47 2.2 1.68 4.18 3.42 5.62 1.74 1.43 3.92 2.23 6.17 2.27 2.25.03 4.46-.69 6.25-2.06m-2.08-7.94c0 2.2-1.8 4-4 4 -2.21 0-4-1.8-4-4 0-2.21 1.79-4.01 4-4.01 2.2 0 4 1.79 4 4Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-file.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21.15 10.89l-9.02 9.01c-2.06 2.05-5.38 2.05-7.43 0 -2.06-2.06-2.06-5.38 0-7.43l9.01-9.02c1.36-1.37 3.58-1.37 4.94-.001 1.36 1.36 1.36 3.58 0 4.94l-8.662 8.66c-.69.68-1.8.68-2.48 0 -.69-.69-.69-1.8 0-2.48l7.6-7.61"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-flexible-content.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.11 15.35c-.28.3-.56.6-.86.9 -4.3 4.29-9.68 5.87-12.03 3.53 -1.61-1.61-1.37-4.65.32-7.78m2.32-3.3c.28-.33.57-.64.88-.95 4.29-4.3 9.67-5.88 12.02-3.54 1.6 1.6 1.36 4.64-.33 7.78m-3.21-4.25c4.29 4.29 5.87 9.67 3.53 12.02 -2.35 2.34-7.73.76-12.03-3.54 -4.3-4.3-5.88-9.68-3.54-12.03 2.34-2.35 7.72-.77 12.02 3.53Zm-3.27 4.22c0 .55-.45 1-1 1 -.56 0-1-.45-1-1 0-.56.44-1 1-1 .55 0 1 .44 1 1Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-gallery.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16.2 21H6.93c-.61 0-.91 0-1.05-.12 -.13-.11-.19-.26-.18-.42 .01-.19.22-.4.65-.83l8.5-8.51c.39-.4.59-.6.82-.67 .2-.07.41-.07.61 0 .22.07.42.27.82.66l3.86 3.86v1.2m-4.8 4.8c1.68 0 2.52 0 3.16-.33 .56-.29 1.02-.75 1.31-1.32 .32-.65.32-1.49.32-3.17m-4.8 4.8h-8.4c-1.69 0-2.53 0-3.17-.33 -.57-.29-1.03-.75-1.32-1.32 -.33-.65-.33-1.49-.33-3.17v-8.4c0-1.69 0-2.53.32-3.17 .28-.57.74-1.03 1.31-1.32 .64-.33 1.48-.33 3.16-.33h8.4c1.68 0 2.52 0 3.16.32 .56.28 1.02.74 1.31 1.31 .32.64.32 1.48.32 3.16v8.4m-10.5-7.7c0 1.1-.9 2-2 2 -1.11 0-2-.9-2-2 0-1.11.89-2 2-2 1.1 0 2 .89 2 2Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-google-map.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 18l-7 4V6l7-4m0 16l7 4m-7-4V2m7 20l6-4V2l-6 4m0 16V6m0 0L9 2"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-group.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2 12l9.64 4.82c.13.06.19.09.26.11 .06.01.12.01.18 0 .06-.02.13-.05.26-.12l9.64-4.83m-20 5l9.64 4.82c.13.06.19.09.26.11 .06.01.12.01.18 0 .06-.02.13-.05.26-.12l9.64-4.83m-20-10.01l9.64-4.83c.13-.07.19-.1.26-.12 .06-.02.12-.02.18 0 .06.01.13.04.26.11l9.64 4.82 -9.65 4.82c-.14.06-.2.09-.27.11 -.07.01-.13.01-.19 0 -.07-.02-.14-.05-.27-.12L1.91 6.91Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-image.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16.2 21H6.93c-.61 0-.91 0-1.05-.12 -.13-.11-.19-.26-.18-.42 .01-.19.22-.4.65-.83l8.5-8.51c.39-.4.59-.6.82-.67 .2-.07.41-.07.61 0 .22.07.42.27.82.66l3.86 3.86v1.2m-4.8 4.8c1.68 0 2.52 0 3.16-.33 .56-.29 1.02-.75 1.31-1.32 .32-.65.32-1.49.32-3.17m-4.8 4.8h-8.4c-1.69 0-2.53 0-3.17-.33 -.57-.29-1.03-.75-1.32-1.32 -.33-.65-.33-1.49-.33-3.17v-8.4c0-1.69 0-2.53.32-3.17 .28-.57.74-1.03 1.31-1.32 .64-.33 1.48-.33 3.16-.33h8.4c1.68 0 2.52 0 3.16.32 .56.28 1.02.74 1.31 1.31 .32.64.32 1.48.32 3.16v8.4m-10.5-7.7c0 1.1-.9 2-2 2 -1.11 0-2-.9-2-2 0-1.11.89-2 2-2 1.1 0 2 .89 2 2Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-link.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12.7 18.36l-1.42 1.41c-1.96 1.95-5.12 1.95-7.08 0 -1.96-1.96-1.96-5.12 0-7.071l1.41-1.42m12.72 1.41l1.41-1.42c1.95-1.96 1.95-5.12 0-7.08 -1.96-1.96-5.12-1.96-7.08 0l-1.42 1.41m-2.8 9.86l7-7"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-message.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 16v-4m0-4.01h.01M3 7.93v8.11c0 .34 0 .51.05.66 .04.13.11.25.21.36 .1.11.25.2.55.36l7.4 4.11c.28.15.42.23.57.26 .13.02.27.02.4 0 .15-.04.29-.11.57-.27l7.4-4.12c.29-.17.44-.25.55-.37 .09-.11.16-.23.21-.37 .05-.16.05-.33.05-.67V7.87c0-.35 0-.52-.06-.67 -.05-.14-.12-.26-.22-.37 -.11-.12-.26-.21-.56-.37l-7.4-4.12c-.29-.16-.43-.24-.58-.27 -.14-.03-.27-.03-.41 0 -.16.03-.3.1-.58.26L3.74 6.44c-.3.16-.45.24-.56.36 -.1.1-.17.22-.22.36 -.06.15-.06.32-.06.66Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-number.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.49 3l-3 18m11-18l-3 18m6-13h-17m16 8h-17"/></svg>

File diff suppressed because it is too large
+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-oembed.svg


+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-page-link.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 10V4.5C6 3.67 6.67 3 7.5 3 8.32 3 9 3.67 9 4.5V10c0 1.65-1.35 3-3 3 -1.66 0-3-1.35-3-3V6m9.5-4h2.7c1.68 0 2.52 0 3.16.32 .56.28 1.02.74 1.31 1.31 .32.64.32 1.48.32 3.16v10.4c0 1.68 0 2.52-.33 3.16 -.29.56-.75 1.02-1.32 1.31 -.65.32-1.49.32-3.17.32h-6.4c-1.69 0-2.53 0-3.17-.33 -.57-.29-1.03-.75-1.32-1.32 -.33-.65-.33-1.49-.33-3.17v-.7"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-password.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 9h.01M15 15c3.31 0 6-2.69 6-6 0-3.32-2.69-6-6-6 -3.32 0-6 2.68-6 6 0 .27.01.54.05.8 .05.43.08.65.06.78 -.03.14-.05.22-.12.34 -.07.12-.19.24-.43.47L3.44 16.5c-.18.17-.26.25-.33.36 -.06.08-.1.18-.12.28 -.03.11-.03.23-.03.48v1.73c0 .56 0 .84.1 1.05 .09.18.24.34.43.43 .21.1.49.1 1.05.1h1.73c.24 0 .36 0 .48-.03 .1-.03.19-.07.28-.12 .1-.07.18-.15.36-.33l5.11-5.12c.23-.24.35-.36.47-.43 .12-.08.2-.1.34-.12 .13-.02.35 0 .78.06 .26.03.53.05.8.05Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-post-object.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 2.26v4.13c0 .56 0 .84.1 1.05 .09.18.24.34.43.43 .21.1.49.1 1.05.1h4.13m-3.74 4.99h-8m8 4h-8m2-8h-2m6-7h-5.2c-1.69 0-2.53 0-3.17.32 -.57.28-1.03.74-1.32 1.31 -.33.64-.33 1.48-.33 3.16v10.4c0 1.68 0 2.52.32 3.16 .28.56.74 1.02 1.31 1.31 .64.32 1.48.32 3.16.32h6.4c1.68 0 2.52 0 3.16-.33 .56-.29 1.02-.75 1.31-1.32 .32-.65.32-1.49.32-3.17v-9.2l-6-6Z"/></svg>

+ 3 - 0
inc/acf/assets/images/field-type-icons/icon-field-radio.svg

@@ -0,0 +1,3 @@
+<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3ZM1 12C1 5.92487 5.92487 1 12 1C18.0751 1 23 5.92487 23 12C23 18.0751 18.0751 23 12 23C5.92487 23 1 18.0751 1 12ZM9.82589 10.0834C9.26014 10.7521 9 11.5305 9 12C9 13.5314 10.1324 15 12 15C13.8676 15 15 13.5314 15 12C15 10.4686 13.8676 9 12 9C11.1113 9 10.3715 9.43857 9.82589 10.0834ZM8.29911 8.79156C9.12845 7.81143 10.3887 7 12 7C15.1324 7 17 9.5314 17 12C17 14.4686 15.1324 17 12 17C8.86759 17 7 14.4686 7 12C7 10.9695 7.48986 9.74795 8.29911 8.79156Z" fill="#101828"/>
+</svg>

+ 3 - 0
inc/acf/assets/images/field-type-icons/icon-field-range.svg

@@ -0,0 +1,3 @@
+<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M19 9.5C17.8954 9.5 17 10.3954 17 11.5C17 12.6046 17.8954 13.5 19 13.5C20.1046 13.5 21 12.6046 21 11.5C21 10.3954 20.1046 9.5 19 9.5ZM15.126 10.5C15.5701 8.77477 17.1362 7.5 19 7.5C21.2091 7.5 23 9.29086 23 11.5C23 13.7091 21.2091 15.5 19 15.5C17.1362 15.5 15.5701 14.2252 15.126 12.5H8.87398C8.42994 14.2252 6.86384 15.5 5 15.5C2.79086 15.5 1 13.7091 1 11.5C1 9.29086 2.79086 7.5 5 7.5C6.86384 7.5 8.42994 8.77477 8.87398 10.5H15.126ZM5 9.5C3.89543 9.5 3 10.3954 3 11.5C3 12.6046 3.89543 13.5 5 13.5C6.10457 13.5 7 12.6046 7 11.5C7 10.3954 6.10457 9.5 5 9.5Z" fill="#101828"/>
+</svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-relationship.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g stroke-linecap="round" stroke-width="2" stroke="#000" fill="none" stroke-linejoin="round"><path d="M9 16c3.86 0 7-3.14 7-7 0-3.87-3.14-7-7-7C5.13 2 2 5.13 2 9c0 3.86 3.13 7 7 7Z"/><path d="M15 22c3.86 0 7-3.14 7-7 0-3.87-3.14-7-7-7 -3.87 0-7 3.13-7 7 0 3.86 3.13 7 7 7Z"/></g></svg>

File diff suppressed because it is too large
+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-repeater.svg


File diff suppressed because it is too large
+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-select.svg


+ 3 - 0
inc/acf/assets/images/field-type-icons/icon-field-tab.svg

@@ -0,0 +1,3 @@
+<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5 2.5C5 1.94772 5.44772 1.5 6 1.5H18C18.5523 1.5 19 1.94772 19 2.5C19 3.05228 18.5523 3.5 18 3.5H6C5.44772 3.5 5 3.05228 5 2.5ZM3 6.5C3 5.94772 3.44772 5.5 4 5.5H20C20.5523 5.5 21 5.94772 21 6.5C21 7.05228 20.5523 7.5 20 7.5H4C3.44772 7.5 3 7.05228 3 6.5ZM1 12C1 10.6193 2.11929 9.5 3.5 9.5H20.5C21.8807 9.5 23 10.6193 23 12V20C23 21.3807 21.8807 22.5 20.5 22.5H3.5C2.11929 22.5 1 21.3807 1 20V12ZM3.5 11.5C3.22386 11.5 3 11.7239 3 12V20C3 20.2761 3.22386 20.5 3.5 20.5H20.5C20.7761 20.5 21 20.2761 21 20V12C21 11.7239 20.7761 11.5 20.5 11.5H3.5Z" fill="#101828"/>
+</svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-taxonomy.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 8h.01M2 5.2v4.47c0 .48 0 .73.05.96 .04.2.12.39.23.57 .12.2.29.37.64.72l7.66 7.66c1.18 1.18 1.78 1.78 2.46 2 .6.19 1.25.19 1.85 0 .68-.23 1.27-.82 2.46-2.01l2.21-2.22c1.18-1.19 1.78-1.79 2-2.47 .19-.61.19-1.26 0-1.86 -.23-.69-.82-1.28-2.01-2.47l-7.67-7.67c-.35-.35-.52-.52-.73-.65 -.18-.11-.38-.2-.58-.24 -.24-.06-.48-.06-.97-.06H5.12c-1.13 0-1.69 0-2.11.21 -.38.19-.69.49-.88.87 -.22.42-.22.98-.22 2.1ZM8.5 8c0 .27-.23.5-.5.5 -.28 0-.5-.23-.5-.5 0-.28.22-.5.5-.5 .27 0 .5.22.5.5Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-text.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 7c0-.94 0-1.4.15-1.77 .2-.5.59-.88 1.08-1.09 .36-.16.83-.16 1.76-.16h10c.93 0 1.39 0 1.76.15 .49.2.87.59 1.08 1.08 .15.36.15.83.15 1.76m-11 13h6m-3-16v16"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-textarea.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7h8m-4 0v10m-4.2 4h8.4c1.68 0 2.52 0 3.16-.33 .56-.29 1.02-.75 1.31-1.32 .32-.65.32-1.49.32-3.17v-8.4c0-1.69 0-2.53-.33-3.17 -.29-.57-.75-1.03-1.32-1.32 -.65-.33-1.49-.33-3.17-.33h-8.4c-1.69 0-2.53 0-3.17.32 -.57.28-1.03.74-1.32 1.31 -.33.64-.33 1.48-.33 3.16v8.4c0 1.68 0 2.52.32 3.16 .28.56.74 1.02 1.31 1.31 .64.32 1.48.32 3.16.32Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-time-picker.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6v6l4 2m6-2c0 5.52-4.48 10-10 10C6.47 22 2 17.52 2 12 2 6.47 6.47 2 12 2c5.52 0 10 4.47 10 10Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-true-false.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g stroke-linecap="round" stroke-width="2" stroke="#000" fill="none" stroke-linejoin="round"><path d="M2 12c0-3.32 2.68-6 6-6h8c3.31 0 6 2.68 6 6 0 3.31-2.69 6-6 6H8c-3.32 0-6-2.69-6-6Z"/><path d="M16 14.5c1.38 0 2.5-1.12 2.5-2.5 0-1.39-1.12-2.5-2.5-2.5 -1.39 0-2.5 1.11-2.5 2.5 0 1.38 1.11 2.5 2.5 2.5Z"/></g></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-url.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M2 12h20M2 12c0 5.52 4.47 10 10 10M2 12C2 6.47 6.47 2 12 2m10 10c0 5.52-4.48 10-10 10m10-10c0-5.53-4.48-10-10-10m0 0c2.5 2.73 3.92 6.29 4 10 -.08 3.7-1.5 7.26-4 10m0-20C9.49 4.73 8.07 8.29 8 12c.07 3.7 1.49 7.26 4 10"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-user.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 21c0-1.4 0-2.1-.18-2.67 -.39-1.28-1.39-2.28-2.67-2.67 -.57-.18-1.27-.18-2.67-.18h-5c-1.4 0-2.1 0-2.67.17 -1.28.38-2.28 1.38-2.67 2.66 -.18.56-.18 1.26-.18 2.66m12.5-13.5c0 2.48-2.02 4.5-4.5 4.5 -2.49 0-4.5-2.02-4.5-4.5 0-2.49 2.01-4.5 4.5-4.5 2.48 0 4.5 2.01 4.5 4.5Z"/></svg>

+ 1 - 0
inc/acf/assets/images/field-type-icons/icon-field-wysiwyg.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 4H3m18 16H3M9 9.25H3m6 5.5H3M14.6 16h4.8c.56 0 .84 0 1.05-.11 .18-.1.34-.25.43-.44 .1-.22.1-.5.1-1.06v-4.8c0-.57 0-.85-.11-1.06 -.1-.19-.25-.35-.44-.44 -.22-.11-.5-.11-1.06-.11h-4.8c-.57 0-.85 0-1.06.1 -.19.09-.35.24-.44.43 -.11.21-.11.49-.11 1.05v4.8c0 .56 0 .84.1 1.05 .09.18.24.34.43.43 .21.1.49.1 1.05.1Z"/></svg>

+ 6 - 0
inc/acf/assets/images/icon-upgrade-pro.svg

@@ -0,0 +1,6 @@
+<svg width="16" height="14" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M15.0007 5.3894H1.03223" stroke="#425FDD" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M8.8642 12.6272C8.4484 13.0748 7.74042 13.1294 7.26844 12.7363C7.22349 12.6927 7.17854 12.6599 7.14482 12.6162L1.27873 6.04436H1.2776C0.929234 5.6513 0.906759 5.08353 1.22142 4.66863L3.70495 1.43674C3.90723 1.15286 4.24437 1 4.60397 1H11.3466C11.695 1 12.0321 1.15286 12.2456 1.43674L14.7404 4.65771C15.0551 5.0617 15.0326 5.62946 14.6842 6.02253L8.8642 12.6272Z" stroke="#425FDD" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M4.12207 1.15283L7.83052 12.9885" stroke="#425FDD" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M11.9096 1.15283L8.24609 12.9776" stroke="#425FDD" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>

+ 1 - 0
inc/acf/assets/images/icons/icon-add.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 5v14m-7-7h14"/></svg>

+ 1 - 0
inc/acf/assets/images/icons/icon-arrow-left.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 12H5m0 0l7 7m-7-7l7-7"/></svg>

+ 1 - 0
inc/acf/assets/images/icons/icon-arrow-right.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h14m0 0l-7-7m7 7l-7 7"/></svg>

+ 1 - 0
inc/acf/assets/images/icons/icon-check-circle-solid.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M12 1C5.92 1 1 5.92 1 12c0 6.07 4.92 11 11 11 6.07 0 11-4.93 11-11 0-6.08-4.93-11-11-11Zm5.2 8.7c.39-.4.39-1.03 0-1.42 -.4-.4-1.03-.4-1.42 0l-5.3 5.29 -2.3-2.3c-.4-.4-1.03-.4-1.42 0 -.4.39-.4 1.02 0 1.41l3 3c.39.39 1.02.39 1.41 0l6-6Z"/></svg>

+ 1 - 0
inc/acf/assets/images/icons/icon-check.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M20.7 5.29c.39.39.39 1.02 0 1.41l-11 10.99c-.4.39-1.03.39-1.42 0l-5-5c-.4-.4-.4-1.03 0-1.42 .39-.4 1.02-.4 1.41 0l4.29 4.29 10.29-10.3c.39-.4 1.02-.4 1.41 0Z"/></svg>

+ 1 - 0
inc/acf/assets/images/icons/icon-chevron-down.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="none" stroke="#667085" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 9l6 6 6-6"/></svg>

+ 1 - 0
inc/acf/assets/images/icons/icon-chevron-left-double.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><path d="M18.7 6.29c.39.39.39 1.02 0 1.41l-4.3 4.29 4.29 4.29c.39.39.39 1.02 0 1.41 -.4.39-1.03.39-1.42 0l-5-5c-.4-.4-.4-1.03 0-1.42l5-5.01c.39-.4 1.02-.4 1.41 0Z"/><path d="M11.7 6.29c.39.39.39 1.02 0 1.41l-4.3 4.29 4.29 4.29c.39.39.39 1.02 0 1.41 -.4.39-1.03.39-1.42 0l-5.01-5c-.4-.4-.4-1.03 0-1.42l5-5.01c.39-.4 1.02-.4 1.41 0Z"/></g></svg>

+ 1 - 0
inc/acf/assets/images/icons/icon-chevron-left.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" fill="#667085" d="M15.7 5.29c.39.39.39 1.02 0 1.41l-5.3 5.29 5.29 5.29c.39.39.39 1.02 0 1.41 -.4.39-1.03.39-1.42 0l-6.01-6c-.4-.4-.4-1.03 0-1.42l6-6.01c.39-.4 1.02-.4 1.41 0Z"/></svg>

+ 1 - 0
inc/acf/assets/images/icons/icon-chevron-right-double.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g fill-rule="evenodd"><path d="M5.29 6.29c.39-.4 1.02-.4 1.41 0l4.99 5c.39.39.39 1.02 0 1.41l-5 5c-.4.39-1.03.39-1.42 0 -.4-.4-.4-1.03 0-1.42l4.29-4.3 -4.3-4.3c-.4-.4-.4-1.03 0-1.42Z"/><path d="M12.29 6.29c.39-.4 1.02-.4 1.41 0l5 5c.39.39.39 1.02 0 1.41l-5 5c-.4.39-1.03.39-1.42 0 -.4-.4-.4-1.03 0-1.42l4.29-4.3 -4.3-4.3c-.4-.4-.4-1.03 0-1.42Z"/></g></svg>

+ 1 - 0
inc/acf/assets/images/icons/icon-chevron-right.svg

@@ -0,0 +1 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" fill="#667085" d="M8.29 5.29c.39-.4 1.02-.4 1.41 0l5.99 6c.39.39.39 1.02 0 1.41l-6 6c-.4.39-1.03.39-1.42 0 -.4-.4-.4-1.03 0-1.42l5.29-5.3 -5.3-5.3c-.4-.4-.4-1.03 0-1.42Z"/></svg>

Some files were not shown because too many files changed in this diff