SiteOrigin Widgets Bundle - Version 1.19.0

Version Description

  • 19 May 2021 =
  • Contact Form: Added a new Number field type.
  • Image Grid: Changed vertical align to baseline.
  • Layout Slider: Added a slider_control shortcode.
  • Slider: Ensured the foreground image height is only set if a background image is present.
  • Sliders: Added Always show navigation on desktop setting.
  • Social Media Buttons: Added IMDb.
  • Video Player: Added FitVids support for fluid width video embeds.
  • Widget Block: Added a widget type search field.
  • Widget Block: Minor media field responsive improvements.
  • Widget Block: Automatically activate inactive widgets as needed.
  • Styling improvements to the icon filter fields.
  • Responsive improvements to the Plugins > SiteOrigin Widgets page.
  • Developer: Added a multi-upload field for media.
  • Developer: Added an option to disable the TinyMCE form field Add Media button.
  • Developer: Added form field class prefix and path filtering using siteorigin_widgets_field_registered_class_prefixes and siteorigin_widgets_field_registered_class_paths.
Download this release

Release Info

Developer SiteOrigin
Plugin Icon 128x128 SiteOrigin Widgets Bundle
Version 1.19.0
Comparing to
See all releases

Code changes from version 1.18.2 to 1.19.0

Files changed (39) hide show
  1. admin/admin.css +1 -1
  2. admin/admin.js +12 -6
  3. admin/admin.min.js +1 -1
  4. base/inc/fields/css/icon-field.css +1 -1
  5. base/inc/fields/css/media-field.css +1 -1
  6. base/inc/fields/css/multiple-media-field.css +1 -0
  7. base/inc/fields/js/multiple-media-field.js +129 -0
  8. base/inc/fields/js/multiple-media-field.min.js +1 -0
  9. base/inc/fields/js/tinymce-field.js +1 -1
  10. base/inc/fields/js/tinymce-field.min.js +1 -1
  11. base/inc/fields/multiple-media.class.php +122 -0
  12. base/inc/fields/siteorigin-widget-field-class-loader.class.php +4 -1
  13. base/inc/fields/tinymce.class.php +19 -6
  14. base/inc/routes/siteorigin-widgets-resource.class.php +9 -0
  15. base/inc/widgets/base-slider.class.php +6 -0
  16. compat/block-editor/widget-block.css +1 -0
  17. compat/block-editor/widget-block.js +7 -10
  18. compat/block-editor/widget-block.min.js +1 -1
  19. compat/block-editor/widget-block.php +25 -2
  20. js/lib/jquery.fitvids.js +87 -0
  21. js/lib/jquery.fitvids.min.js +9 -0
  22. js/slider/jquery.slider.js +19 -15
  23. js/slider/jquery.slider.min.js +1 -1
  24. lang/so-widgets-bundle.pot +232 -192
  25. readme.txt +19 -2
  26. so-widgets-bundle.php +2 -2
  27. widgets/contact/contact.php +9 -0
  28. widgets/contact/fields/number.class.php +5 -0
  29. widgets/image-grid/styles/default.less +1 -0
  30. widgets/layout-slider/js/slide-control.js +30 -0
  31. widgets/layout-slider/js/slide-control.min.js +1 -0
  32. widgets/layout-slider/layout-slider.php +52 -0
  33. widgets/slider/slider.php +10 -4
  34. widgets/slider/styles/default.less +5 -0
  35. widgets/social-media-buttons/data/networks.php +6 -0
  36. widgets/video/js/so-video-widget.js +10 -4
  37. widgets/video/js/so-video-widget.min.js +1 -1
  38. widgets/video/tpl/default.php +2 -1
  39. widgets/video/video.php +22 -1
admin/admin.css CHANGED
@@ -1 +1 @@
1
- #sow-widgets-page{margin:0 0 0 -20px}#sow-widgets-page .page-banner{display:block;padding:15px 30px 5px 30px;background:#f6f6f6;position:relative}#sow-widgets-page .page-banner .icon{float:left;display:inline-block;width:50px;height:43px;position:relative;margin:8px 22px 0 0}#sow-widgets-page .page-banner .icon img{position:absolute}#sow-widgets-page .page-banner .icon img.icon-back{top:0;left:0}#sow-widgets-page .page-banner .icon img.icon-gear{top:0;left:12px;-webkit-animation:spin 60s linear infinite;-moz-animation:spin 60s linear infinite;animation:spin 60s linear infinite}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}#sow-widgets-page .page-banner .icon img.icon-front{top:0;left:0}#sow-widgets-page .page-banner h1{font:300 2.3em/1.4em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;color:#666}#sow-widgets-page .page-banner #sow-widget-search{position:absolute;bottom:-35px;right:19px}#sow-widgets-page .page-banner #sow-widget-search input{box-sizing:border-box;width:200px}#sow-widgets-page .page-banner #sow-widget-search .results{display:none;box-sizing:border-box;position:absolute;top:100%;left:1px;width:200px;background:#ffffff;border:1px solid #e0e0e0;padding:0;margin:-2px 0 0 0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:0 1px 1px rgba(0,0,0,0.075);box-shadow:0 1px 1px rgba(0,0,0,0.075)}#sow-widgets-page .page-banner #sow-widget-search .results li{margin:0;padding:5px;font-size:.95em;font-weight:bold;color:#777;cursor:pointer}#sow-widgets-page .page-banner #sow-widget-search .results li:hover{background:#f7f7f7}#sow-widgets-page .page-nav{background:#f6f6f6;border-bottom:1px solid #d6d6d6;padding:5px 0 0 30px;margin:0;font-size:0}#sow-widgets-page .page-nav li{display:inline-block;margin:0 0 -1px 0;background:#f6f6f6;line-height:1em;font-size:12px;position:relative;border:1px solid #d6d6d6;border-width:1px 0 1px 1px;transition:all .2s}#sow-widgets-page .page-nav li:last-child{border-right-width:1px}#sow-widgets-page .page-nav li a{display:block;text-decoration:none;color:#555;padding:12px 25px;font-weight:bold;box-shadow:none !important}#sow-widgets-page .page-nav li:hover{background:#f3f3f3}#sow-widgets-page .page-nav li.active{background:#f0f0f0;border-bottom-color:#f0f0f0}#sow-widgets-page #widgets-list{zoom:1;margin:25px 18px 0 18px;position:relative}#sow-widgets-page #widgets-list:before{content:'';display:block}#sow-widgets-page #widgets-list:after{content:'';display:table;clear:both}#sow-widgets-page #widgets-list .so-widget-wrap{float:left;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 12px 24px 12px;width:25%}@media screen and (max-width:1800px){#sow-widgets-page #widgets-list .so-widget-wrap{width:33.333%}}@media screen and (max-width:1280px){#sow-widgets-page #widgets-list .so-widget-wrap{width:50%}}@media screen and (max-width:960px){#sow-widgets-page #widgets-list .so-widget-wrap{width:100%}}#sow-widgets-page #widgets-list .so-widget{border:1px solid #D9D9D9;float:left;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05);padding:0;width:100%;background:#fefefe;position:relative;overflow:hidden}#sow-widgets-page #widgets-list .so-widget .so-widget-banner{width:128px;height:128px;float:left;margin:20px;overflow:hidden}#sow-widgets-page #widgets-list .so-widget .so-widget-banner img,#sow-widgets-page #widgets-list .so-widget .so-widget-banner svg{height:128px;width:auto}#sow-widgets-page #widgets-list .so-widget .so-widget-text{padding:20px 20px 20px 0;margin-left:178px}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-active-indicator{float:right;margin:0 0 10px 10px;background:#00a0d2;padding:4px 10px;color:#fff;border-radius:3px;-webkit-transition:all .35s ease;-moz-transition:all .35s ease;-o-transition:all .35s ease;transition:all .35s ease}#sow-widgets-page #widgets-list .so-widget .so-widget-text h3{color:#0073aa;font-size:1.4em;font-weight:500;margin-top:0}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-description{margin:0;line-height:1.35em;color:#777777}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-byline{font-size:.9em;margin-top:10px;color:#999;font-style:italic}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-byline a{color:#666;text-decoration:none}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-byline a:hover{color:#555;text-decoration:underline}#sow-widgets-page #widgets-list .so-widget .so-action-links:after{content:"";display:table;clear:both}#sow-widgets-page #widgets-list .so-widget .so-action-links .so-widget-toggle-active,#sow-widgets-page #widgets-list .so-widget .so-action-links .so-widget-settings,#sow-widgets-page #widgets-list .so-widget .so-action-links .so-widget-documentation{display:inline-block;float:left;margin-right:1em;margin-top:.5em}#sow-widgets-page #widgets-list .so-widget .so-action-links .so-widget-toggle-active button:focus{outline:none}#sow-widgets-page #widgets-list .so-widget .so-action-links .so-widget-documentation{margin-top:1em}#sow-widgets-page #widgets-list .so-widget.so-widget-is-active .so-widget-toggle-active .so-widget-activate{display:none}#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive .so-widget-toggle-active .so-widget-deactivate{display:none}#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive .so-widget-active-indicator{opacity:0}#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive h3{color:#666}#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive svg,#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive img{filter:url(filters.svg#grayscale);filter:gray;-webkit-filter:grayscale(1);opacity:.7}#sow-widgets-page #widgets-list.so-animated img,#sow-widgets-page #widgets-list.so-animated svg{-webkit-transition:all .45s ease;-moz-transition:all .45s ease;-o-transition:all .45s ease;transition:all .45s ease}#sow-widgets-page .developers-link{padding:0 30px;text-align:right;color:#777;font-style:italic}#sow-widgets-page #sow-settings-dialog{display:none}#sow-widgets-page #sow-settings-dialog .so-overlay,#sow-widgets-page #sow-settings-dialog .so-content,#sow-widgets-page #sow-settings-dialog .so-title-bar,#sow-widgets-page #sow-settings-dialog .so-toolbar,#sow-widgets-page #sow-settings-dialog .so-left-sidebar,#sow-widgets-page #sow-settings-dialog .so-right-sidebar{z-index:100001;position:fixed;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:15px}#sow-widgets-page #sow-settings-dialog .so-overlay{top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5)}#sow-widgets-page #sow-settings-dialog .so-content{overflow-y:auto;top:80px;left:30px;right:30px;bottom:88px;background-color:#fdfdfd;overflow-x:hidden;-webkit-box-shadow:inset 0 2px 2px rgba(0,0,0,0.03);-moz-box-shadow:inset 0 2px 2px rgba(0,0,0,0.03);box-shadow:inset 0 2px 2px rgba(0,0,0,0.03)}#sow-widgets-page #sow-settings-dialog .so-content>*:first-child,#sow-widgets-page #sow-settings-dialog .so-content form>*:first-child{margin-top:0}#sow-widgets-page #sow-settings-dialog .so-content>*:last-child,#sow-widgets-page #sow-settings-dialog .so-content form>*:last-child{margin-bottom:0}#sow-widgets-page #sow-settings-dialog .so-content .so-content-tabs>*{display:none}#sow-widgets-page #sow-settings-dialog .so-content.so-loading{background-image:url("images/wpspin_light.gif");background-position:center center;background-repeat:no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#sow-widgets-page #sow-settings-dialog .so-content.so-loading{background-image:url(images/wpspin_light-2x.gif);background-size:16px 16px}}#sow-widgets-page #sow-settings-dialog .so-title-bar{left:30px;right:30px;top:30px;height:50px;background-color:#fafafa;border-bottom:1px solid #D8D8D8}#sow-widgets-page #sow-settings-dialog .so-title-bar h3.so-title{margin:0 !important;padding:0 !important}#sow-widgets-page #sow-settings-dialog .so-title-bar a{cursor:pointer;position:absolute;box-sizing:border-box;width:50px;height:50px;display:block;top:0;right:0;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease;background:#fafafa;border-left:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8}#sow-widgets-page #sow-settings-dialog .so-title-bar a:hover{background:#e9e9e9}#sow-widgets-page #sow-settings-dialog .so-title-bar a:hover .so-dialog-icon{color:#333333}#sow-widgets-page #sow-settings-dialog .so-title-bar a .so-dialog-icon{position:absolute;top:50%;left:50%;text-decoration:none;width:20px;height:20px;margin-left:-10px;margin-top:-10px;color:#666666;text-align:center}#sow-widgets-page #sow-settings-dialog .so-title-bar a .so-dialog-icon:before{font:400 20px/1em dashicons;top:7px;left:13px}#sow-widgets-page #sow-settings-dialog .so-title-bar a.so-close{right:0}#sow-widgets-page #sow-settings-dialog .so-title-bar a.so-close .so-dialog-icon:before{content:"\f335"}#sow-widgets-page #sow-settings-dialog .so-toolbar{left:30px;right:30px;bottom:30px;height:58px;background-color:#fafafa;border-top:1px solid #D8D8D8;z-index:100002}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-status{float:left;padding-top:6px;padding-bottom:6px;font-style:italic;color:#999999;line-height:1em}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-status.so-panels-loading{padding-left:26px;background-position:left center}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons{float:right}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons{position:absolute;left:15px;top:50%;margin-top:-0.65em}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons a{cursor:pointer;display:inline;padding:.2em .5em;line-height:1em;margin-right:.5em;text-decoration:none}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons .so-delete{color:#a00}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons .so-delete:hover{background:#a00;color:#FFFFFF}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons .so-duplicate:hover{text-decoration:underline}#sow-widgets-page #sow-settings-dialog .siteorigin-widget-help-link{display:none}#sow-widgets-page #so-widget-settings-save{width:0;height:0;border:none}body.plugins_page_so-widgets-plugins #contextual-help-link-wrap{z-index:10}
1
+ #sow-widgets-page{margin:0 0 0 -20px}#sow-widgets-page .page-banner{display:block;padding:15px 30px 5px 30px;background:#f6f6f6;position:relative}@media (max-width:505px){#sow-widgets-page .page-banner{padding-right:0}}#sow-widgets-page .page-banner .icon{float:left;display:inline-block;width:50px;height:43px;position:relative;margin:8px 22px 0 0}#sow-widgets-page .page-banner .icon img{position:absolute}#sow-widgets-page .page-banner .icon img.icon-back{top:0;left:0}#sow-widgets-page .page-banner .icon img.icon-gear{top:0;left:12px;-webkit-animation:spin 60s linear infinite;-moz-animation:spin 60s linear infinite;animation:spin 60s linear infinite}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}#sow-widgets-page .page-banner .icon img.icon-front{top:0;left:0}#sow-widgets-page .page-banner h1{font:300 2.3em/1.4em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;color:#666}@media (max-width:505px){#sow-widgets-page .page-banner h1{font-size:2em;padding-top:15px}}#sow-widgets-page .page-banner #sow-widget-search{position:absolute;bottom:-35px;right:19px}@media (max-width:505px){#sow-widgets-page .page-banner #sow-widget-search{margin-top:10px;position:static}}#sow-widgets-page .page-banner #sow-widget-search input{box-sizing:border-box;width:200px}#sow-widgets-page .page-banner #sow-widget-search .results{display:none;box-sizing:border-box;position:absolute;top:100%;left:1px;width:200px;background:#ffffff;border:1px solid #e0e0e0;padding:0;margin:-2px 0 0 0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:0 1px 1px rgba(0,0,0,0.075);box-shadow:0 1px 1px rgba(0,0,0,0.075)}#sow-widgets-page .page-banner #sow-widget-search .results li{margin:0;padding:5px;font-size:.95em;font-weight:bold;color:#777;cursor:pointer}#sow-widgets-page .page-banner #sow-widget-search .results li:hover{background:#f7f7f7}#sow-widgets-page .page-nav{background:#f6f6f6;border-bottom:1px solid #d6d6d6;padding:5px 0 0 30px;margin:0;font-size:0}#sow-widgets-page .page-nav li{display:inline-block;margin:0 0 -1px 0;background:#f6f6f6;line-height:1em;font-size:12px;position:relative;border:1px solid #d6d6d6;border-width:1px 0 1px 1px;transition:all .2s}#sow-widgets-page .page-nav li:last-child{border-right-width:1px}#sow-widgets-page .page-nav li a{display:block;text-decoration:none;color:#555;padding:12px 25px;font-weight:bold;box-shadow:none !important}#sow-widgets-page .page-nav li:hover{background:#f3f3f3}#sow-widgets-page .page-nav li.active{background:#f0f0f0;border-bottom-color:#f0f0f0}#sow-widgets-page #widgets-list{zoom:1;margin:25px 18px 0 18px;position:relative}#sow-widgets-page #widgets-list:before{content:'';display:block}#sow-widgets-page #widgets-list:after{content:'';display:table;clear:both}#sow-widgets-page #widgets-list .so-widget-wrap{float:left;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 12px 24px 12px;width:25%}@media screen and (max-width:1800px){#sow-widgets-page #widgets-list .so-widget-wrap{width:33.333%}}@media screen and (max-width:1280px){#sow-widgets-page #widgets-list .so-widget-wrap{width:50%}}@media screen and (max-width:960px){#sow-widgets-page #widgets-list .so-widget-wrap{width:100%}}#sow-widgets-page #widgets-list .so-widget{border:1px solid #D9D9D9;float:left;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05);padding:0;width:100%;background:#fefefe;position:relative;overflow:hidden}#sow-widgets-page #widgets-list .so-widget .so-widget-banner{width:128px;height:128px;float:left;margin:20px;overflow:hidden}#sow-widgets-page #widgets-list .so-widget .so-widget-banner img,#sow-widgets-page #widgets-list .so-widget .so-widget-banner svg{height:128px;width:auto}#sow-widgets-page #widgets-list .so-widget .so-widget-text{padding:20px 20px 20px 0;margin-left:178px}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-active-indicator{float:right;margin:0 0 10px 10px;background:#00a0d2;padding:4px 10px;color:#fff;border-radius:3px;-webkit-transition:all .35s ease;-moz-transition:all .35s ease;-o-transition:all .35s ease;transition:all .35s ease}#sow-widgets-page #widgets-list .so-widget .so-widget-text h3{color:#0073aa;font-size:1.4em;font-weight:500;margin-top:0}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-description{margin:0;line-height:1.35em;color:#777777}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-byline{font-size:.9em;margin-top:10px;color:#999;font-style:italic}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-byline a{color:#666;text-decoration:none}#sow-widgets-page #widgets-list .so-widget .so-widget-text .so-widget-byline a:hover{color:#555;text-decoration:underline}#sow-widgets-page #widgets-list .so-widget .so-action-links:after{content:"";display:table;clear:both}#sow-widgets-page #widgets-list .so-widget .so-action-links .so-widget-toggle-active,#sow-widgets-page #widgets-list .so-widget .so-action-links .so-widget-settings,#sow-widgets-page #widgets-list .so-widget .so-action-links .so-widget-documentation{display:inline-block;float:left;margin-right:1em;margin-top:.5em}#sow-widgets-page #widgets-list .so-widget .so-action-links .so-widget-toggle-active button:focus{outline:none}#sow-widgets-page #widgets-list .so-widget .so-action-links .so-widget-documentation{margin-top:1em}#sow-widgets-page #widgets-list .so-widget.so-widget-is-active .so-widget-toggle-active .so-widget-activate{display:none}#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive .so-widget-toggle-active .so-widget-deactivate{display:none}#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive .so-widget-active-indicator{opacity:0}#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive h3{color:#666}#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive svg,#sow-widgets-page #widgets-list .so-widget.so-widget-is-inactive img{filter:url(filters.svg#grayscale);filter:gray;-webkit-filter:grayscale(1);opacity:.7}#sow-widgets-page #widgets-list.so-animated img,#sow-widgets-page #widgets-list.so-animated svg{-webkit-transition:all .45s ease;-moz-transition:all .45s ease;-o-transition:all .45s ease;transition:all .45s ease}#sow-widgets-page .developers-link{padding:0 30px;text-align:right;color:#777;font-style:italic}#sow-widgets-page #sow-settings-dialog{display:none}#sow-widgets-page #sow-settings-dialog .so-overlay,#sow-widgets-page #sow-settings-dialog .so-content,#sow-widgets-page #sow-settings-dialog .so-title-bar,#sow-widgets-page #sow-settings-dialog .so-toolbar,#sow-widgets-page #sow-settings-dialog .so-left-sidebar,#sow-widgets-page #sow-settings-dialog .so-right-sidebar{z-index:100001;position:fixed;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;padding:15px}#sow-widgets-page #sow-settings-dialog .so-overlay{top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5)}#sow-widgets-page #sow-settings-dialog .so-content{overflow-y:auto;top:80px;left:30px;right:30px;bottom:88px;background-color:#fdfdfd;overflow-x:hidden;-webkit-box-shadow:inset 0 2px 2px rgba(0,0,0,0.03);-moz-box-shadow:inset 0 2px 2px rgba(0,0,0,0.03);box-shadow:inset 0 2px 2px rgba(0,0,0,0.03)}#sow-widgets-page #sow-settings-dialog .so-content>*:first-child,#sow-widgets-page #sow-settings-dialog .so-content form>*:first-child{margin-top:0}#sow-widgets-page #sow-settings-dialog .so-content>*:last-child,#sow-widgets-page #sow-settings-dialog .so-content form>*:last-child{margin-bottom:0}#sow-widgets-page #sow-settings-dialog .so-content .so-content-tabs>*{display:none}#sow-widgets-page #sow-settings-dialog .so-content.so-loading{background-image:url("images/wpspin_light.gif");background-position:center center;background-repeat:no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#sow-widgets-page #sow-settings-dialog .so-content.so-loading{background-image:url(images/wpspin_light-2x.gif);background-size:16px 16px}}#sow-widgets-page #sow-settings-dialog .so-title-bar{left:30px;right:30px;top:30px;height:50px;background-color:#fafafa;border-bottom:1px solid #D8D8D8}#sow-widgets-page #sow-settings-dialog .so-title-bar h3.so-title{margin:0 !important;padding:0 !important}#sow-widgets-page #sow-settings-dialog .so-title-bar a{cursor:pointer;position:absolute;box-sizing:border-box;width:50px;height:50px;display:block;top:0;right:0;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease;background:#fafafa;border-left:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8}#sow-widgets-page #sow-settings-dialog .so-title-bar a:hover{background:#e9e9e9}#sow-widgets-page #sow-settings-dialog .so-title-bar a:hover .so-dialog-icon{color:#333333}#sow-widgets-page #sow-settings-dialog .so-title-bar a .so-dialog-icon{position:absolute;top:50%;left:50%;text-decoration:none;width:20px;height:20px;margin-left:-10px;margin-top:-10px;color:#666666;text-align:center}#sow-widgets-page #sow-settings-dialog .so-title-bar a .so-dialog-icon:before{font:400 20px/1em dashicons;top:7px;left:13px}#sow-widgets-page #sow-settings-dialog .so-title-bar a.so-close{right:0}#sow-widgets-page #sow-settings-dialog .so-title-bar a.so-close .so-dialog-icon:before{content:"\f335"}#sow-widgets-page #sow-settings-dialog .so-toolbar{left:30px;right:30px;bottom:30px;height:58px;background-color:#fafafa;border-top:1px solid #D8D8D8;z-index:100002}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-status{float:left;padding-top:6px;padding-bottom:6px;font-style:italic;color:#999999;line-height:1em}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-status.so-panels-loading{padding-left:26px;background-position:left center}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons{float:right}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons{position:absolute;left:15px;top:50%;margin-top:-0.65em}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons a{cursor:pointer;display:inline;padding:.2em .5em;line-height:1em;margin-right:.5em;text-decoration:none}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons .so-delete{color:#a00}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons .so-delete:hover{background:#a00;color:#FFFFFF}#sow-widgets-page #sow-settings-dialog .so-toolbar .so-buttons .action-buttons .so-duplicate:hover{text-decoration:underline}#sow-widgets-page #sow-settings-dialog .siteorigin-widget-help-link{display:none}#sow-widgets-page #so-widget-settings-save{width:0;height:0;border:none}body.plugins_page_so-widgets-plugins #contextual-help-link-wrap{z-index:10}
admin/admin.js CHANGED
@@ -81,15 +81,21 @@ jQuery( function( $ ){
81
  $( window ).on( 'resize', function() {
82
  var $descriptions = $('.so-widget-text').css('height', 'auto');
83
  var largestHeight = 0;
 
 
84
 
85
- $descriptions.each(function () {
86
- largestHeight = Math.max(largestHeight, $(this).height() );
87
- });
 
 
88
 
89
- $descriptions.each(function () {
90
- $( this ).css( 'height', largestHeight + "px" );
91
- });
92
 
 
 
 
93
  } ).trigger( 'resize' );
94
 
95
  // Handle the tabs
81
  $( window ).on( 'resize', function() {
82
  var $descriptions = $('.so-widget-text').css('height', 'auto');
83
  var largestHeight = 0;
84
+ var largestHeight = [];
85
+ var column = 0;
86
 
87
+ $descriptions.each( function( index ) {
88
+ column = index / 3;
89
+ // Turnicate column number - IE 11 friendly.
90
+ column = column < 0 ? Math.ceil( column ) : Math.floor( column );
91
+ $( this ).data( 'column', column )
92
 
93
+ largestHeight[ column ] = Math.max( typeof largestHeight[ column ] == 'undefined' ? 0 : largestHeight[ column ], $( this ).height() );
94
+ } );
 
95
 
96
+ $descriptions.each( function() {
97
+ $( this ).css( 'height', largestHeight[ $( this ).data( 'column' ) ] + 'px' );
98
+ } );
99
  } ).trigger( 'resize' );
100
 
101
  // Handle the tabs
admin/admin.min.js CHANGED
@@ -1 +1 @@
1
- jQuery((function(i){i(".so-widget-toggle-active button").on("click",(function(){var t=i(this),e=t.data("status"),s=t.closest(".so-widget");e?s.addClass("so-widget-is-active").removeClass("so-widget-is-inactive"):s.removeClass("so-widget-is-active").addClass("so-widget-is-inactive"),i.post(soWidgetsAdmin.toggleUrl,{widget:s.data("id"),active:e},(function(i){}))})),i(".so-widget-banner").each((function(){var t=i(this),e=t.find("img");if(e.length)e.width()>128&&e.css("margin-left",-(e.width()-128)/2+"px");else{var s=Trianglify({width:128,height:128,variance:1,cell_size:32,seed:t.data("seed")});t.append(s.svg())}}));var t=function(){var t=i(this).val().toLowerCase();""===t?i(".so-widget-wrap").show():i(".so-widget").each((function(){var e=i(this);e.find("h3").html().toLowerCase().indexOf(t)>-1?e.parent().show():e.parent().hide()}))};i("#sow-widget-search input").on({keyup:t,search:t}),i(window).on("resize",(function(){var t=i(".so-widget-text").css("height","auto"),e=0;t.each((function(){e=Math.max(e,i(this).height())})),t.each((function(){i(this).css("height",e+"px")}))})).trigger("resize"),i("#sow-widgets-page .page-nav a").on("click",(function(t){t.preventDefault();var e=i(this),s=e.attr("href"),o=e.closest("li");switch(i("#sow-widgets-page .page-nav li").not(o).removeClass("active"),o.addClass("active"),s){case"#all":i(".so-widget-wrap").show();break;case"#enabled":i(".so-widget-wrap").hide(),i(".so-widget-wrap .so-widget-is-active").each((function(){i(this).closest(".so-widget-wrap").show()})),i(".so-widget-wrap .so-widget-is-inactive").each((function(){i(this).closest(".so-widget-wrap").hide()}));break;case"#disabled":i(".so-widget-wrap .so-widget-is-active").each((function(){i(this).closest(".so-widget-wrap").hide()})),i(".so-widget-wrap .so-widget-is-inactive").each((function(){i(this).closest(".so-widget-wrap").show()}))}i(window).trigger("resize")})),i("#widgets-list").addClass("so-animated");var e=i("#sow-settings-dialog");if(i("#widgets-list .so-widget-settings").on("click",(function(t){var s=i(this);t.preventDefault(),$content=e.find(".so-content"),$content.empty().addClass("so-loading"),i.get(s.data("form-url"),(function(i){$content.html(i).removeClass("so-loading")})),e.show(),i("#sow-settings-dialog .so-close").trigger("focus"),i(window).one("keyup",(function(i){27===i.which&&e.hide()}))})),e.find(".so-close").on("click keyup",(function(i){("keyup"!=i.type||window.sowbForms.isEnter(i))&&(i.preventDefault(),e.hide())})),e.find(".so-save").on("click",(function(t){t.preventDefault();var s=i(this);s.prop("disabled",!0),e.find("form").on("submit",(function(){s.prop("disabled",!1),e.hide()})).trigger("submit")})),i("#so-widget-settings-save").on("load",(function(){i("#widgets-list .so-widget-settings").prop("disabled",!1)})),window.location.hash&&"#settings-"===window.location.hash.substring(0,10)){var s=window.location.hash.substring(10);i('div[data-id="'+s+'"] button.so-widget-settings').trigger("click")}}));
1
+ jQuery((function(i){i(".so-widget-toggle-active button").on("click",(function(){var t=i(this),e=t.data("status"),s=t.closest(".so-widget");e?s.addClass("so-widget-is-active").removeClass("so-widget-is-inactive"):s.removeClass("so-widget-is-active").addClass("so-widget-is-inactive"),i.post(soWidgetsAdmin.toggleUrl,{widget:s.data("id"),active:e},(function(i){}))})),i(".so-widget-banner").each((function(){var t=i(this),e=t.find("img");if(e.length)e.width()>128&&e.css("margin-left",-(e.width()-128)/2+"px");else{var s=Trianglify({width:128,height:128,variance:1,cell_size:32,seed:t.data("seed")});t.append(s.svg())}}));var t=function(){var t=i(this).val().toLowerCase();""===t?i(".so-widget-wrap").show():i(".so-widget").each((function(){var e=i(this);e.find("h3").html().toLowerCase().indexOf(t)>-1?e.parent().show():e.parent().hide()}))};i("#sow-widget-search input").on({keyup:t,search:t}),i(window).on("resize",(function(){var t=i(".so-widget-text").css("height","auto"),e=0,s=(e=[],0);t.each((function(t){s=(s=t/3)<0?Math.ceil(s):Math.floor(s),i(this).data("column",s),e[s]=Math.max(void 0===e[s]?0:e[s],i(this).height())})),t.each((function(){i(this).css("height",e[i(this).data("column")]+"px")}))})).trigger("resize"),i("#sow-widgets-page .page-nav a").on("click",(function(t){t.preventDefault();var e=i(this),s=e.attr("href"),o=e.closest("li");switch(i("#sow-widgets-page .page-nav li").not(o).removeClass("active"),o.addClass("active"),s){case"#all":i(".so-widget-wrap").show();break;case"#enabled":i(".so-widget-wrap").hide(),i(".so-widget-wrap .so-widget-is-active").each((function(){i(this).closest(".so-widget-wrap").show()})),i(".so-widget-wrap .so-widget-is-inactive").each((function(){i(this).closest(".so-widget-wrap").hide()}));break;case"#disabled":i(".so-widget-wrap .so-widget-is-active").each((function(){i(this).closest(".so-widget-wrap").hide()})),i(".so-widget-wrap .so-widget-is-inactive").each((function(){i(this).closest(".so-widget-wrap").show()}))}i(window).trigger("resize")})),i("#widgets-list").addClass("so-animated");var e=i("#sow-settings-dialog");if(i("#widgets-list .so-widget-settings").on("click",(function(t){var s=i(this);t.preventDefault(),$content=e.find(".so-content"),$content.empty().addClass("so-loading"),i.get(s.data("form-url"),(function(i){$content.html(i).removeClass("so-loading")})),e.show(),i("#sow-settings-dialog .so-close").trigger("focus"),i(window).one("keyup",(function(i){27===i.which&&e.hide()}))})),e.find(".so-close").on("click keyup",(function(i){("keyup"!=i.type||window.sowbForms.isEnter(i))&&(i.preventDefault(),e.hide())})),e.find(".so-save").on("click",(function(t){t.preventDefault();var s=i(this);s.prop("disabled",!0),e.find("form").on("submit",(function(){s.prop("disabled",!1),e.hide()})).trigger("submit")})),i("#so-widget-settings-save").on("load",(function(){i("#widgets-list .so-widget-settings").prop("disabled",!1)})),window.location.hash&&"#settings-"===window.location.hash.substring(0,10)){var s=window.location.hash.substring(10);i('div[data-id="'+s+'"] button.so-widget-settings').trigger("click")}}));
base/inc/fields/css/icon-field.css CHANGED
@@ -1 +1 @@
1
- .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current{display:inline-block;background:#f9f9f9;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #f2f2f2), color-stop(1, #f9f9f9));background:-ms-linear-gradient(bottom, #f2f2f2, #f9f9f9);background:-moz-linear-gradient(center bottom, #f2f2f2 0%, #f9f9f9 100%);background:-o-linear-gradient(#f9f9f9, #f2f2f2);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#f2f2f2', GradientType=0);-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.1);box-shadow:0 1px 2px rgba(0,0,0,0.1);box-sizing:content-box;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;vertical-align:middle;border:1px solid #bbbbbb;height:35px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current:focus,.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current:hover{background:#ffffff;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #f7f7f7), color-stop(1, #ffffff));background:-ms-linear-gradient(bottom, #f7f7f7, #ffffff);background:-moz-linear-gradient(center bottom, #f7f7f7 0%, #ffffff 100%);background:-o-linear-gradient(#ffffff, #f7f7f7);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f7f7f7', GradientType=0);-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15)}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current .siteorigin-widget-icon{-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;margin:4px;padding:3px;border:1px solid #999;background:#f3f3f3;height:27px;width:32px;text-align:center}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current .siteorigin-widget-icon span{color:#333;font-size:20px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current label{display:block;float:left;color:#666;text-decoration:none;text-shadow:0 1px 0 #FFF;font-weight:600;font-size:11px;padding:9px 10px 7px 7px;outline:none;cursor:pointer}.siteorigin-widget-form .siteorigin-widget-field-type-icon .so-icon-remove{cursor:pointer;display:inline-block;text-decoration:none;color:#AAA;font-size:11px;line-height:1em;padding:11px 0 11px 6px;-webkit-transition:all .25s ease;-moz-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease}.siteorigin-widget-form .siteorigin-widget-field-type-icon .so-icon-remove:focus,.siteorigin-widget-form .siteorigin-widget-field-type-icon .so-icon-remove:hover{color:#bc0b0b}.siteorigin-widget-form .siteorigin-widget-field-type-icon.siteorigin-widget-active .so-icon-remove{display:none}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector{display:none;padding:10px;border:1px solid #D8D8D8;background:#FFFFFF;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.0275);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.0275);box-shadow:0 1px 2px rgba(0,0,0,0.0275);margin-top:10px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector select.siteorigin-widget-icon-family{font-size:11px;display:inline-block}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-search{font-size:11px;display:inline-block;width:260px;padding:6px 8px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons{height:160px;overflow-y:scroll;margin-top:10px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons .siteorigin-widget-icon-icons-icon{-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;width:58px;height:48px;margin:3px;padding:5px 0;border:1px solid #D0D0D0;background:#FFFFFF;font-size:35px;overflow:hidden;cursor:pointer;text-align:center}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons .siteorigin-widget-icon-icons-icon:focus{background:#fcf8f8;border:1px solid #43aaec}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons .siteorigin-widget-icon-icons-icon.siteorigin-widget-active{background:#f6fafc;border:1px solid #43aaec;color:#078dce;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.25);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.25);box-shadow:0 1px 2px rgba(0,0,0,0.25)}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons.loading{min-height:40px;background:#FFFFFF url("../../../css/img/wpspin_light.gif") center center no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons.loading{background-image:url("../../../css/img/wpspin_light-2x.gif");background-size:16px 16px}}
1
+ .siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current{display:inline-block;background:#f9f9f9;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #f2f2f2), color-stop(1, #f9f9f9));background:-ms-linear-gradient(bottom, #f2f2f2, #f9f9f9);background:-moz-linear-gradient(center bottom, #f2f2f2 0%, #f9f9f9 100%);background:-o-linear-gradient(#f9f9f9, #f2f2f2);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#f2f2f2', GradientType=0);-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.1);box-shadow:0 1px 2px rgba(0,0,0,0.1);box-sizing:content-box;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;vertical-align:middle;border:1px solid #bbbbbb;height:35px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current:focus,.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current:hover{background:#ffffff;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #f7f7f7), color-stop(1, #ffffff));background:-ms-linear-gradient(bottom, #f7f7f7, #ffffff);background:-moz-linear-gradient(center bottom, #f7f7f7 0%, #ffffff 100%);background:-o-linear-gradient(#ffffff, #f7f7f7);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f7f7f7', GradientType=0);-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.15);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.15);box-shadow:0 1px 2px rgba(0,0,0,0.15)}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current .siteorigin-widget-icon{-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;margin:4px;padding:3px;border:1px solid #999;background:#f3f3f3;height:27px;width:32px;text-align:center}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current .siteorigin-widget-icon span{color:#333;font-size:20px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current label{display:block;float:left;color:#666;text-decoration:none;text-shadow:0 1px 0 #FFF;font-weight:600;font-size:11px;padding:9px 10px 7px 7px;outline:none;cursor:pointer}.siteorigin-widget-form .siteorigin-widget-field-type-icon .so-icon-remove{cursor:pointer;display:inline-block;text-decoration:none;color:#AAA;font-size:11px;line-height:1em;padding:11px 0 11px 6px;-webkit-transition:all .25s ease;-moz-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease}.siteorigin-widget-form .siteorigin-widget-field-type-icon .so-icon-remove:focus,.siteorigin-widget-form .siteorigin-widget-field-type-icon .so-icon-remove:hover{color:#bc0b0b}.siteorigin-widget-form .siteorigin-widget-field-type-icon.siteorigin-widget-active .so-icon-remove{display:none}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector{display:none;padding:10px;border:1px solid #D8D8D8;background:#FFFFFF;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.0275);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.0275);box-shadow:0 1px 2px rgba(0,0,0,0.0275);margin-top:10px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector select.siteorigin-widget-icon-family,.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector select.siteorigin-widget-icon-family-styles,.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-search{height:30px;vertical-align:top}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector select.siteorigin-widget-icon-family{display:inline-block}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-search{display:inline-block;font-size:14px;line-height:30px;padding:6px 8px;width:260px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons{height:160px;overflow-y:scroll;margin-top:10px}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons .siteorigin-widget-icon-icons-icon{-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;width:58px;height:48px;margin:3px;padding:5px 0;border:1px solid #D0D0D0;background:#FFFFFF;font-size:35px;overflow:hidden;cursor:pointer;text-align:center}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons .siteorigin-widget-icon-icons-icon:focus{background:#fcf8f8;border:1px solid #43aaec}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons .siteorigin-widget-icon-icons-icon.siteorigin-widget-active{background:#f6fafc;border:1px solid #43aaec;color:#078dce;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.25);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.25);box-shadow:0 1px 2px rgba(0,0,0,0.25)}.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons.loading{min-height:40px;background:#FFFFFF url("../../../css/img/wpspin_light.gif") center center no-repeat}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.siteorigin-widget-form .siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector .siteorigin-widget-icon-icons.loading{background-image:url("../../../css/img/wpspin_light-2x.gif");background-size:16px 16px}}
base/inc/fields/css/media-field.css CHANGED
@@ -1 +1 @@
1
- .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper{border:1px solid #bbb;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:0 1px 2px rgba(0, 0, 0, 0.1);box-sizing:content-box;display:block;float:left;font-size:13px;background:#f9f9f9;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #f2f2f2), color-stop(1, #f9f9f9));background:-ms-linear-gradient(bottom, #f2f2f2, #f9f9f9);background:-moz-linear-gradient(center bottom, #f2f2f2 0%, #f9f9f9 100%);background:-o-linear-gradient(#f9f9f9, #f2f2f2);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#f2f2f2', GradientType=0);height:32px;line-height:18.2px;overflow:auto;position:relative;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper:focus,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper:hover{-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.15);box-shadow:0 1px 2px rgba(0, 0, 0, 0.15)}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper *{box-sizing:content-box}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current{border-right:1px solid #bbb;box-shadow:1px 0 0 #fff;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;height:32px;overflow:hidden;padding:4px;position:relative}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current .title{background:#333;bottom:34px;color:#ccc;display:none;font-weight:bold;left:0;padding:4px 12px;position:absolute;white-space:nowrap;width:auto}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current .thumbnail-wrapper{border:1px solid #999;box-shadow:0 1px 1px #fff;box-shadow:inset 0 1px 3px rgba(0,0,0,0.2);height:22px;background:#cfcfcf;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #cccccc), color-stop(1, #cfcfcf));background:-ms-linear-gradient(bottom, #cccccc, #cfcfcf);background:-moz-linear-gradient(center bottom, #cccccc 0%, #cfcfcf 100%);background:-o-linear-gradient(#cfcfcf, #cccccc);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cfcfcf', endColorstr='#cccccc', GradientType=0);line-height:0;width:22px}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current .thumbnail-wrapper img{box-shadow:inset 0 1px 3px rgba(0,0,0,0.2);height:100%;width:100%}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .media-upload-button,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button{display:block;border-bottom:none;cursor:pointer;float:left;font-size:11px;font-weight:600;color:#666;outline:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;line-height:32px;padding:0 8px;text-decoration:none;text-shadow:0 1px 0 #fff}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .media-upload-button:focus,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button:focus,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .media-upload-button:hover,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button:hover{background:rgba(255,255,255,0.75)}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button{border-left:1px solid #bbb}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper:focus .media-upload-button,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper:hover .media-upload-button{color:#707070}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button{display:block;border-bottom:none;color:#aaa;float:left;font-size:11px;line-height:1em;margin-right:25px;opacity:1;padding:11px 0 11px 6px;position:static;text-decoration:none;-webkit-transition:all .25s ease;-moz-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button.remove-hide{opacity:0;pointer-events:none}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button:focus,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button:hover{color:#bc0b0b}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-fallback-external{width:100%}@media (max-width:680px){.siteorigin-widget-form .siteorigin-widget-field-type-media .media-fallback-external{margin-top:1em !important}}@media (min-width:680px){.siteorigin-widget-form .siteorigin-widget-field-type-media .media-fallback-external{float:left;margin-top:2px !important;max-width:320px}}#so-widgets-image-search-frame{background-color:#fff;bottom:0;left:0;overflow-x:hidden;overflow-y:scroll;padding:25px;position:absolute;right:0;top:0}#so-widgets-image-search-frame #so-widgets-image-search-form{box-sizing:border-box;display:block;margin-bottom:2px;position:relative;width:100%}@media (min-width:783px){#so-widgets-image-search-frame #so-widgets-image-search-form{padding-right:368px}}#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-input{box-shadow:none;margin-bottom:0px;padding:9px 12px}#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-input:focus{box-shadow:none}#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-button{border-width:1px;box-shadow:none;font-size:1.2em;height:100%;padding:0 14px;position:absolute;right:320px;top:0}@media (max-width:783px){#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-button{right:0}}#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-button .dashicons-search{vertical-align:middle}#so-widgets-image-search-frame #so-widgets-image-search-suggestions{display:none;font-size:1.1em;height:40px;overflow:hidden;position:absolute;right:0;text-align:right;top:0;width:300px}#so-widgets-image-search-frame #so-widgets-image-search-suggestions strong{display:block}#so-widgets-image-search-frame #so-widgets-image-search-suggestions ul{display:block;list-style:none;margin:0;padding:0}#so-widgets-image-search-frame #so-widgets-image-search-suggestions ul li{display:inline-block;margin-right:4px}#so-widgets-image-search-frame #so-widgets-image-search-powered{color:#888;font-size:.85em;margin-bottom:15px}#so-widgets-image-search-frame .so-widgets-image-results{zoom:1;margin:0 -8px}#so-widgets-image-search-frame .so-widgets-image-results:before{content:'';display:block}#so-widgets-image-search-frame .so-widgets-image-results:after{content:'';display:table;clear:both}#so-widgets-image-search-frame .so-widgets-image-results .so-widgets-result{-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;margin:8px}#so-widgets-image-search-frame .so-widgets-image-results .so-widgets-result a{background-color:#e8e8e8;background-repeat:no-repeat;background-size:cover;display:block;position:relative;height:180px;width:260px}#so-widgets-image-search-frame .so-widgets-image-results .so-widgets-result a .so-widgets-result-sponsored{background:#59946b;border-radius:2px;color:#fff;font-size:.8em;line-height:1em;padding:5px;position:absolute;right:5px;top:5px}#so-widgets-image-search-frame .so-widgets-results-loading{background-color:#f7f7f7;display:none;font-size:1.1em;margin-top:20px;padding:15px 5px;text-align:center}#so-widgets-image-search-frame .so-widgets-results-loading .so-widgets-loading-icon{background-image:url("images/wpspin_light.gif");background-position:center center;background-repeat:no-repeat;display:inline-block;height:16px;margin:0 6px -3px 0;width:16px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#so-widgets-image-search-frame .so-widgets-results-loading .so-widgets-loading-icon{background-image:url(images/wpspin_light-2x.gif);background-size:16px 16px}}#so-widgets-image-search-frame .so-widgets-results-more{display:none;margin-top:20px;padding-bottom:20px;text-align:center}#so-widgets-image-search-frame .so-widgets-preview-window{background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,0.35);display:none;padding:10px;pointer-events:none;position:fixed}#so-widgets-image-search-frame .so-widgets-preview-window .so-widgets-preview-window-inside{background-size:cover;overflow:hidden}#so-widgets-image-search-frame .so-widgets-preview-window img{height:auto;width:100%}#so-widgets-image-search-frame.so-widgets-importing .so-widgets-preview-window,#so-widgets-image-search-frame.so-widgets-importing #so-widgets-image-search-form,#so-widgets-image-search-frame.so-widgets-importing #so-widgets-image-search-powered,#so-widgets-image-search-frame.so-widgets-importing .so-widgets-image-results{display:none !important;visibility:hidden !important}
1
+ .siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper{border:1px solid #bbb;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:0 1px 2px rgba(0, 0, 0, 0.1);box-sizing:content-box;display:block;float:left;font-size:13px;background:#f9f9f9;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #f2f2f2), color-stop(1, #f9f9f9));background:-ms-linear-gradient(bottom, #f2f2f2, #f9f9f9);background:-moz-linear-gradient(center bottom, #f2f2f2 0%, #f9f9f9 100%);background:-o-linear-gradient(#f9f9f9, #f2f2f2);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f9f9', endColorstr='#f2f2f2', GradientType=0);height:32px;line-height:18.2px;overflow:visible;position:relative;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper:focus,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper:hover{-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.15);box-shadow:0 1px 2px rgba(0, 0, 0, 0.15)}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper *{box-sizing:content-box}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current{border-right:1px solid #bbb;box-shadow:1px 0 0 #fff;-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;height:32px;overflow:hidden;padding:4px;position:relative}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current .title{background:#333;bottom:34px;color:#ccc;display:none;font-weight:bold;left:0;padding:4px 12px;position:absolute;white-space:nowrap;width:auto}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current .thumbnail-wrapper{border:1px solid #999;box-shadow:0 1px 1px #fff;box-shadow:inset 0 1px 3px rgba(0,0,0,0.2);height:22px;background:#cfcfcf;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #cccccc), color-stop(1, #cfcfcf));background:-ms-linear-gradient(bottom, #cccccc, #cfcfcf);background:-moz-linear-gradient(center bottom, #cccccc 0%, #cfcfcf 100%);background:-o-linear-gradient(#cfcfcf, #cccccc);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cfcfcf', endColorstr='#cccccc', GradientType=0);line-height:0;width:22px}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .current .thumbnail-wrapper img{box-shadow:inset 0 1px 3px rgba(0,0,0,0.2);height:100%;width:100%}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .media-upload-button,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button{display:block;border-bottom:none;cursor:pointer;float:left;font-size:11px;font-weight:600;color:#666;outline:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;line-height:32px;padding:0 8px;text-decoration:none;text-shadow:0 1px 0 #fff}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .media-upload-button:focus,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button:focus,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .media-upload-button:hover,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button:hover{background:rgba(255,255,255,0.75)}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper .find-image-button{border-left:1px solid #bbb}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper:focus .media-upload-button,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-field-wrapper:hover .media-upload-button{color:#707070}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button{display:block;border-bottom:none;color:#aaa;float:left;font-size:11px;line-height:18.2px;margin-right:25px;opacity:1;padding:11px 0 11px 6px;position:static;text-decoration:none;-webkit-transition:all .25s ease;-moz-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button.remove-hide{opacity:0;pointer-events:none}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button:focus,.siteorigin-widget-form .siteorigin-widget-field-type-media .media-remove-button:hover{color:#bc0b0b}.siteorigin-widget-form .siteorigin-widget-field-type-media .media-fallback-external{width:100%}@media (max-width:680px){.siteorigin-widget-form .siteorigin-widget-field-type-media .media-fallback-external{margin-top:1em !important}}@media (min-width:680px){.siteorigin-widget-form .siteorigin-widget-field-type-media .media-fallback-external{float:left;margin-top:2px !important;max-width:320px}}#so-widgets-image-search-frame{background-color:#fff;bottom:0;left:0;overflow-x:hidden;overflow-y:scroll;padding:25px;position:absolute;right:0;top:0}#so-widgets-image-search-frame #so-widgets-image-search-form{box-sizing:border-box;display:block;margin-bottom:2px;position:relative;width:100%}@media (min-width:783px){#so-widgets-image-search-frame #so-widgets-image-search-form{padding-right:368px}}#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-input{box-shadow:none;margin-bottom:0px;padding:9px 12px}#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-input:focus{box-shadow:none}#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-button{border-width:1px;box-shadow:none;font-size:1.2em;height:100%;padding:0 14px;position:absolute;right:320px;top:0}@media (max-width:783px){#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-button{right:0}}#so-widgets-image-search-frame #so-widgets-image-search-form .so-widgets-search-button .dashicons-search{vertical-align:middle}#so-widgets-image-search-frame #so-widgets-image-search-suggestions{display:none;font-size:1.1em;height:40px;overflow:hidden;position:absolute;right:0;text-align:right;top:0;width:300px}#so-widgets-image-search-frame #so-widgets-image-search-suggestions strong{display:block}#so-widgets-image-search-frame #so-widgets-image-search-suggestions ul{display:block;list-style:none;margin:0;padding:0}#so-widgets-image-search-frame #so-widgets-image-search-suggestions ul li{display:inline-block;margin-right:4px}#so-widgets-image-search-frame #so-widgets-image-search-powered{color:#888;font-size:.85em;margin-bottom:15px}#so-widgets-image-search-frame .so-widgets-image-results{zoom:1;margin:0 -8px}#so-widgets-image-search-frame .so-widgets-image-results:before{content:'';display:block}#so-widgets-image-search-frame .so-widgets-image-results:after{content:'';display:table;clear:both}#so-widgets-image-search-frame .so-widgets-image-results .so-widgets-result{-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;margin:8px}#so-widgets-image-search-frame .so-widgets-image-results .so-widgets-result a{background-color:#e8e8e8;background-repeat:no-repeat;background-size:cover;display:block;position:relative;height:180px;width:260px}#so-widgets-image-search-frame .so-widgets-image-results .so-widgets-result a .so-widgets-result-sponsored{background:#59946b;border-radius:2px;color:#fff;font-size:.8em;line-height:1em;padding:5px;position:absolute;right:5px;top:5px}#so-widgets-image-search-frame .so-widgets-results-loading{background-color:#f7f7f7;display:none;font-size:1.1em;margin-top:20px;padding:15px 5px;text-align:center}#so-widgets-image-search-frame .so-widgets-results-loading .so-widgets-loading-icon{background-image:url("images/wpspin_light.gif");background-position:center center;background-repeat:no-repeat;display:inline-block;height:16px;margin:0 6px -3px 0;width:16px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){#so-widgets-image-search-frame .so-widgets-results-loading .so-widgets-loading-icon{background-image:url(images/wpspin_light-2x.gif);background-size:16px 16px}}#so-widgets-image-search-frame .so-widgets-results-more{display:none;margin-top:20px;padding-bottom:20px;text-align:center}#so-widgets-image-search-frame .so-widgets-preview-window{background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,0.35);display:none;padding:10px;pointer-events:none;position:fixed}#so-widgets-image-search-frame .so-widgets-preview-window .so-widgets-preview-window-inside{background-size:cover;overflow:hidden}#so-widgets-image-search-frame .so-widgets-preview-window img{height:auto;width:100%}#so-widgets-image-search-frame.so-widgets-importing .so-widgets-preview-window,#so-widgets-image-search-frame.so-widgets-importing #so-widgets-image-search-form,#so-widgets-image-search-frame.so-widgets-importing #so-widgets-image-search-powered,#so-widgets-image-search-frame.so-widgets-importing .so-widgets-image-results{display:none !important;visibility:hidden !important}
base/inc/fields/css/multiple-media-field.css ADDED
@@ -0,0 +1 @@
 
1
+ .siteorigin-widget-form .siteorigin-widget-field-type-multiple_media .multiple-media-field-wrapper *{box-sizing:content-box}.siteorigin-widget-form .siteorigin-widget-field-type-multiple_media .multiple-media-field-wrapper .multiple-media-field-items{line-height:18.2px;overflow:auto}.siteorigin-widget-form .siteorigin-widget-field-type-multiple_media .multiple-media-field-wrapper .multiple-media-field-item{-ms-box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;float:left;padding:4px;position:relative;margin:5px 0}.siteorigin-widget-form .siteorigin-widget-field-type-multiple_media .multiple-media-field-wrapper .multiple-media-field-item .thumbnail{border:1px solid #999;box-shadow:0 1px 1px #fff;box-shadow:inset 0 1px 3px rgba(0,0,0,0.2);height:75px;background:#cfcfcf;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #cccccc), color-stop(1, #cfcfcf));background:-ms-linear-gradient(bottom, #cccccc, #cfcfcf);background:-moz-linear-gradient(center bottom, #cccccc 0%, #cfcfcf 100%);background:-o-linear-gradient(#cfcfcf, #cccccc);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cfcfcf', endColorstr='#cccccc', GradientType=0);line-height:0;width:75px}.siteorigin-widget-form .siteorigin-widget-field-type-multiple_media .multiple-media-field-wrapper .multiple-media-field-item .title{display:none}.siteorigin-widget-form .siteorigin-widget-field-type-multiple_media .multiple-media-field-wrapper .multiple-media-field-item .media-remove-button{color:#aaa;display:block;font-size:11px;line-height:1em;opacity:1;text-align:center;text-decoration:none;-webkit-transition:all .25s ease;-moz-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease}.siteorigin-widget-form .siteorigin-widget-field-type-multiple_media .multiple-media-field-wrapper .multiple-media-field-item .media-remove-button.remove-hide{opacity:0;pointer-events:none}.siteorigin-widget-form .siteorigin-widget-field-type-multiple_media .multiple-media-field-wrapper .multiple-media-field-item .media-remove-button:hover{color:#bc0b0b}.siteorigin-widget-form .siteorigin-widget-field-type-multiple_media .media-field-template{display:none}
base/inc/fields/js/multiple-media-field.js ADDED
@@ -0,0 +1,129 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* global jQuery, soWidgets */
2
+
3
+ ( function( $ ) {
4
+
5
+ $( document ).on( 'sowsetupformfield', '.siteorigin-widget-field-type-multiple_media', function( e ) {
6
+ var $field = $( this ),
7
+ $data = $field.find( '.siteorigin-widget-input' ),
8
+ selectedMedia = $data.val().split( ',' );
9
+
10
+ if ( $field.data( 'initialized' ) ) {
11
+ return;
12
+ }
13
+
14
+ // Handle the media uploader
15
+ $field.find( '.button' ).on( 'click', function( e ) {
16
+ e.preventDefault();
17
+ if ( typeof wp.media === 'undefined' ) {
18
+ return;
19
+ }
20
+
21
+ var $$ = $( this );
22
+ var frame = $( this ).data( 'frame' );
23
+
24
+ // If the media frame already exists, reopen it.
25
+ if ( frame ) {
26
+ frame.open();
27
+ return false;
28
+ }
29
+
30
+ // Create the media frame.
31
+ frame = wp.media( {
32
+ title: $$.data( 'choose' ),
33
+ library: {
34
+ type: $$.data( 'library' ).split( ',' ).map( function( v ) { return v.trim(); } )
35
+ },
36
+ multiple: true,
37
+ button: {
38
+ text: $$.data( 'update' ),
39
+ close: false
40
+ }
41
+ } );
42
+
43
+ // If there's a selected image, highlight it.
44
+ frame.on( 'open', function() {
45
+ if ( selectedMedia.length ) {
46
+ var selection = frame.state().get( 'selection' );
47
+
48
+ $.each( selectedMedia, function() {
49
+ selection.add( wp.media.attachment( this ) );
50
+ } );
51
+ }
52
+ } );
53
+
54
+ // Store the frame
55
+ $$.data( 'frame', frame );
56
+
57
+ // When an image is selected, run a callback.
58
+ frame.on( 'select', function() {
59
+ var attachmentIds = [],
60
+ attachment,
61
+ attachmentUrl,
62
+ $currentItem,
63
+ $thumbnail;
64
+
65
+ $.each( frame.state().get('selection').models, function() {
66
+ attachment = this.attributes;
67
+
68
+ // Don't process images that already exist.
69
+ if ( selectedMedia.indexOf( attachment.id.toString() ) == -1 ) {
70
+ $field.find( '.multiple-media-field-template .multiple-media-field-item' ).clone().appendTo( $field.find( '.multiple-media-field-items' ) );
71
+ $currentItem = $field.find( '.multiple-media-field-items .multiple-media-field-item' ).last();
72
+
73
+ $thumbnail = $currentItem.find( '.thumbnail' );
74
+ $thumbnail.attr( 'title', attachment.title );
75
+
76
+ $currentItem.attr( 'data-id', attachment.id );
77
+
78
+ if ( typeof attachment.sizes !== 'undefined' ) {
79
+ if ( typeof attachment.sizes.thumbnail !== 'undefined' ) {
80
+ attachmentUrl = attachment.sizes.thumbnail.url;
81
+ } else {
82
+ attachmentUrl = attachment.sizes.full.url;
83
+ }
84
+ } else{
85
+ attachmentUrl = attachment.icon;
86
+ }
87
+ $thumbnail.attr( 'src', attachmentUrl );
88
+ }
89
+
90
+ attachmentIds.push( attachment.id );
91
+ } );
92
+
93
+ // Remove any no longer selected images
94
+ $field.find( '.multiple-media-field-items .multiple-media-field-item' ).each( function() {
95
+ if ( attachmentIds.indexOf( $( this ).data( 'id' ) ) == -1 ) {
96
+ $( this ).remove();
97
+ }
98
+ } )
99
+
100
+ // Store image data.
101
+ if ( attachmentIds.length ) {
102
+ selectedMedia = attachmentIds;
103
+ $data.val( attachmentIds.join( ',' ) );
104
+ } else {
105
+ selectedMedia = [];
106
+ $data.val( '' );
107
+ }
108
+
109
+ frame.close();
110
+ } );
111
+
112
+ // Finally, open the modal.
113
+ frame.open();
114
+ });
115
+
116
+ $field.find( 'a.media-remove-button' ).on( 'click', function( e ) {
117
+ e.preventDefault();
118
+ var $currentItem = $( this ).parent();
119
+
120
+ selectedMedia.splice( selectedMedia.indexOf( $currentItem.data( 'id' ) ) );
121
+ $data.val( selectedMedia.join( ',' ) );
122
+
123
+ $currentItem.remove();
124
+ } );
125
+
126
+ $field.data( 'initialized', true );
127
+ } );
128
+
129
+ } )( jQuery );
base/inc/fields/js/multiple-media-field.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(i){i(document).on("sowsetupformfield",".siteorigin-widget-field-type-multiple_media",(function(t){var e=i(this),a=e.find(".siteorigin-widget-input"),n=a.val().split(",");e.data("initialized")||(e.find(".button").on("click",(function(t){if(t.preventDefault(),void 0!==wp.media){var l=i(this),d=i(this).data("frame");if(d)return d.open(),!1;(d=wp.media({title:l.data("choose"),library:{type:l.data("library").split(",").map((function(i){return i.trim()}))},multiple:!0,button:{text:l.data("update"),close:!1}})).on("open",(function(){if(n.length){var t=d.state().get("selection");i.each(n,(function(){t.add(wp.media.attachment(this))}))}})),l.data("frame",d),d.on("select",(function(){var t,l,o,m,f=[];i.each(d.state().get("selection").models,(function(){t=this.attributes,-1==n.indexOf(t.id.toString())&&(e.find(".multiple-media-field-template .multiple-media-field-item").clone().appendTo(e.find(".multiple-media-field-items")),o=e.find(".multiple-media-field-items .multiple-media-field-item").last(),(m=o.find(".thumbnail")).attr("title",t.title),o.attr("data-id",t.id),l=void 0!==t.sizes?void 0!==t.sizes.thumbnail?t.sizes.thumbnail.url:t.sizes.full.url:t.icon,m.attr("src",l)),f.push(t.id)})),e.find(".multiple-media-field-items .multiple-media-field-item").each((function(){-1==f.indexOf(i(this).data("id"))&&i(this).remove()})),f.length?(n=f,a.val(f.join(","))):(n=[],a.val("")),d.close()})),d.open()}})),e.find("a.media-remove-button").on("click",(function(t){t.preventDefault();var e=i(this).parent();n.splice(n.indexOf(e.data("id"))),a.val(n.join(",")),e.remove()})),e.data("initialized",!0))}))}(jQuery);
base/inc/fields/js/tinymce-field.js CHANGED
@@ -71,7 +71,7 @@
71
  $( document ).on( 'wp-before-tinymce-init', function ( event, init ) {
72
  if ( init.selector === settings.tinymce.selector ) {
73
  var mediaButtons = $container.data( 'mediaButtons' );
74
- if ( $field.find( '.wp-media-buttons' ).length === 0 ) {
75
  $field.find( '.wp-editor-tabs' ).before( mediaButtons.html );
76
  }
77
 
71
  $( document ).on( 'wp-before-tinymce-init', function ( event, init ) {
72
  if ( init.selector === settings.tinymce.selector ) {
73
  var mediaButtons = $container.data( 'mediaButtons' );
74
+ if ( typeof mediaButtons != 'undefined' && $field.find( '.wp-media-buttons' ).length === 0 ) {
75
  $field.find( '.wp-editor-tabs' ).before( mediaButtons.html );
76
  }
77
 
base/inc/fields/js/tinymce-field.min.js CHANGED
@@ -1 +1 @@
1
- !function(i){var e=function(e){if(!e.data("initialized")){var t=wp.oldEditor?wp.oldEditor:wp.editor;t&&t.hasOwnProperty("autop")&&(wp.editor.autop=t.autop,wp.editor.removep=t.removep,wp.editor.initialize=t.initialize);var n,o=e.find(".siteorigin-widget-tinymce-container"),r=o.data("editorSettings");if(tinyMCEPreInit.mceInit&&tinyMCEPreInit.mceInit.hasOwnProperty("content")){var a=tinyMCEPreInit.mceInit.content;if(a.hasOwnProperty("content_css")&&a.content_css){var c=a.content_css.split(",");if(r.tinymce.hasOwnProperty("content_css")&&r.tinymce.content_css)for(var d=0;d<c.length;d++){var s=c[d];-1===r.tinymce.content_css.indexOf(s)&&(r.tinymce.content_css+=","+s)}else r.tinymce.content_css=c}}if(r.wpautopToggleField){var l=o.closest(".siteorigin-widget-form");n=l.find(r.wpautopToggleField),r.tinymce.wpautop=n.is(":checked")}var f=o.find("textarea");if(!(m=f.data("tinymce-id"))){var m=f.attr("id")+Math.floor(1e3*Math.random());f.data("tinymce-id",m),f.attr("id",m)}if(r.tinymce&&(r.tinymce=i.extend({},r.tinymce,{selector:"#"+m,setup:function(i){i.on("change",(function(){window.tinymce.get(m).save(),f.trigger("change")})),n&&(n.off("change"),n.on("change",(function(){wp.editor.remove(m),r.tinymce.wpautop=n.is(":checked"),wp.editor.initialize(m,r)})))}})),i(document).on("wp-before-tinymce-init",(function(i,t){if(t.selector===r.tinymce.selector){var n=o.data("mediaButtons");0===e.find(".wp-media-buttons").length&&e.find(".wp-editor-tabs").before(n.html);var a=o.find("textarea");e.find(".add_media").attr("data-editor",a.data("tinymce-id"))}})),i(document).on("tinymce-editor-setup",(function(){var i=e.find(".wp-editor-wrap");i.length>0&&!i.hasClass(r.selectedEditor+"-active")&&setTimeout((function(){window.switchEditors.go(m)}),10)})),t.remove(m),window.tinymce&&window.tinymce.EditorManager.overrideDefaults({base_url:r.baseURL,suffix:r.suffix}),f.is(":visible"))t.initialize(m,r);else var w=setInterval((function(){f.is(":visible")&&(t.initialize(m,r),clearInterval(w))}),500);e.on("click",(function(t){var n=i(t.target);if(n.is(".wp-switch-editor")){var o=n.hasClass("switch-tmce")?"tmce":"html";if("tmce"===o){var a=window.tinymce.get(m);if(null!==a){var c=f.val();-1!==c.search("<")&&-1===c.search(">")&&(c=c.replace(/</g,""),f.val(c)),a.setContent(window.switchEditors.wpautop(c))}}r.selectedEditor=o,e.find(".siteorigin-widget-tinymce-selected-editor").val(o)}})),e.data("initialized",!0)}};i(document).on("sowsetupformfield",".siteorigin-widget-field-type-tinymce",(function(){var t=i(this),n=t.closest(".siteorigin-widget-field-repeater-item-form");n.length>0?n.is(":visible")?e(t):n.on("slideToggleOpenComplete",(function(){n.is(":visible")&&(e(t),n.off("slideToggleOpenComplete"))})):e(t)})),i(document).on("sortstop",(function(t,n){(n.item.is(".siteorigin-widget-field-repeater-item")?n.item.find("> .siteorigin-widget-field-repeater-item-form"):n.item.find(".siteorigin-widget-form")).find(".siteorigin-widget-field-type-tinymce").each((function(){i(this).data("initialized",null),e(i(this))}))}))}(jQuery);
1
+ !function(i){var e=function(e){if(!e.data("initialized")){var t=wp.oldEditor?wp.oldEditor:wp.editor;t&&t.hasOwnProperty("autop")&&(wp.editor.autop=t.autop,wp.editor.removep=t.removep,wp.editor.initialize=t.initialize);var n,o=e.find(".siteorigin-widget-tinymce-container"),r=o.data("editorSettings");if(tinyMCEPreInit.mceInit&&tinyMCEPreInit.mceInit.hasOwnProperty("content")){var a=tinyMCEPreInit.mceInit.content;if(a.hasOwnProperty("content_css")&&a.content_css){var c=a.content_css.split(",");if(r.tinymce.hasOwnProperty("content_css")&&r.tinymce.content_css)for(var d=0;d<c.length;d++){var s=c[d];-1===r.tinymce.content_css.indexOf(s)&&(r.tinymce.content_css+=","+s)}else r.tinymce.content_css=c}}if(r.wpautopToggleField){var l=o.closest(".siteorigin-widget-form");n=l.find(r.wpautopToggleField),r.tinymce.wpautop=n.is(":checked")}var f=o.find("textarea");if(!(m=f.data("tinymce-id"))){var m=f.attr("id")+Math.floor(1e3*Math.random());f.data("tinymce-id",m),f.attr("id",m)}if(r.tinymce&&(r.tinymce=i.extend({},r.tinymce,{selector:"#"+m,setup:function(i){i.on("change",(function(){window.tinymce.get(m).save(),f.trigger("change")})),n&&(n.off("change"),n.on("change",(function(){wp.editor.remove(m),r.tinymce.wpautop=n.is(":checked"),wp.editor.initialize(m,r)})))}})),i(document).on("wp-before-tinymce-init",(function(i,t){if(t.selector===r.tinymce.selector){var n=o.data("mediaButtons");void 0!==n&&0===e.find(".wp-media-buttons").length&&e.find(".wp-editor-tabs").before(n.html);var a=o.find("textarea");e.find(".add_media").attr("data-editor",a.data("tinymce-id"))}})),i(document).on("tinymce-editor-setup",(function(){var i=e.find(".wp-editor-wrap");i.length>0&&!i.hasClass(r.selectedEditor+"-active")&&setTimeout((function(){window.switchEditors.go(m)}),10)})),t.remove(m),window.tinymce&&window.tinymce.EditorManager.overrideDefaults({base_url:r.baseURL,suffix:r.suffix}),f.is(":visible"))t.initialize(m,r);else var w=setInterval((function(){f.is(":visible")&&(t.initialize(m,r),clearInterval(w))}),500);e.on("click",(function(t){var n=i(t.target);if(n.is(".wp-switch-editor")){var o=n.hasClass("switch-tmce")?"tmce":"html";if("tmce"===o){var a=window.tinymce.get(m);if(null!==a){var c=f.val();-1!==c.search("<")&&-1===c.search(">")&&(c=c.replace(/</g,""),f.val(c)),a.setContent(window.switchEditors.wpautop(c))}}r.selectedEditor=o,e.find(".siteorigin-widget-tinymce-selected-editor").val(o)}})),e.data("initialized",!0)}};i(document).on("sowsetupformfield",".siteorigin-widget-field-type-tinymce",(function(){var t=i(this),n=t.closest(".siteorigin-widget-field-repeater-item-form");n.length>0?n.is(":visible")?e(t):n.on("slideToggleOpenComplete",(function(){n.is(":visible")&&(e(t),n.off("slideToggleOpenComplete"))})):e(t)})),i(document).on("sortstop",(function(t,n){(n.item.is(".siteorigin-widget-field-repeater-item")?n.item.find("> .siteorigin-widget-field-repeater-item-form"):n.item.find(".siteorigin-widget-form")).find(".siteorigin-widget-field-type-tinymce").each((function(){i(this).data("initialized",null),e(i(this))}))}))}(jQuery);
base/inc/fields/multiple-media.class.php ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Use of this field requires at least WordPress 3.5.
5
+ *
6
+ * Class SiteOrigin_Widget_Field_Multiple_Media
7
+ */
8
+ class SiteOrigin_Widget_Field_Multiple_Media extends SiteOrigin_Widget_Field_Base {
9
+ /**
10
+ * A label for the title of the media selector dialog.
11
+ *
12
+ * @access protected
13
+ * @var string
14
+ */
15
+ protected $choose;
16
+
17
+ /**
18
+ * A label for the confirmation button of the media selector dialog.
19
+ *
20
+ * @access protected
21
+ * @var string
22
+ */
23
+ protected $update;
24
+
25
+ /**
26
+ * Sets the media library which to browse and from which media can be selected. Allowed values are 'image',
27
+ * 'audio', 'video', and 'file'. The default is 'file'.
28
+ *
29
+ * @access protected
30
+ * @var string
31
+ */
32
+ protected $library;
33
+
34
+ protected function get_default_options() {
35
+ return array(
36
+ 'choose' => __( 'Add Media', 'so-widgets-bundle' ),
37
+ 'update' => __( 'Set Media', 'so-widgets-bundle' ),
38
+ 'library' => 'image'
39
+ );
40
+ }
41
+
42
+ protected function render_field( $attachments, $instance ) {
43
+ if ( version_compare( get_bloginfo('version'), '3.5', '<' ) ){
44
+ printf( __( 'You need to <a href="%s">upgrade</a> to WordPress 3.5 to use media fields', 'so-widgets-bundle'), admin_url('update-core.php' ) );
45
+ return;
46
+ }
47
+
48
+ // If library is set to all, convert it to a wildcard as all isn't valid
49
+ if ( $this->library == 'all' ) {
50
+ $this->library = '*';
51
+ }
52
+ ?>
53
+ <div class="multiple-media-field-wrapper">
54
+ <a href="#" class="button" data-choose="<?php echo esc_attr( $this->choose ); ?>"
55
+ data-update="<?php echo esc_attr( $this->update ); ?>"
56
+ data-library="<?php echo esc_attr( $this->library ); ?>">
57
+ <?php echo esc_html( $this->choose ); ?>
58
+ </a>
59
+
60
+
61
+ <div class="multiple-media-field-items">
62
+ <?php
63
+ if ( is_array( $attachments ) ) {
64
+ foreach ( $attachments as $attachment ) {
65
+ $post = get_post( $attachment );
66
+ $src = wp_get_attachment_image_src( $attachment, 'thumbnail' );
67
+
68
+ if ( empty( $src ) ) {
69
+ continue;
70
+ }
71
+ ?>
72
+ <div class="multiple-media-field-item" data-id="<?php echo esc_attr( $attachment ); ?>">
73
+ <img src="<?php echo sow_esc_url( $src[0] ); ?>" class="thumbnail" title="<?php echo esc_attr( $post->post_title ); ?>"/>
74
+ <a href="#" class="media-remove-button"><?php esc_html_e( 'Remove', 'so-widgets-bundle' ); ?></a>
75
+ <div class="title">
76
+ <?php
77
+ if ( ! empty( $post ) ) {
78
+ echo esc_attr( $post->post_title );
79
+ }
80
+ ?>
81
+ </div>
82
+ </div>
83
+ <?php
84
+ }
85
+ }
86
+ ?>
87
+ </div>
88
+
89
+ <div class="multiple-media-field-template" style="display:none">
90
+ <div class="multiple-media-field-item">
91
+ <img class="thumbnail" />
92
+ <a href="#" class="media-remove-button"><?php esc_html_e( 'Remove', 'so-widgets-bundle' ); ?></a>
93
+ <div class="title"></div>
94
+ </div>
95
+
96
+ </div>
97
+
98
+ <input type="hidden" value="<?php echo is_array( $attachments ) ? esc_attr( implode( ',', $attachments ) ) : ''; ?>" data-element="<?php echo esc_attr( $this->element_name ); ?>" name="<?php echo esc_attr( $this->element_name ); ?>" class="siteorigin-widget-input" />
99
+ </div>
100
+
101
+ <?php
102
+ }
103
+
104
+ protected function sanitize_field_input( $value, $instance ) {
105
+ if ( empty( $value ) ) {
106
+ return array();
107
+ }
108
+
109
+ $value = explode( ',', $value );
110
+ $media = array();
111
+
112
+ foreach ( $value as $item ) {
113
+ $media[] = (int) $item;
114
+ }
115
+ return $media;
116
+ }
117
+
118
+ function enqueue_scripts() {
119
+ wp_enqueue_script( 'so-multiple-media-field', plugin_dir_url( __FILE__ ) . 'js/multiple-media-field' . SOW_BUNDLE_JS_SUFFIX . '.js', array( 'jquery' ), SOW_BUNDLE_VERSION );
120
+ wp_enqueue_style( 'so-multiple-media-field', plugin_dir_url( __FILE__ ) . 'css/multiple-media-field.css', array( ), SOW_BUNDLE_VERSION );
121
+ }
122
+ }
base/inc/fields/siteorigin-widget-field-class-loader.class.php CHANGED
@@ -88,7 +88,7 @@ class SiteOrigin_Widget_Field_Class_Loader {
88
  $filepath = $class_path . $filename . '.class.php';
89
  if ( file_exists( $filepath ) ) {
90
  require_once $filepath;
91
- continue;
92
  }
93
  }
94
  }
@@ -106,6 +106,9 @@ class SiteOrigin_Widget_Field_Class_Loader {
106
  apply_filters( 'siteorigin_widgets_field_class_paths', array() ),
107
  'base'
108
  );
 
 
 
109
  }
110
  }
111
 
88
  $filepath = $class_path . $filename . '.class.php';
89
  if ( file_exists( $filepath ) ) {
90
  require_once $filepath;
91
+ break;
92
  }
93
  }
94
  }
106
  apply_filters( 'siteorigin_widgets_field_class_paths', array() ),
107
  'base'
108
  );
109
+
110
+ $this->class_prefixes = apply_filters( 'siteorigin_widgets_field_registered_class_prefixes', $this->class_prefixes );
111
+ $this->class_paths = apply_filters( 'siteorigin_widgets_field_registered_class_paths', $this->class_paths );
112
  }
113
  }
114
 
base/inc/fields/tinymce.class.php CHANGED
@@ -99,6 +99,13 @@ class SiteOrigin_Widget_Field_TinyMCE extends SiteOrigin_Widget_Field_Text_Input
99
  * @var bool
100
  */
101
  private $wp_version_lt_4_8;
 
 
 
 
 
 
 
102
 
103
  protected function get_default_options() {
104
  return array(
@@ -336,6 +343,7 @@ class SiteOrigin_Widget_Field_TinyMCE extends SiteOrigin_Widget_Field_Text_Input
336
 
337
  $settings = array(
338
  'selectedEditor' => $selected_editor,
 
339
  );
340
 
341
  if ( $user_can_richedit ) {
@@ -394,7 +402,9 @@ class SiteOrigin_Widget_Field_TinyMCE extends SiteOrigin_Widget_Field_Text_Input
394
  }
395
  }
396
 
397
- $media_buttons = $this->render_media_buttons( $this->element_id );
 
 
398
  }
399
 
400
  $qt_settings = apply_filters(
@@ -415,15 +425,17 @@ class SiteOrigin_Widget_Field_TinyMCE extends SiteOrigin_Widget_Field_Text_Input
415
  if ( false !== stripos( $value, 'textarea' ) ) {
416
  $value = preg_replace( '%</textarea%i', '&lt;/textarea', $value );
417
  }
418
-
419
- $media_buttons = $this->render_media_buttons( $this->element_id );
420
-
 
 
421
  $settings['baseURL'] = includes_url( 'js/tinymce' );
422
  $settings['suffix'] = SCRIPT_DEBUG ? '' : '.min';
423
 
424
  ?><div class="siteorigin-widget-tinymce-container"
425
- <?php if ( ! empty( $media_buttons ) ) : ?>
426
- data-media-buttons="<?php echo esc_attr( json_encode( array( 'html' => $media_buttons ) ) ) ?>"
427
  <?php endif; ?>
428
  data-editor-settings="<?php echo esc_attr( json_encode( $settings ) ) ?>">
429
  <textarea id="<?php echo esc_attr( $this->element_id ) ?>"
@@ -453,6 +465,7 @@ class SiteOrigin_Widget_Field_TinyMCE extends SiteOrigin_Widget_Field_Text_Input
453
  'default_editor' => $this->selected_editor,
454
  'textarea_rows' => $this->rows,
455
  'editor_class' => 'siteorigin-widget-input',
 
456
  'tinymce' => array(
457
  'wp_skip_init' => strpos( $this->element_id, '__i__' ) != false || strpos( $this->element_id, '_id_' ) != false
458
  )
99
  * @var bool
100
  */
101
  private $wp_version_lt_4_8;
102
+ /**
103
+ * Whether to add the Add Media button.
104
+ *
105
+ * @access protected
106
+ * @var bool
107
+ */
108
+ protected $media_buttons = true;
109
 
110
  protected function get_default_options() {
111
  return array(
343
 
344
  $settings = array(
345
  'selectedEditor' => $selected_editor,
346
+ 'media_buttons' => $this->media_buttons,
347
  );
348
 
349
  if ( $user_can_richedit ) {
402
  }
403
  }
404
 
405
+ if ( $this->media_buttons ) {
406
+ $media_buttons_html = $this->render_media_buttons( $this->element_id );
407
+ }
408
  }
409
 
410
  $qt_settings = apply_filters(
425
  if ( false !== stripos( $value, 'textarea' ) ) {
426
  $value = preg_replace( '%</textarea%i', '&lt;/textarea', $value );
427
  }
428
+
429
+ if ( $this->media_buttons ) {
430
+ $media_buttons_html = $this->render_media_buttons( $this->element_id );
431
+ }
432
+
433
  $settings['baseURL'] = includes_url( 'js/tinymce' );
434
  $settings['suffix'] = SCRIPT_DEBUG ? '' : '.min';
435
 
436
  ?><div class="siteorigin-widget-tinymce-container"
437
+ <?php if ( $this->media_buttons && ! empty( $media_buttons_html ) ) : ?>
438
+ data-media-buttons="<?php echo esc_attr( json_encode( array( 'html' => $media_buttons_html ) ) ) ?>"
439
  <?php endif; ?>
440
  data-editor-settings="<?php echo esc_attr( json_encode( $settings ) ) ?>">
441
  <textarea id="<?php echo esc_attr( $this->element_id ) ?>"
465
  'default_editor' => $this->selected_editor,
466
  'textarea_rows' => $this->rows,
467
  'editor_class' => 'siteorigin-widget-input',
468
+ 'media_buttons' => $this->media_buttons,
469
  'tinymce' => array(
470
  'wp_skip_init' => strpos( $this->element_id, '__i__' ) != false || strpos( $this->element_id, '_id_' ) != false
471
  )
base/inc/routes/siteorigin-widgets-resource.class.php CHANGED
@@ -88,6 +88,10 @@ class SiteOrigin_Widgets_Resource extends WP_REST_Controller {
88
 
89
  /* @var $widget SiteOrigin_Widget */
90
  $widget = SiteOrigin_Widgets_Widget_Manager::get_widget_instance( $widget_class );
 
 
 
 
91
 
92
  if ( ! empty( $widget ) && is_object( $widget ) && is_subclass_of( $widget, 'SiteOrigin_Widget' ) ) {
93
  if ( ! empty( $widget_data ) ) {
@@ -135,6 +139,11 @@ class SiteOrigin_Widgets_Resource extends WP_REST_Controller {
135
  $widget_data = $request['widgetData'];
136
 
137
  $widget = SiteOrigin_Widgets_Widget_Manager::get_widget_instance( $widget_class );
 
 
 
 
 
138
  // This ensures styles are added inline.
139
  add_filter( 'siteorigin_widgets_is_preview', '__return_true' );
140
  $GLOBALS[ 'SO_WIDGETS_BUNDLE_PREVIEW_RENDER' ] = true;
88
 
89
  /* @var $widget SiteOrigin_Widget */
90
  $widget = SiteOrigin_Widgets_Widget_Manager::get_widget_instance( $widget_class );
91
+ // Attempt to activate the widget if it's not already active.
92
+ if ( ! empty( $widget_class ) && empty( $widget ) ) {
93
+ $widget = SiteOrigin_Widgets_Bundle::single()->load_missing_widget( false, $widget_class );
94
+ }
95
 
96
  if ( ! empty( $widget ) && is_object( $widget ) && is_subclass_of( $widget, 'SiteOrigin_Widget' ) ) {
97
  if ( ! empty( $widget_data ) ) {
139
  $widget_data = $request['widgetData'];
140
 
141
  $widget = SiteOrigin_Widgets_Widget_Manager::get_widget_instance( $widget_class );
142
+ // Attempt to activate the widget if it's not already active.
143
+ if ( ! empty( $widget_class ) && empty( $widget ) ) {
144
+ $widget = SiteOrigin_Widgets_Bundle::single()->load_missing_widget( false, $widget_class );
145
+ }
146
+
147
  // This ensures styles are added inline.
148
  add_filter( 'siteorigin_widgets_is_preview', '__return_true' );
149
  $GLOBALS[ 'SO_WIDGETS_BUNDLE_PREVIEW_RENDER' ] = true;
base/inc/widgets/base-slider.class.php CHANGED
@@ -118,6 +118,11 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
118
  'default' => '25',
119
  ),
120
 
 
 
 
 
 
121
  'nav_always_show_mobile' => array(
122
  'type' => 'checkbox',
123
  'label' => __( 'Always show navigation on mobile', 'so-widgets-bundle' ),
@@ -192,6 +197,7 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
192
  'paused' => empty( $controls['autoplay'] ) ?: false,
193
  'pause_on_hover' => ! empty( $controls['autoplay_hover'] ) ?: false,
194
  'swipe' => $controls['swipe'],
 
195
  'nav_always_show_mobile' => ! empty( $controls['nav_always_show_mobile'] ) ? true : '',
196
  'breakpoint' => ! empty( $controls['breakpoint'] ) ? $controls['breakpoint'] : '780px',
197
  );
118
  'default' => '25',
119
  ),
120
 
121
+ 'nav_always_show_desktop' => array(
122
+ 'type' => 'checkbox',
123
+ 'label' => __( 'Always show navigation on desktop', 'so-widgets-bundle' ),
124
+ ),
125
+
126
  'nav_always_show_mobile' => array(
127
  'type' => 'checkbox',
128
  'label' => __( 'Always show navigation on mobile', 'so-widgets-bundle' ),
197
  'paused' => empty( $controls['autoplay'] ) ?: false,
198
  'pause_on_hover' => ! empty( $controls['autoplay_hover'] ) ?: false,
199
  'swipe' => $controls['swipe'],
200
+ 'nav_always_show_desktop' => ! empty( $controls['nav_always_show_desktop'] ) ? true : '',
201
  'nav_always_show_mobile' => ! empty( $controls['nav_always_show_mobile'] ) ? true : '',
202
  'breakpoint' => ! empty( $controls['breakpoint'] ) ? $controls['breakpoint'] : '780px',
203
  );
compat/block-editor/widget-block.css ADDED
@@ -0,0 +1 @@
 
1
+ .so-widget-block-container ul.components-form-token-field__suggestions-list{margin:0;padding:0}
compat/block-editor/widget-block.js CHANGED
@@ -3,7 +3,7 @@
3
  var el = element.createElement;
4
  var registerBlockType = blocks.registerBlockType;
5
  var BlockControls = blockEditor.BlockControls;
6
- var SelectControl = components.SelectControl;
7
  var withState = compose.withState;
8
  var Toolbar = components.Toolbar;
9
  var ToolbarButton = components.ToolbarButton;
@@ -129,7 +129,6 @@
129
  widgetsOptions = sowbBlockEditorAdmin.widgets.map( function ( widget ) {
130
  return { value: widget.class, label: widget.name };
131
  } );
132
- widgetsOptions.unshift( { value: '', label: __( 'Select widget type', 'so-widgets-bundle' ) } );
133
  }
134
 
135
  var loadWidgetForm = props.attributes.widgetClass && ! props.widgetFormHtml;
@@ -199,11 +198,14 @@
199
  'div',
200
  { className: 'so-widget-block-container' },
201
  el(
202
- SelectControl,
203
  {
204
- options: widgetsOptions,
 
205
  value: props.attributes.widgetClass,
 
206
  onChange: onWidgetClassChange,
 
207
  }
208
  ),
209
  el( 'div', {
@@ -310,12 +312,7 @@
310
  } ),
311
 
312
  save: function ( context ) {
313
- if ( context.attributes == 'object' && context.attributes.hasOwnProperty( 'widgetHtml' ) ) {
314
- return React.createElement( wp.element.RawHTML, null, attributes.widgetHtml );
315
- } else {
316
- // Fallback to PHP Render.
317
- return null;
318
- }
319
  }
320
  } );
321
  } )( window.wp.editor, window.wp.blocks, window.wp.i18n, window.wp.element, window.wp.components, window.wp.compose, window.wp.blockEditor );
3
  var el = element.createElement;
4
  var registerBlockType = blocks.registerBlockType;
5
  var BlockControls = blockEditor.BlockControls;
6
+ var ComboboxControl = components.ComboboxControl;
7
  var withState = compose.withState;
8
  var Toolbar = components.Toolbar;
9
  var ToolbarButton = components.ToolbarButton;
129
  widgetsOptions = sowbBlockEditorAdmin.widgets.map( function ( widget ) {
130
  return { value: widget.class, label: widget.name };
131
  } );
 
132
  }
133
 
134
  var loadWidgetForm = props.attributes.widgetClass && ! props.widgetFormHtml;
198
  'div',
199
  { className: 'so-widget-block-container' },
200
  el(
201
+ ComboboxControl,
202
  {
203
+ className: 'so-widget-autocomplete-field',
204
+ label: __( 'Widget type', 'so-widgets-bundle' ),
205
  value: props.attributes.widgetClass,
206
+ onFilterValueChange: function ( value ) {}, // Avoid React notice and onChange potentially not triggering.
207
  onChange: onWidgetClassChange,
208
+ options: widgetsOptions,
209
  }
210
  ),
211
  el( 'div', {
312
  } ),
313
 
314
  save: function ( context ) {
315
+ return null;
 
 
 
 
 
316
  }
317
  } );
318
  } )( window.wp.editor, window.wp.blocks, window.wp.i18n, window.wp.element, window.wp.components, window.wp.compose, window.wp.blockEditor );
compat/block-editor/widget-block.min.js CHANGED
@@ -1 +1 @@
1
- !function(e,t,i,n,o,s,d){var r=n.createElement,a=t.registerBlockType,l=d.BlockControls,w=o.SelectControl,g=s.withState,c=o.Toolbar,u=o.ToolbarButton,m=o.Placeholder,b=o.Spinner,p=i.__;a("sowb/widget-block",{title:p("SiteOrigin Widget","so-widgets-bundle"),description:p("Select a SiteOrigin widget from the dropdown.","so-widgets-bundle"),icon:function(){return r("span",{className:"widget-icon so-widget-icon so-block-editor-icon"})},category:"widgets",keywords:[sowbBlockEditorAdmin.widgets.reduce((function(e,t){return e.length>0&&(e+=","),e+t.name}),"")],supports:{html:!1},attributes:{widgetClass:{type:"string"},widgetData:{type:"object"},widgetHtml:{type:"string"},widgetIcons:{type:"array"}},edit:g({editing:!1,formInitialized:!1,previewInitialized:!1,widgetFormHtml:"",widgetSettingsChanged:!1,widgetPreviewHtml:""})((function(e){function t(){e.setState({editing:!1,previewInitialized:!1})}if(!e.editing&&e.attributes.widgetClass&&e.attributes.widgetData){var i=!e.loadingWidgets&&!e.editing&&!e.widgetPreviewHtml&&e.attributes.widgetClass&&e.attributes.widgetData;i&&(e.setAttributes({widgetHtml:null,widgetIcons:null}),jQuery.post({url:sowbBlockEditorAdmin.restUrl+"sowb/v1/widgets/previews",beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",sowbBlockEditorAdmin.nonce)},data:{widgetClass:e.attributes.widgetClass,widgetData:e.attributes.widgetData||{}}}).done((function(t){e.setState({widgetPreviewHtml:t.html,previewInitialized:!1}),e.setAttributes({widgetHtml:t.html,widgetIcons:t.icons})})).fail((function(t){var i="";t.hasOwnProperty("responseJSON")?i=t.responseJSON.message:t.hasOwnProperty("responseText")&&(i=t.responseText),e.setState({widgetPreviewHtml:"<div>"+i+"</div>"})})));var n=e.widgetPreviewHtml?e.widgetPreviewHtml:"";return[r(l,{key:"controls"},r(c,{label:p("Preview widget.","so-widgets-bundle")},r(u,{className:"components-icon-button components-toolbar__control",label:p("Edit widget.","so-widgets-bundle"),onClick:function(){e.setState({editing:!0,formInitialized:!1})},icon:"edit"}))),r("div",{key:"preview",className:"so-widget-preview-container"},i?r("div",{className:"so-widgets-spinner-container"},r("span",null,r(b))):r("div",{dangerouslySetInnerHTML:{__html:n},ref:function(){e.previewInitialized||(jQuery(window.sowb).trigger("setup_widgets",{preview:!0}),e.setState({previewInitialized:!0}))}}))]}var o=[];sowbBlockEditorAdmin.widgets&&(o=sowbBlockEditorAdmin.widgets.map((function(e){return{value:e.class,label:e.name}}))).unshift({value:"",label:p("Select widget type","so-widgets-bundle")});var s=e.attributes.widgetClass&&!e.widgetFormHtml;s&&jQuery.post({url:sowbBlockEditorAdmin.restUrl+"sowb/v1/widgets/forms",beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",sowbBlockEditorAdmin.nonce)},data:{widgetClass:e.attributes.widgetClass,widgetData:e.attributes.widgetData}}).done((function(t){e.setState({widgetFormHtml:t})})).fail((function(t){var i="";t.hasOwnProperty("responseJSON")?i=t.responseJSON.message:t.hasOwnProperty("responseText")&&(i=t.responseText),e.setState({widgetFormHtml:"<div>"+i+"</div>"})}));var d=e.widgetFormHtml?e.widgetFormHtml:"";return[!!d&&r(l,{key:"controls"},r(c,{label:p("Preview widget.","so-widgets-bundle")},r(u,{className:"components-icon-button components-toolbar__control",label:p("Preview widget.","so-widgets-bundle"),onClick:t,icon:"visibility"}))),r(m,{key:"placeholder",className:"so-widget-placeholder",label:p("SiteOrigin Widget","so-widgets-bundle"),instructions:p("Select the type of widget you want to use:","so-widgets-bundle")},e.loadingWidgets||s?r(b):r("div",{className:"so-widget-block-container"},r(w,{options:o,value:e.attributes.widgetClass,onChange:function(t){if(""!==t){if(e.widgetSettingsChanged&&!confirm(sowbBlockEditorAdmin.confirmChangeWidget))return!1;e.setAttributes({widgetClass:t,widgetData:null}),e.setState({editing:!0,widgetFormHtml:null,formInitialized:!1,widgetSettingsChanged:!1,widgetPreviewHtml:null,previewInitialized:!1})}}}),r("div",{className:"so-widget-block-form-container",dangerouslySetInnerHTML:{__html:d},ref:function(i){var n=jQuery(i).find(".siteorigin-widget-form-main");n.length>0&&!e.formInitialized&&(n.siblings(".siteorigin-widget-preview").find("> a").on("click",(function(e){e.stopImmediatePropagation(),t()})),n.data("backupDisabled",!0),n.sowSetupForm(),e.attributes.widgetData?sowbForms.setWidgetFormValues(n,e.attributes.widgetData):e.setAttributes({widgetData:sowbForms.getWidgetFormValues(n)}),n.on("change",(function(){e.setAttributes({widgetData:sowbForms.getWidgetFormValues(n)}),e.setState({widgetSettingsChanged:!0,widgetPreviewHtml:null,previewInitialized:!1})})),e.setState({formInitialized:!0}))}})))]})),save:function(e){return"object"==e.attributes&&e.attributes.hasOwnProperty("widgetHtml")?React.createElement(wp.element.RawHTML,null,attributes.widgetHtml):null}})}(window.wp.editor,window.wp.blocks,window.wp.i18n,window.wp.element,window.wp.components,window.wp.compose,window.wp.blockEditor);
1
+ !function(e,t,i,o,n,s,d){var r=o.createElement,a=t.registerBlockType,l=d.BlockControls,w=n.ComboboxControl,g=s.withState,c=n.Toolbar,u=n.ToolbarButton,m=n.Placeholder,b=n.Spinner,p=i.__;a("sowb/widget-block",{title:p("SiteOrigin Widget","so-widgets-bundle"),description:p("Select a SiteOrigin widget from the dropdown.","so-widgets-bundle"),icon:function(){return r("span",{className:"widget-icon so-widget-icon so-block-editor-icon"})},category:"widgets",keywords:[sowbBlockEditorAdmin.widgets.reduce((function(e,t){return e.length>0&&(e+=","),e+t.name}),"")],supports:{html:!1},attributes:{widgetClass:{type:"string"},widgetData:{type:"object"},widgetHtml:{type:"string"},widgetIcons:{type:"array"}},edit:g({editing:!1,formInitialized:!1,previewInitialized:!1,widgetFormHtml:"",widgetSettingsChanged:!1,widgetPreviewHtml:""})((function(e){function t(){e.setState({editing:!1,previewInitialized:!1})}if(!e.editing&&e.attributes.widgetClass&&e.attributes.widgetData){var i=!e.loadingWidgets&&!e.editing&&!e.widgetPreviewHtml&&e.attributes.widgetClass&&e.attributes.widgetData;i&&(e.setAttributes({widgetHtml:null,widgetIcons:null}),jQuery.post({url:sowbBlockEditorAdmin.restUrl+"sowb/v1/widgets/previews",beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",sowbBlockEditorAdmin.nonce)},data:{widgetClass:e.attributes.widgetClass,widgetData:e.attributes.widgetData||{}}}).done((function(t){e.setState({widgetPreviewHtml:t.html,previewInitialized:!1}),e.setAttributes({widgetHtml:t.html,widgetIcons:t.icons})})).fail((function(t){var i="";t.hasOwnProperty("responseJSON")?i=t.responseJSON.message:t.hasOwnProperty("responseText")&&(i=t.responseText),e.setState({widgetPreviewHtml:"<div>"+i+"</div>"})})));var o=e.widgetPreviewHtml?e.widgetPreviewHtml:"";return[r(l,{key:"controls"},r(c,{label:p("Preview widget.","so-widgets-bundle")},r(u,{className:"components-icon-button components-toolbar__control",label:p("Edit widget.","so-widgets-bundle"),onClick:function(){e.setState({editing:!0,formInitialized:!1})},icon:"edit"}))),r("div",{key:"preview",className:"so-widget-preview-container"},i?r("div",{className:"so-widgets-spinner-container"},r("span",null,r(b))):r("div",{dangerouslySetInnerHTML:{__html:o},ref:function(){e.previewInitialized||(jQuery(window.sowb).trigger("setup_widgets",{preview:!0}),e.setState({previewInitialized:!0}))}}))]}var n=[];sowbBlockEditorAdmin.widgets&&(n=sowbBlockEditorAdmin.widgets.map((function(e){return{value:e.class,label:e.name}})));var s=e.attributes.widgetClass&&!e.widgetFormHtml;s&&jQuery.post({url:sowbBlockEditorAdmin.restUrl+"sowb/v1/widgets/forms",beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",sowbBlockEditorAdmin.nonce)},data:{widgetClass:e.attributes.widgetClass,widgetData:e.attributes.widgetData}}).done((function(t){e.setState({widgetFormHtml:t})})).fail((function(t){var i="";t.hasOwnProperty("responseJSON")?i=t.responseJSON.message:t.hasOwnProperty("responseText")&&(i=t.responseText),e.setState({widgetFormHtml:"<div>"+i+"</div>"})}));var d=e.widgetFormHtml?e.widgetFormHtml:"";return[!!d&&r(l,{key:"controls"},r(c,{label:p("Preview widget.","so-widgets-bundle")},r(u,{className:"components-icon-button components-toolbar__control",label:p("Preview widget.","so-widgets-bundle"),onClick:t,icon:"visibility"}))),r(m,{key:"placeholder",className:"so-widget-placeholder",label:p("SiteOrigin Widget","so-widgets-bundle"),instructions:p("Select the type of widget you want to use:","so-widgets-bundle")},e.loadingWidgets||s?r(b):r("div",{className:"so-widget-block-container"},r(w,{className:"so-widget-autocomplete-field",label:p("Widget type","so-widgets-bundle"),value:e.attributes.widgetClass,onFilterValueChange:function(e){},onChange:function(t){if(""!==t){if(e.widgetSettingsChanged&&!confirm(sowbBlockEditorAdmin.confirmChangeWidget))return!1;e.setAttributes({widgetClass:t,widgetData:null}),e.setState({editing:!0,widgetFormHtml:null,formInitialized:!1,widgetSettingsChanged:!1,widgetPreviewHtml:null,previewInitialized:!1})}},options:n}),r("div",{className:"so-widget-block-form-container",dangerouslySetInnerHTML:{__html:d},ref:function(i){var o=jQuery(i).find(".siteorigin-widget-form-main");o.length>0&&!e.formInitialized&&(o.siblings(".siteorigin-widget-preview").find("> a").on("click",(function(e){e.stopImmediatePropagation(),t()})),o.data("backupDisabled",!0),o.sowSetupForm(),e.attributes.widgetData?sowbForms.setWidgetFormValues(o,e.attributes.widgetData):e.setAttributes({widgetData:sowbForms.getWidgetFormValues(o)}),o.on("change",(function(){e.setAttributes({widgetData:sowbForms.getWidgetFormValues(o)}),e.setState({widgetSettingsChanged:!0,widgetPreviewHtml:null,previewInitialized:!1})})),e.setState({formInitialized:!0}))}})))]})),save:function(e){return null}})}(window.wp.editor,window.wp.blocks,window.wp.i18n,window.wp.element,window.wp.components,window.wp.compose,window.wp.blockEditor);
compat/block-editor/widget-block.php CHANGED
@@ -31,11 +31,30 @@ class SiteOrigin_Widgets_Bundle_Widget_Block {
31
  SOW_BUNDLE_VERSION
32
  );
33
 
 
 
 
 
 
34
  $widgets_metadata_list = SiteOrigin_Widgets_Bundle::single()->get_widgets_list();
35
  $widgets_manager = SiteOrigin_Widgets_Widget_Manager::single();
36
 
37
- global $wp_widget_factory;
38
  $so_widgets = array();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  $third_party_widgets = array();
40
  foreach ( $wp_widget_factory->widgets as $class => $widget_obj ) {
41
  if ( ! empty( $widget_obj ) && is_object( $widget_obj ) && is_subclass_of( $widget_obj, 'SiteOrigin_Widget' ) ) {
@@ -104,6 +123,10 @@ class SiteOrigin_Widgets_Bundle_Widget_Block {
104
  global $wp_widget_factory;
105
 
106
  $widget = ! empty( $wp_widget_factory->widgets[ $widget_class ] ) ? $wp_widget_factory->widgets[ $widget_class ] : false;
 
 
 
 
107
 
108
  $instance = $attributes['widgetData'];
109
 
@@ -135,7 +158,7 @@ class SiteOrigin_Widgets_Bundle_Widget_Block {
135
 
136
  // Check if this widget uses any icons that need to be enqueued.
137
  if ( ! empty( $attributes['widgetIcons'] ) ) {
138
- $widget_icon_families = apply_filters('siteorigin_widgets_icon_families', array() );
139
  foreach ( $attributes['widgetIcons'] as $icon_font ) {
140
  if ( ! wp_style_is( $icon_font ) ) {
141
  $font_family = explode( 'siteorigin-widget-icon-font-', $icon_font )[1];
31
  SOW_BUNDLE_VERSION
32
  );
33
 
34
+ wp_enqueue_style(
35
+ 'sowb-widget-block',
36
+ plugins_url( 'widget-block' . SOW_BUNDLE_JS_SUFFIX . '.css', __FILE__ )
37
+ );
38
+
39
  $widgets_metadata_list = SiteOrigin_Widgets_Bundle::single()->get_widgets_list();
40
  $widgets_manager = SiteOrigin_Widgets_Widget_Manager::single();
41
 
 
42
  $so_widgets = array();
43
+ // Add data for any inactive widgets.
44
+ foreach ( $widgets_metadata_list as $widget ) {
45
+ if ( ! $widget['Active'] ) {
46
+ include_once wp_normalize_path( $widget['File'] );
47
+ // The last class will always be from the widget file we just loaded.
48
+ $widget_class = end( get_declared_classes() );
49
+
50
+ $so_widgets[] = array(
51
+ 'name' => $widget['Name'],
52
+ 'class' => $widget_class,
53
+ );
54
+ }
55
+ }
56
+
57
+ global $wp_widget_factory;
58
  $third_party_widgets = array();
59
  foreach ( $wp_widget_factory->widgets as $class => $widget_obj ) {
60
  if ( ! empty( $widget_obj ) && is_object( $widget_obj ) && is_subclass_of( $widget_obj, 'SiteOrigin_Widget' ) ) {
123
  global $wp_widget_factory;
124
 
125
  $widget = ! empty( $wp_widget_factory->widgets[ $widget_class ] ) ? $wp_widget_factory->widgets[ $widget_class ] : false;
126
+ // Attempt to activate the widget if it's not already active.
127
+ if ( ! empty( $widget_class ) && empty( $widget ) ) {
128
+ $widget = SiteOrigin_Widgets_Bundle::single()->load_missing_widget( false, $widget_class );
129
+ }
130
 
131
  $instance = $attributes['widgetData'];
132
 
158
 
159
  // Check if this widget uses any icons that need to be enqueued.
160
  if ( ! empty( $attributes['widgetIcons'] ) ) {
161
+ $widget_icon_families = apply_filters( 'siteorigin_widgets_icon_families', array() );
162
  foreach ( $attributes['widgetIcons'] as $icon_font ) {
163
  if ( ! wp_style_is( $icon_font ) ) {
164
  $font_family = explode( 'siteorigin-widget-icon-font-', $icon_font )[1];
js/lib/jquery.fitvids.js ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*jshint browser:true */
2
+ /*!
3
+ * FitVids 1.1
4
+ *
5
+ * Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
6
+ * Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
7
+ * Released under the WTFPL license - http://sam.zoy.org/wtfpl/
8
+ *
9
+ */
10
+
11
+ ;(function( $ ){
12
+
13
+ 'use strict';
14
+
15
+ $.fn.fitVids = function( options ) {
16
+ var settings = {
17
+ customSelector: null,
18
+ ignore: null
19
+ };
20
+
21
+ if(!document.getElementById('fit-vids-style')) {
22
+ // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js
23
+ var head = document.head || document.getElementsByTagName('head')[0];
24
+ var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';
25
+ var div = document.createElement("div");
26
+ div.innerHTML = '<p>x</p><style id="fit-vids-style">' + css + '</style>';
27
+ head.appendChild(div.childNodes[1]);
28
+ }
29
+
30
+ if ( options ) {
31
+ $.extend( settings, options );
32
+ }
33
+
34
+ return this.each(function(){
35
+ var selectors = [
36
+ 'iframe[src*="player.vimeo.com"]',
37
+ 'iframe[src*="youtube.com"]',
38
+ 'iframe[src*="youtube-nocookie.com"]',
39
+ 'iframe[src*="kickstarter.com"][src*="video.html"]',
40
+ 'object',
41
+ 'embed'
42
+ ];
43
+
44
+ if (settings.customSelector) {
45
+ selectors.push(settings.customSelector);
46
+ }
47
+
48
+ var ignoreList = '.fitvidsignore';
49
+
50
+ if(settings.ignore) {
51
+ ignoreList = ignoreList + ', ' + settings.ignore;
52
+ }
53
+
54
+ var $allVideos = $(this).find(selectors.join(','));
55
+ $allVideos = $allVideos.not('object object'); // SwfObj conflict patch
56
+ $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.
57
+
58
+ $allVideos.each(function(){
59
+ var $this = $(this);
60
+ if($this.parents(ignoreList).length > 0) {
61
+ return; // Disable FitVids on this video.
62
+ }
63
+ if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }
64
+ if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))
65
+ {
66
+ $this.attr('height', 9);
67
+ $this.attr('width', 16);
68
+ }
69
+ var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),
70
+ width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),
71
+ aspectRatio = height / width;
72
+ if(!$this.attr('name')){
73
+ var videoName = 'fitvid' + $.fn.fitVids._count;
74
+ $this.attr('name', videoName);
75
+ $.fn.fitVids._count++;
76
+ }
77
+ $this.wrap('<div class="fluid-width-video-wrapper"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');
78
+ $this.removeAttr('height').removeAttr('width');
79
+ });
80
+ });
81
+ };
82
+
83
+ // Internal counter for unique video names.
84
+ $.fn.fitVids._count = 0;
85
+
86
+ // Works with either jQuery or Zepto
87
+ })( window.jQuery || window.Zepto );
js/lib/jquery.fitvids.min.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * FitVids 1.1
3
+ *
4
+ * Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
5
+ * Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
6
+ * Released under the WTFPL license - http://sam.zoy.org/wtfpl/
7
+ *
8
+ */
9
+ !function(t){"use strict";t.fn.fitVids=function(e){var i={customSelector:null,ignore:null};if(!document.getElementById("fit-vids-style")){var r=document.head||document.getElementsByTagName("head")[0],a=document.createElement("div");a.innerHTML='<p>x</p><style id="fit-vids-style">.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}</style>',r.appendChild(a.childNodes[1])}return e&&t.extend(i,e),this.each((function(){var e=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"];i.customSelector&&e.push(i.customSelector);var r=".fitvidsignore";i.ignore&&(r=r+", "+i.ignore);var a=t(this).find(e.join(","));(a=(a=a.not("object object")).not(r)).each((function(){var e=t(this);if(!(e.parents(r).length>0||"embed"===this.tagName.toLowerCase()&&e.parent("object").length||e.parent(".fluid-width-video-wrapper").length)){e.css("height")||e.css("width")||!isNaN(e.attr("height"))&&!isNaN(e.attr("width"))||(e.attr("height",9),e.attr("width",16));var i=("object"===this.tagName.toLowerCase()||e.attr("height")&&!isNaN(parseInt(e.attr("height"),10))?parseInt(e.attr("height"),10):e.height())/(isNaN(parseInt(e.attr("width"),10))?e.width():parseInt(e.attr("width"),10));if(!e.attr("name")){var a="fitvid"+t.fn.fitVids._count;e.attr("name",a),t.fn.fitVids._count++}e.wrap('<div class="fluid-width-video-wrapper"></div>').parent(".fluid-width-video-wrapper").css("padding-top",100*i+"%"),e.removeAttr("height").removeAttr("width")}}))}))},t.fn.fitVids._count=0}(window.jQuery||window.Zepto);
js/slider/jquery.slider.js CHANGED
@@ -186,22 +186,26 @@ jQuery( function($){
186
  $p.add($n).hide();
187
  if( $slides.length > 1 ) {
188
  if( !$base.hasClass('sow-slider-is-mobile') ) {
189
-
190
- var toHide = false;
191
- $base
192
- .on( 'mouseenter', function() {
193
- $p.add($n).clearQueue().fadeIn(150);
194
- toHide = false;
195
- })
196
- .on( 'mouseleave', function() {
197
- toHide = true;
198
- setTimeout(function(){
199
- if( toHide ) {
200
- $p.add($n).clearQueue().fadeOut(150);
201
- }
202
  toHide = false;
203
- }, 750);
204
- });
 
 
 
 
 
 
 
 
 
205
  } else if ( settings.nav_always_show_mobile && window.matchMedia('(max-width: ' + settings.breakpoint + ')').matches) {
206
  $p.show();
207
  $n.show();
186
  $p.add($n).hide();
187
  if( $slides.length > 1 ) {
188
  if( !$base.hasClass('sow-slider-is-mobile') ) {
189
+ if ( settings.nav_always_show_desktop && window.matchMedia( '(min-width: ' + settings.breakpoint + ')' ).matches ) {
190
+ $p.show();
191
+ $n.show();
192
+ } else {
193
+ var toHide = false;
194
+ $base
195
+ .on( 'mouseenter', function() {
196
+ $p.add( $n ).clearQueue().fadeIn( 150 );
 
 
 
 
 
197
  toHide = false;
198
+ } )
199
+ .on( 'mouseleave', function() {
200
+ toHide = true;
201
+ setTimeout( function() {
202
+ if( toHide ) {
203
+ $p.add( $n ).clearQueue().fadeOut( 150 );
204
+ }
205
+ toHide = false;
206
+ }, 750) ;
207
+ } );
208
+ }
209
  } else if ( settings.nav_always_show_mobile && window.matchMedia('(max-width: ' + settings.breakpoint + ')').matches) {
210
  $p.show();
211
  $n.show();
js/slider/jquery.slider.min.js CHANGED
@@ -1 +1 @@
1
- var sowb=window.sowb||{};sowb.SiteOriginSlider=function(e){return{playSlideVideo:function(i){e(i).find("video").each((function(){void 0!==this.play&&this.play()}))},pauseSlideVideo:function(i){e(i).find("video").each((function(){void 0!==this.pause&&this.pause()}))},setupActiveSlide:function(i,t,s){var n=e(i).find(".cycle-sentinel"),o=e(t),d=o.find("video.sow-background-element");(void 0===s?n.css("height",o.outerHeight()+"px"):n.animate({height:o.outerHeight()},s),d.length)&&(o.outerWidth()/o.outerHeight()>d.outerWidth()/d.outerHeight()?d.css({width:"100%",height:"auto"}):d.css({width:"auto",height:"100%"}),d.css({"margin-left":-Math.ceil(d.width()/2),"margin-top":-Math.ceil(d.height()/2)}))}}},jQuery((function(e){sowb.setupSliders=sowb.setupSlider=function(){var i=new sowb.SiteOriginSlider(e);e(".sow-slider-images").each((function(){var t=e(this);if(t.data("initialized"))return t;var s=t.siblings(".sow-slider-pagination"),n=t.closest(".sow-slider-base"),o=n.find(".sow-slide-nav"),d=t.find(".sow-slider-image"),a=t.data("settings");d.each((function(i,t){var s=e(t),n=s.data("url");void 0!==n&&n.hasOwnProperty("url")&&(s.on("click",(function(e){e.preventDefault(),window.open(n.url,n.hasOwnProperty("new_window")&&n.new_window?"_blank":"_self").opener=null})),s.find("a").on("click",(function(e){e.stopPropagation()})))}));var l=function(){var c=t.closest(".so-widget-fittext-wrapper");if(c.length>0&&!c.data("fitTextDone"))c.on("fitTextDone",(function(){l()}));else{n.show();var r=function(){t.find(".sow-slider-image").each((function(){var i=e(this);i.css("height",i.find(".sow-slider-image-wrapper").outerHeight()+"px")}))};if(e(window).on("resize panelsStretchRows",r).trigger("resize"),e(sowb).on("setup_widgets",r),t.on({"cycle-after":function(t,s,n,o,d){var a=e(this);i.playSlideVideo(o),i.setupActiveSlide(a,o),e(o).trigger("sowSlideCycleAfter")},"cycle-before":function(t,n,o,d,a){var l=e(this);s.find("> li").removeClass("sow-active").eq(n.slideNum-1).addClass("sow-active"),i.pauseSlideVideo(o),i.setupActiveSlide(l,d,n.speed),e(d).trigger("sowSlideCycleBefore")},"cycle-initialized":function(n,d){i.playSlideVideo(e(this).find(".cycle-slide-active")),i.setupActiveSlide(t,d.slides[0]),s.find(">li").removeClass("sow-active").eq(0).addClass("sow-active"),e(this).find(".cycle-slide-active").trigger("sowSlideInitial"),d.slideCount<=1&&(s.hide(),o.hide()),e(window).trigger("resize"),setTimeout((function(){r(),i.setupActiveSlide(t,d.slides[0]),t.find(".cycle-sentinel").empty()}),200)}}).cycle({slides:"> .sow-slider-image",speed:a.speed,timeout:a.timeout,swipe:a.swipe,paused:a.paused,pauseOnHover:a.pause_on_hover,"swipe-fx":"scrollHorz",log:!1}),t.find("video.sow-background-element").on("loadeddata",(function(){i.setupActiveSlide(t,t.find(".cycle-slide-active"))})),s.add(o).hide(),d.length>1)if(n.hasClass("sow-slider-is-mobile"))a.nav_always_show_mobile&&window.matchMedia("(max-width: "+a.breakpoint+")").matches&&(s.show(),o.show());else{var u=!1;n.on("mouseenter",(function(){s.add(o).clearQueue().fadeIn(150),u=!1})).on("mouseleave",(function(){u=!0,setTimeout((function(){u&&s.add(o).clearQueue().fadeOut(150),u=!1}),750)}))}var w=function(){i.setupActiveSlide(t,t.find(".cycle-slide-active"))};e(window).on("resize",w),e(sowb).on("setup_widgets",w),s.find("> li > a").on("click",(function(i){i.preventDefault(),t.cycle("goto",e(this).data("goto"))})),o.find("> a").on("click",(function(i){i.preventDefault(),t.cycle(e(this).data("action"))})),n.on("keydown",(function(e){37===e.which?t.cycle("prev"):39===e.which&&t.cycle("next")}))}},c=t.find("img.sow-slider-background-image, img.sow-slider-foreground-image"),r=0,u=!1;c.each((function(){e(this);this.complete?r++:e(this).one("load",(function(){++r!==c.length||u||(l(),u=!0)})).attr("src",e(this).attr("src")),r!==c.length||u||(l(),u=!0)})),0===c.length&&l(),t.data("initialized",!0)}))},sowb.setupSliders(),e(sowb).on("setup_widgets",sowb.setupSliders)})),window.sowb=sowb;
1
+ var sowb=window.sowb||{};sowb.SiteOriginSlider=function(e){return{playSlideVideo:function(i){e(i).find("video").each((function(){void 0!==this.play&&this.play()}))},pauseSlideVideo:function(i){e(i).find("video").each((function(){void 0!==this.pause&&this.pause()}))},setupActiveSlide:function(i,t,s){var o=e(i).find(".cycle-sentinel"),n=e(t),d=n.find("video.sow-background-element");(void 0===s?o.css("height",n.outerHeight()+"px"):o.animate({height:n.outerHeight()},s),d.length)&&(n.outerWidth()/n.outerHeight()>d.outerWidth()/d.outerHeight()?d.css({width:"100%",height:"auto"}):d.css({width:"auto",height:"100%"}),d.css({"margin-left":-Math.ceil(d.width()/2),"margin-top":-Math.ceil(d.height()/2)}))}}},jQuery((function(e){sowb.setupSliders=sowb.setupSlider=function(){var i=new sowb.SiteOriginSlider(e);e(".sow-slider-images").each((function(){var t=e(this);if(t.data("initialized"))return t;var s=t.siblings(".sow-slider-pagination"),o=t.closest(".sow-slider-base"),n=o.find(".sow-slide-nav"),d=t.find(".sow-slider-image"),a=t.data("settings");d.each((function(i,t){var s=e(t),o=s.data("url");void 0!==o&&o.hasOwnProperty("url")&&(s.on("click",(function(e){e.preventDefault(),window.open(o.url,o.hasOwnProperty("new_window")&&o.new_window?"_blank":"_self").opener=null})),s.find("a").on("click",(function(e){e.stopPropagation()})))}));var l=function(){var c=t.closest(".so-widget-fittext-wrapper");if(c.length>0&&!c.data("fitTextDone"))c.on("fitTextDone",(function(){l()}));else{o.show();var r=function(){t.find(".sow-slider-image").each((function(){var i=e(this);i.css("height",i.find(".sow-slider-image-wrapper").outerHeight()+"px")}))};if(e(window).on("resize panelsStretchRows",r).trigger("resize"),e(sowb).on("setup_widgets",r),t.on({"cycle-after":function(t,s,o,n,d){var a=e(this);i.playSlideVideo(n),i.setupActiveSlide(a,n),e(n).trigger("sowSlideCycleAfter")},"cycle-before":function(t,o,n,d,a){var l=e(this);s.find("> li").removeClass("sow-active").eq(o.slideNum-1).addClass("sow-active"),i.pauseSlideVideo(n),i.setupActiveSlide(l,d,o.speed),e(d).trigger("sowSlideCycleBefore")},"cycle-initialized":function(o,d){i.playSlideVideo(e(this).find(".cycle-slide-active")),i.setupActiveSlide(t,d.slides[0]),s.find(">li").removeClass("sow-active").eq(0).addClass("sow-active"),e(this).find(".cycle-slide-active").trigger("sowSlideInitial"),d.slideCount<=1&&(s.hide(),n.hide()),e(window).trigger("resize"),setTimeout((function(){r(),i.setupActiveSlide(t,d.slides[0]),t.find(".cycle-sentinel").empty()}),200)}}).cycle({slides:"> .sow-slider-image",speed:a.speed,timeout:a.timeout,swipe:a.swipe,paused:a.paused,pauseOnHover:a.pause_on_hover,"swipe-fx":"scrollHorz",log:!1}),t.find("video.sow-background-element").on("loadeddata",(function(){i.setupActiveSlide(t,t.find(".cycle-slide-active"))})),s.add(n).hide(),d.length>1)if(o.hasClass("sow-slider-is-mobile"))a.nav_always_show_mobile&&window.matchMedia("(max-width: "+a.breakpoint+")").matches&&(s.show(),n.show());else if(a.nav_always_show_desktop&&window.matchMedia("(min-width: "+a.breakpoint+")").matches)s.show(),n.show();else{var u=!1;o.on("mouseenter",(function(){s.add(n).clearQueue().fadeIn(150),u=!1})).on("mouseleave",(function(){u=!0,setTimeout((function(){u&&s.add(n).clearQueue().fadeOut(150),u=!1}),750)}))}var w=function(){i.setupActiveSlide(t,t.find(".cycle-slide-active"))};e(window).on("resize",w),e(sowb).on("setup_widgets",w),s.find("> li > a").on("click",(function(i){i.preventDefault(),t.cycle("goto",e(this).data("goto"))})),n.find("> a").on("click",(function(i){i.preventDefault(),t.cycle(e(this).data("action"))})),o.on("keydown",(function(e){37===e.which?t.cycle("prev"):39===e.which&&t.cycle("next")}))}},c=t.find("img.sow-slider-background-image, img.sow-slider-foreground-image"),r=0,u=!1;c.each((function(){e(this);this.complete?r++:e(this).one("load",(function(){++r!==c.length||u||(l(),u=!0)})).attr("src",e(this).attr("src")),r!==c.length||u||(l(),u=!0)})),0===c.length&&l(),t.data("initialized",!0)}))},sowb.setupSliders(),e(sowb).on("setup_widgets",sowb.setupSliders)})),window.sowb=sowb;
lang/so-widgets-bundle.pot CHANGED
@@ -240,19 +240,19 @@ msgstr ""
240
  msgid "Current Color"
241
  msgstr ""
242
 
243
- #: compat/block-editor/widget-block.php:62
244
  msgid "%s by %s"
245
  msgstr ""
246
 
247
- #: compat/block-editor/widget-block.php:82, compat/visual-composer/visual-composer.php:77
248
  msgid "Selecting a different widget will revert any changes. Continue?"
249
  msgstr ""
250
 
251
- #: compat/block-editor/widget-block.php:98
252
  msgid "You need to select a widget type before you'll see anything here. :)"
253
  msgstr ""
254
 
255
- #: compat/block-editor/widget-block.php:155
256
  msgid "Invalid widget class %s. Please make sure the widget has been activated in %sSiteOrigin Widgets%s."
257
  msgstr ""
258
 
@@ -268,7 +268,7 @@ msgstr ""
268
  msgid "Regular"
269
  msgstr ""
270
 
271
- #: icons/fontawesome/filter.php:1472, widgets/contact/contact.php:364, widgets/contact/contact.php:486, widgets/contact/contact.php:594, widgets/contact/contact.php:672, widgets/headline/headline.php:189
272
  msgid "Solid"
273
  msgstr ""
274
 
@@ -300,7 +300,7 @@ msgstr ""
300
  msgid "Panels"
301
  msgstr ""
302
 
303
- #: widgets/accordion/accordion.php:88, widgets/hero/hero.php:62, widgets/layout-slider/layout-slider.php:56, widgets/tabs/tabs.php:88
304
  msgid "Content"
305
  msgstr ""
306
 
@@ -324,7 +324,7 @@ msgstr ""
324
  msgid "Closed"
325
  msgstr ""
326
 
327
- #: widgets/accordion/accordion.php:110, widgets/contact/contact.php:327, widgets/cta/cta.php:74, widgets/post-carousel/post-carousel.php:207, widgets/slider/slider.php:121, widgets/tabs/tabs.php:100, widgets/testimonial/testimonial.php:184
328
  msgid "Design"
329
  msgstr ""
330
 
@@ -332,7 +332,7 @@ msgstr ""
332
  msgid "Headings"
333
  msgstr ""
334
 
335
- #: widgets/accordion/accordion.php:120, widgets/accordion/accordion.php:158, widgets/contact/contact.php:337, widgets/contact/contact.php:575, widgets/cta/cta.php:78, widgets/hero/hero.php:122, widgets/layout-slider/layout-slider.php:90, widgets/social-media-buttons/social-media-buttons.php:86, widgets/tabs/tabs.php:110, widgets/tabs/tabs.php:130, widgets/tabs/tabs.php:174
336
  msgid "Background color"
337
  msgstr ""
338
 
@@ -348,7 +348,7 @@ msgstr ""
348
  msgid "Title hover color"
349
  msgstr ""
350
 
351
- #: widgets/accordion/accordion.php:139, widgets/accordion/accordion.php:167, widgets/contact/contact.php:347, widgets/contact/contact.php:469, widgets/contact/contact.php:585, widgets/cta/cta.php:82, widgets/tabs/tabs.php:115, widgets/tabs/tabs.php:149, widgets/tabs/tabs.php:183
352
  msgid "Border color"
353
  msgstr ""
354
 
@@ -356,7 +356,7 @@ msgstr ""
356
  msgid "Border hover color"
357
  msgstr ""
358
 
359
- #: widgets/accordion/accordion.php:147, widgets/accordion/accordion.php:171, widgets/contact/contact.php:352, widgets/contact/contact.php:474, widgets/contact/contact.php:601, widgets/tabs/tabs.php:119, widgets/tabs/tabs.php:159, widgets/tabs/tabs.php:187
360
  msgid "Border width"
361
  msgstr ""
362
 
@@ -384,7 +384,7 @@ msgstr ""
384
  msgid "Button text"
385
  msgstr ""
386
 
387
- #: widgets/button/button.php:51, widgets/google-map/google-map.php:103, widgets/headline/headline.php:47, widgets/headline/headline.php:118, widgets/hero/hero.php:128, widgets/icon/icon.php:57, widgets/image/image.php:90, widgets/layout-slider/layout-slider.php:96, widgets/simple-masonry/simple-masonry.php:89, widgets/slider/slider.php:103
388
  msgid "Destination URL"
389
  msgstr ""
390
 
@@ -424,7 +424,7 @@ msgstr ""
424
  msgid "Top"
425
  msgstr ""
426
 
427
- #: widgets/button/button.php:94, widgets/button/button.php:120, widgets/contact/contact.php:402, widgets/contact/contact.php:417, widgets/contact/contact.php:646, widgets/cta/cta.php:103, widgets/features/features.php:67, widgets/headline/headline.php:92, widgets/headline/headline.php:163, widgets/headline/headline.php:218, widgets/icon/icon.php:50, widgets/image/image.php:50, widgets/image/image.php:62, widgets/simple-masonry/simple-masonry.php:216, widgets/social-media-buttons/social-media-buttons.php:153, widgets/social-media-buttons/social-media-buttons.php:164, widgets/testimonial/testimonial.php:256
428
  msgid "Right"
429
  msgstr ""
430
 
@@ -432,7 +432,7 @@ msgstr ""
432
  msgid "Bottom"
433
  msgstr ""
434
 
435
- #: widgets/button/button.php:96, widgets/button/button.php:119, widgets/contact/contact.php:401, widgets/contact/contact.php:416, widgets/contact/contact.php:645, widgets/cta/cta.php:102, widgets/features/features.php:69, widgets/headline/headline.php:91, widgets/headline/headline.php:162, widgets/headline/headline.php:217, widgets/icon/icon.php:49, widgets/image/image.php:49, widgets/image/image.php:61, widgets/simple-masonry/simple-masonry.php:215, widgets/social-media-buttons/social-media-buttons.php:152, widgets/social-media-buttons/social-media-buttons.php:163, widgets/testimonial/testimonial.php:255
436
  msgid "Left"
437
  msgstr ""
438
 
@@ -440,7 +440,7 @@ msgstr ""
440
  msgid "Design and layout"
441
  msgstr ""
442
 
443
- #: widgets/button/button.php:110, widgets/contact/contact.php:408, widgets/contact/contact.php:638, widgets/contact/contact.php:689, widgets/google-map/google-map.php:94, base/inc/fields/image-size.class.php:57
444
  msgid "Width"
445
  msgstr ""
446
 
@@ -448,15 +448,15 @@ msgstr ""
448
  msgid "Leave blank to let the button resize according to content."
449
  msgstr ""
450
 
451
- #: widgets/button/button.php:116, widgets/contact/contact.php:413, widgets/contact/contact.php:642, widgets/social-media-buttons/social-media-buttons.php:149
452
  msgid "Align"
453
  msgstr ""
454
 
455
- #: widgets/button/button.php:121, widgets/contact/contact.php:418, widgets/contact/contact.php:647, widgets/headline/headline.php:90, widgets/headline/headline.php:161, widgets/headline/headline.php:216, widgets/icon/icon.php:48, widgets/image/image.php:51, widgets/image/image.php:63, widgets/social-media-buttons/social-media-buttons.php:154, widgets/social-media-buttons/social-media-buttons.php:165
456
  msgid "Center"
457
  msgstr ""
458
 
459
- #: widgets/button/button.php:122, widgets/contact/contact.php:419, widgets/headline/headline.php:93, widgets/headline/headline.php:164, widgets/social-media-buttons/social-media-buttons.php:155, widgets/social-media-buttons/social-media-buttons.php:166
460
  msgid "Justify"
461
  msgstr ""
462
 
@@ -480,7 +480,7 @@ msgstr ""
480
  msgid "Button color"
481
  msgstr ""
482
 
483
- #: widgets/button/button.php:145, widgets/contact/contact.php:440, widgets/contact/contact.php:613, widgets/hero/hero.php:261, widgets/layout-slider/layout-slider.php:206, widgets/testimonial/testimonial.php:227
484
  msgid "Text color"
485
  msgstr ""
486
 
@@ -496,15 +496,15 @@ msgstr ""
496
  msgid "Hover text color"
497
  msgstr ""
498
 
499
- #: widgets/button/button.php:182, widgets/contact/contact.php:381, widgets/contact/contact.php:431, widgets/features/features.php:141, widgets/features/features.php:162, widgets/features/features.php:183, widgets/headline/headline.php:78, widgets/headline/headline.php:149
500
  msgid "Font"
501
  msgstr ""
502
 
503
- #: widgets/button/button.php:188, widgets/contact/contact.php:386, widgets/contact/contact.php:436, widgets/contact/contact.php:618
504
  msgid "Font size"
505
  msgstr ""
506
 
507
- #: widgets/button/button.php:190, widgets/contact/contact.php:290, widgets/contact/contact.php:524, widgets/contact/contact.php:626, widgets/social-media-buttons/social-media-buttons.php:119
508
  msgid "Normal"
509
  msgstr ""
510
 
@@ -524,7 +524,7 @@ msgstr ""
524
  msgid "Rounding"
525
  msgstr ""
526
 
527
- #: widgets/button/button.php:202, widgets/contact/contact.php:360, widgets/contact/contact.php:482, widgets/contact/contact.php:593, widgets/contact/contact.php:678, widgets/google-map/google-map.php:158, widgets/headline/headline.php:188, widgets/social-media-buttons/social-media-buttons.php:130
528
  msgid "None"
529
  msgstr ""
530
 
@@ -540,7 +540,7 @@ msgstr ""
540
  msgid "Completely rounded"
541
  msgstr ""
542
 
543
- #: widgets/button/button.php:211, widgets/contact/contact.php:342, widgets/contact/contact.php:448, widgets/contact/contact.php:633, widgets/social-media-buttons/social-media-buttons.php:138, widgets/testimonial/testimonial.php:235
544
  msgid "Padding"
545
  msgstr ""
546
 
@@ -692,7 +692,7 @@ msgstr ""
692
  msgid "List in contact emails, the IP address of the form sender."
693
  msgstr ""
694
 
695
- #: widgets/contact/contact.php:137, widgets/contact/contact.php:427
696
  msgid "Fields"
697
  msgstr ""
698
 
@@ -720,399 +720,407 @@ msgstr ""
720
  msgid "Phone Number"
721
  msgstr ""
722
 
723
- #: widgets/contact/contact.php:152, widgets/contact/contact.php:754
 
 
 
 
724
  msgid "Subject"
725
  msgstr ""
726
 
727
- #: widgets/contact/contact.php:153, widgets/features/features.php:114, widgets/features/features.php:157, widgets/headline/headline.php:43, widgets/headline/headline.php:114, widgets/price-table/price-table.php:111, widgets/taxonomy/taxonomy.php:51, widgets/testimonial/testimonial.php:83
728
  msgid "Text"
729
  msgstr ""
730
 
731
- #: widgets/contact/contact.php:154
732
  msgid "Text Area"
733
  msgstr ""
734
 
735
- #: widgets/contact/contact.php:155
736
  msgid "Dropdown Select"
737
  msgstr ""
738
 
739
- #: widgets/contact/contact.php:156
740
  msgid "Checkboxes"
741
  msgstr ""
742
 
743
- #: widgets/contact/contact.php:157
744
  msgid "Radio"
745
  msgstr ""
746
 
747
- #: widgets/contact/contact.php:167, widgets/taxonomy/taxonomy.php:43
748
  msgid "Label"
749
  msgstr ""
750
 
751
- #: widgets/contact/contact.php:172
752
  msgid "Description"
753
  msgstr ""
754
 
755
- #: widgets/contact/contact.php:173
756
  msgid "This text will appear small beneath the input field."
757
  msgstr ""
758
 
759
- #: widgets/contact/contact.php:178
760
  msgid "Required Field"
761
  msgstr ""
762
 
763
- #: widgets/contact/contact.php:182, widgets/contact/contact.php:189, widgets/contact/contact.php:1071
764
  msgid "Required field"
765
  msgstr ""
766
 
767
- #: widgets/contact/contact.php:183
768
  msgid "Is this field required?"
769
  msgstr ""
770
 
771
- #: widgets/contact/contact.php:187
772
  msgid "Missing message"
773
  msgstr ""
774
 
775
- #: widgets/contact/contact.php:188
776
  msgid "Error message to display if this field is missing."
777
  msgstr ""
778
 
779
- #: widgets/contact/contact.php:197
780
  msgid "Options"
781
  msgstr ""
782
 
783
- #: widgets/contact/contact.php:198
784
  msgid "Option"
785
  msgstr ""
786
 
787
- #: widgets/contact/contact.php:203
788
  msgid "Value"
789
  msgstr ""
790
 
791
- #: widgets/contact/contact.php:218
792
  msgid "Spam Protection"
793
  msgstr ""
794
 
795
- #: widgets/contact/contact.php:224
796
  msgid "reCAPTCHA v2"
797
  msgstr ""
798
 
799
- #: widgets/contact/contact.php:228
800
  msgid "Use reCAPTCHA v2"
801
  msgstr ""
802
 
803
- #: widgets/contact/contact.php:231
804
  msgid "Please make sure you register a new reCAPTCHA v2 key %shere%s."
805
  msgstr ""
806
 
807
- #: widgets/contact/contact.php:245
808
  msgid "reCAPTCHA v2 Site Key"
809
  msgstr ""
810
 
811
- #: widgets/contact/contact.php:253
812
  msgid "reCAPTCHA v2 Secret Key"
813
  msgstr ""
814
 
815
- #: widgets/contact/contact.php:261
816
  msgid "Theme"
817
  msgstr ""
818
 
819
- #: widgets/contact/contact.php:264
820
  msgid "Light"
821
  msgstr ""
822
 
823
- #: widgets/contact/contact.php:265
824
  msgid "Dark"
825
  msgstr ""
826
 
827
- #: widgets/contact/contact.php:274
828
  msgid "Challenge type"
829
  msgstr ""
830
 
831
- #: widgets/contact/contact.php:277, widgets/image-grid/image-grid.php:53, widgets/image-grid/image-grid.php:69, widgets/price-table/price-table.php:70, widgets/simple-masonry/simple-masonry.php:64, widgets/testimonial/testimonial.php:72, widgets/testimonial/testimonial.php:189
832
  msgid "Image"
833
  msgstr ""
834
 
835
- #: widgets/contact/contact.php:278
836
  msgid "Audio"
837
  msgstr ""
838
 
839
- #: widgets/contact/contact.php:287, widgets/contact/contact.php:510, widgets/features/features.php:146, widgets/features/features.php:167, widgets/features/features.php:188, widgets/icon/icon.php:41
840
  msgid "Size"
841
  msgstr ""
842
 
843
- #: widgets/contact/contact.php:291
844
  msgid "Compact"
845
  msgstr ""
846
 
847
- #: widgets/contact/contact.php:303
848
  msgid "Akismet"
849
  msgstr ""
850
 
851
- #: widgets/contact/contact.php:307
852
  msgid "Use Akismet filtering"
853
  msgstr ""
854
 
855
- #: widgets/contact/contact.php:312
856
  msgid "Spam action"
857
  msgstr ""
858
 
859
- #: widgets/contact/contact.php:314
860
  msgid "Show error message"
861
  msgstr ""
862
 
863
- #: widgets/contact/contact.php:315
864
  msgid "Tag as spam in subject"
865
  msgstr ""
866
 
867
- #: widgets/contact/contact.php:317
868
  msgid "How to handle submissions that are identified as spam."
869
  msgstr ""
870
 
871
- #: widgets/contact/contact.php:333
872
  msgid "Container"
873
  msgstr ""
874
 
875
- #: widgets/contact/contact.php:357, widgets/contact/contact.php:590
876
  msgid "Border style"
877
  msgstr ""
878
 
879
- #: widgets/contact/contact.php:361, widgets/contact/contact.php:483, widgets/contact/contact.php:679, widgets/image/image.php:77
880
  msgid "Hidden"
881
  msgstr ""
882
 
883
- #: widgets/contact/contact.php:362, widgets/contact/contact.php:484, widgets/contact/contact.php:595, widgets/contact/contact.php:670, widgets/headline/headline.php:190
884
  msgid "Dotted"
885
  msgstr ""
886
 
887
- #: widgets/contact/contact.php:363, widgets/contact/contact.php:485, widgets/contact/contact.php:596, widgets/contact/contact.php:671, widgets/headline/headline.php:191
888
  msgid "Dashed"
889
  msgstr ""
890
 
891
- #: widgets/contact/contact.php:365, widgets/contact/contact.php:487, widgets/contact/contact.php:673, widgets/headline/headline.php:192
892
  msgid "Double"
893
  msgstr ""
894
 
895
- #: widgets/contact/contact.php:366, widgets/contact/contact.php:488, widgets/contact/contact.php:674, widgets/headline/headline.php:193
896
  msgid "Groove"
897
  msgstr ""
898
 
899
- #: widgets/contact/contact.php:367, widgets/contact/contact.php:489, widgets/contact/contact.php:675, widgets/headline/headline.php:194
900
  msgid "Ridge"
901
  msgstr ""
902
 
903
- #: widgets/contact/contact.php:368, widgets/contact/contact.php:490, widgets/contact/contact.php:676, widgets/headline/headline.php:195
904
  msgid "Inset"
905
  msgstr ""
906
 
907
- #: widgets/contact/contact.php:369, widgets/contact/contact.php:491, widgets/contact/contact.php:677, widgets/headline/headline.php:196
908
  msgid "Outset"
909
  msgstr ""
910
 
911
- #: widgets/contact/contact.php:377
912
  msgid "Field labels"
913
  msgstr ""
914
 
915
- #: widgets/contact/contact.php:391, widgets/contact/contact.php:515, widgets/contact/contact.php:684, widgets/features/features.php:150, widgets/features/features.php:171, widgets/features/features.php:192, widgets/google-map/google-map.php:368, widgets/headline/headline.php:70, widgets/headline/headline.php:141, widgets/headline/headline.php:201, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56
916
  msgid "Color"
917
  msgstr ""
918
 
919
- #: widgets/contact/contact.php:396
920
  msgid "Position"
921
  msgstr ""
922
 
923
- #: widgets/contact/contact.php:399, widgets/image/image.php:78
924
  msgid "Above"
925
  msgstr ""
926
 
927
- #: widgets/contact/contact.php:400, widgets/image/image.php:79
928
  msgid "Below"
929
  msgstr ""
930
 
931
- #: widgets/contact/contact.php:403
932
  msgid "Inside"
933
  msgstr ""
934
 
935
- #: widgets/contact/contact.php:444, widgets/social-media-buttons/social-media-buttons.php:171
936
  msgid "Margin"
937
  msgstr ""
938
 
939
- #: widgets/contact/contact.php:452
940
  msgid "Max width"
941
  msgstr ""
942
 
943
- #: widgets/contact/contact.php:457, widgets/google-map/google-map.php:98, widgets/hero/hero.php:165, widgets/layout-slider/layout-slider.php:133, widgets/slider/slider.php:129, base/inc/fields/image-size.class.php:64
944
  msgid "Height"
945
  msgstr ""
946
 
947
- #: widgets/contact/contact.php:461
948
  msgid "Text area height"
949
  msgstr ""
950
 
951
- #: widgets/contact/contact.php:465, widgets/hero/hero.php:89, widgets/layout-slider/layout-slider.php:61
952
  msgid "Background"
953
  msgstr ""
954
 
955
- #: widgets/contact/contact.php:479
956
  msgid " Border style"
957
  msgstr ""
958
 
959
- #: widgets/contact/contact.php:496, widgets/contact/contact.php:606
960
  msgid "Border rounding"
961
  msgstr ""
962
 
963
- #: widgets/contact/contact.php:506
964
  msgid "Field descriptions"
965
  msgstr ""
966
 
967
- #: widgets/contact/contact.php:520, widgets/contact/contact.php:667, widgets/google-map/google-map.php:321, widgets/headline/headline.php:185
968
  msgid "Style"
969
  msgstr ""
970
 
971
- #: widgets/contact/contact.php:523
972
  msgid "Italic"
973
  msgstr ""
974
 
975
- #: widgets/contact/contact.php:532
976
  msgid "Error messages"
977
  msgstr ""
978
 
979
- #: widgets/contact/contact.php:536
980
  msgid "Error background color"
981
  msgstr ""
982
 
983
- #: widgets/contact/contact.php:541
984
  msgid "Error border color"
985
  msgstr ""
986
 
987
- #: widgets/contact/contact.php:546
988
  msgid "Error text color"
989
  msgstr ""
990
 
991
- #: widgets/contact/contact.php:551
992
  msgid "Error padding"
993
  msgstr ""
994
 
995
- #: widgets/contact/contact.php:556
996
  msgid "Error margin"
997
  msgstr ""
998
 
999
- #: widgets/contact/contact.php:564
1000
  msgid "Submit button"
1001
  msgstr ""
1002
 
1003
- #: widgets/contact/contact.php:568
1004
  msgid "Style submit button"
1005
  msgstr ""
1006
 
1007
- #: widgets/contact/contact.php:569
1008
  msgid "Style the button or leave it with default theme styling."
1009
  msgstr ""
1010
 
1011
- #: widgets/contact/contact.php:580
1012
  msgid "Gradient intensity"
1013
  msgstr ""
1014
 
1015
- #: widgets/contact/contact.php:623
1016
  msgid "Font weight"
1017
  msgstr ""
1018
 
1019
- #: widgets/contact/contact.php:627
1020
  msgid "Semi-bold"
1021
  msgstr ""
1022
 
1023
- #: widgets/contact/contact.php:628
1024
  msgid "Bold"
1025
  msgstr ""
1026
 
1027
- #: widgets/contact/contact.php:652
1028
  msgid "Inset highlight"
1029
  msgstr ""
1030
 
1031
- #: widgets/contact/contact.php:653
1032
  msgid "The white highlight at the bottom of the button"
1033
  msgstr ""
1034
 
1035
- #: widgets/contact/contact.php:663
1036
  msgid "Input focus"
1037
  msgstr ""
1038
 
1039
- #: widgets/contact/contact.php:710
1040
  msgid "Get more form fields for the Contact Form Widget in %s"
1041
  msgstr ""
1042
 
1043
- #: widgets/contact/contact.php:711
1044
  msgid "SiteOrigin Premium"
1045
  msgstr ""
1046
 
1047
- #: widgets/contact/contact.php:738
1048
  msgid "Your Name"
1049
  msgstr ""
1050
 
1051
- #: widgets/contact/contact.php:741
1052
  msgid "Please enter your name"
1053
  msgstr ""
1054
 
1055
- #: widgets/contact/contact.php:746
1056
  msgid "Your Email"
1057
  msgstr ""
1058
 
1059
- #: widgets/contact/contact.php:749
1060
  msgid "Please enter a valid email address"
1061
  msgstr ""
1062
 
1063
- #: widgets/contact/contact.php:757
1064
  msgid "Please enter a subject"
1065
  msgstr ""
1066
 
1067
- #: widgets/contact/contact.php:762
1068
  msgid "Message"
1069
  msgstr ""
1070
 
1071
- #: widgets/contact/contact.php:765
1072
  msgid "Please write something"
1073
  msgstr ""
1074
 
1075
- #: widgets/contact/contact.php:800, widgets/features/features.php:320, widgets/social-media-buttons/social-media-buttons.php:33, base/inc/widgets/base-slider.class.php:180
1076
  msgid "Responsive Breakpoint"
1077
  msgstr ""
1078
 
1079
- #: widgets/contact/contact.php:802
1080
  msgid "This setting controls when the field max width will be disabled. The default value is 780px"
1081
  msgstr ""
1082
 
1083
- #: widgets/contact/contact.php:1083
1084
  msgid "Invalid email address."
1085
  msgstr ""
1086
 
1087
- #: widgets/contact/contact.php:1108
1088
  msgid "Invalid phone number. It should contain at least three digits."
1089
  msgstr ""
1090
 
1091
- #: widgets/contact/contact.php:1177
 
 
 
 
1092
  msgid "Error sending email, please try again later."
1093
  msgstr ""
1094
 
1095
- #: widgets/contact/contact.php:1203
1096
  msgid "A valid email is required"
1097
  msgstr ""
1098
 
1099
- #: widgets/contact/contact.php:1205
1100
  msgid "The email address is invalid"
1101
  msgstr ""
1102
 
1103
- #: widgets/contact/contact.php:1209
1104
  msgid "Missing subject"
1105
  msgstr ""
1106
 
1107
- #: widgets/contact/contact.php:1243
1108
  msgid "Error validating your Captcha response."
1109
  msgstr ""
1110
 
1111
- #: widgets/contact/contact.php:1275
1112
  msgid "Unfortunately our system identified your message as spam."
1113
  msgstr ""
1114
 
1115
- #: widgets/contact/contact.php:1283
1116
  msgctxt "The name of who sent this email"
1117
  msgid "From"
1118
  msgstr ""
@@ -1844,7 +1852,7 @@ msgstr ""
1844
  msgid "Hero frames"
1845
  msgstr ""
1846
 
1847
- #: widgets/hero/hero.php:51, widgets/layout-slider/layout-slider.php:37, widgets/slider/slider.php:35
1848
  msgid "Frame"
1849
  msgstr ""
1850
 
@@ -1856,7 +1864,7 @@ msgstr ""
1856
  msgid "Add [buttons] shortcode to the content to insert these buttons."
1857
  msgstr ""
1858
 
1859
- #: widgets/hero/hero.php:93, widgets/layout-slider/layout-slider.php:65, widgets/slider/slider.php:68
1860
  msgid "Background image"
1861
  msgstr ""
1862
 
@@ -1864,7 +1872,7 @@ msgstr ""
1864
  msgid "Image size"
1865
  msgstr ""
1866
 
1867
- #: widgets/hero/hero.php:105, widgets/layout-slider/layout-slider.php:72, widgets/slider/slider.php:79
1868
  msgid "Background image type"
1869
  msgstr ""
1870
 
@@ -1872,59 +1880,59 @@ msgstr ""
1872
  msgid "Cover"
1873
  msgstr ""
1874
 
1875
- #: widgets/hero/hero.php:113, widgets/layout-slider/layout-slider.php:81
1876
  msgid "Background image opacity"
1877
  msgstr ""
1878
 
1879
- #: widgets/hero/hero.php:133, widgets/layout-slider/layout-slider.php:101
1880
  msgid "Open URL in a new window"
1881
  msgstr ""
1882
 
1883
- #: widgets/hero/hero.php:138, widgets/layout-slider/layout-slider.php:106, widgets/slider/slider.php:55
1884
  msgid "Video"
1885
  msgstr ""
1886
 
1887
- #: widgets/hero/hero.php:139, widgets/layout-slider/layout-slider.php:107, widgets/slider/slider.php:56
1888
  msgid "Background videos"
1889
  msgstr ""
1890
 
1891
- #: widgets/hero/hero.php:154, widgets/layout-slider/layout-slider.php:122
1892
  msgid "Slider Controls"
1893
  msgstr ""
1894
 
1895
- #: widgets/hero/hero.php:160, widgets/layout-slider/layout-slider.php:128
1896
  msgid "Design and Layout"
1897
  msgstr ""
1898
 
1899
- #: widgets/hero/hero.php:171, widgets/layout-slider/layout-slider.php:138, widgets/slider/slider.php:135
1900
  msgid "Responsive Height"
1901
  msgstr ""
1902
 
1903
- #: widgets/hero/hero.php:177, widgets/layout-slider/layout-slider.php:143
1904
  msgid "Vertically center align slide contents"
1905
  msgstr ""
1906
 
1907
- #: widgets/hero/hero.php:178, widgets/layout-slider/layout-slider.php:144
1908
  msgid "For perfect centering, consider setting the Extra top padding setting to 0 when enabling this setting."
1909
  msgstr ""
1910
 
1911
- #: widgets/hero/hero.php:183, widgets/layout-slider/layout-slider.php:149
1912
  msgid "Top and bottom padding"
1913
  msgstr ""
1914
 
1915
- #: widgets/hero/hero.php:189, widgets/layout-slider/layout-slider.php:155
1916
  msgid "Extra top padding"
1917
  msgstr ""
1918
 
1919
- #: widgets/hero/hero.php:190, widgets/layout-slider/layout-slider.php:156
1920
  msgid "Additional padding added to the top of the slider"
1921
  msgstr ""
1922
 
1923
- #: widgets/hero/hero.php:196, widgets/layout-slider/layout-slider.php:162
1924
  msgid "Side padding"
1925
  msgstr ""
1926
 
1927
- #: widgets/hero/hero.php:202, widgets/layout-slider/layout-slider.php:168
1928
  msgid "Maximum container width"
1929
  msgstr ""
1930
 
@@ -1932,7 +1940,7 @@ msgstr ""
1932
  msgid "Heading font"
1933
  msgstr ""
1934
 
1935
- #: widgets/hero/hero.php:214, widgets/layout-slider/layout-slider.php:174
1936
  msgid "Heading color"
1937
  msgstr ""
1938
 
@@ -1948,11 +1956,11 @@ msgstr ""
1948
  msgid "FitText compressor strength"
1949
  msgstr ""
1950
 
1951
- #: widgets/hero/hero.php:253, widgets/layout-slider/layout-slider.php:188
1952
  msgid "Heading shadow intensity"
1953
  msgstr ""
1954
 
1955
- #: widgets/hero/hero.php:266, widgets/layout-slider/layout-slider.php:198
1956
  msgid "Text size"
1957
  msgstr ""
1958
 
@@ -2084,23 +2092,35 @@ msgstr ""
2084
  msgid "SiteOrigin Layout Slider"
2085
  msgstr ""
2086
 
2087
- #: widgets/layout-slider/layout-slider.php:36, widgets/slider/slider.php:34
2088
  msgid "Slider frames"
2089
  msgstr ""
2090
 
2091
- #: widgets/layout-slider/layout-slider.php:75, widgets/slider/slider.php:82
2092
  msgid "Tile"
2093
  msgstr ""
2094
 
2095
- #: widgets/layout-slider/layout-slider.php:223
2096
  msgid "This widget requires: "
2097
  msgstr ""
2098
 
2099
- #: widgets/layout-slider/layout-slider.php:224, base/inc/fields/builder.class.php:43
2100
  msgid "SiteOrigin Page Builder"
2101
  msgstr ""
2102
 
2103
- #: widgets/layout-slider/layout-slider.php:289
 
 
 
 
 
 
 
 
 
 
 
 
2104
  msgid "This widget requires Page Builder."
2105
  msgstr ""
2106
 
@@ -2416,7 +2436,7 @@ msgstr ""
2416
  msgid "Controls"
2417
  msgstr ""
2418
 
2419
- #: widgets/slider/slider.php:330
2420
  msgid "Add a Lightbox to your image slides with %sSiteOrigin Premium%s"
2421
  msgstr ""
2422
 
@@ -2660,7 +2680,7 @@ msgstr ""
2660
  msgid "Select cover image"
2661
  msgstr ""
2662
 
2663
- #: widgets/video/video.php:85, base/inc/widgets/base-slider.class.php:152
2664
  msgid "Video URL"
2665
  msgstr ""
2666
 
@@ -2668,7 +2688,7 @@ msgstr ""
2668
  msgid "Video Playback"
2669
  msgstr ""
2670
 
2671
- #: widgets/video/video.php:101, base/inc/widgets/base-slider.class.php:54, base/inc/widgets/base-slider.class.php:159
2672
  msgid "Autoplay"
2673
  msgstr ""
2674
 
@@ -2677,18 +2697,26 @@ msgid "Loop"
2677
  msgstr ""
2678
 
2679
  #: widgets/video/video.php:115
2680
- msgid "Use oEmbed"
2681
  msgstr ""
2682
 
2683
  #: widgets/video/video.php:116
 
 
 
 
 
 
 
 
2684
  msgid "Always use the embedded video rather than the MediaElement player."
2685
  msgstr ""
2686
 
2687
- #: widgets/video/video.php:125
2688
  msgid "Show related videos."
2689
  msgstr ""
2690
 
2691
- #: widgets/video/video.php:126
2692
  msgid "If the external host supports it."
2693
  msgstr ""
2694
 
@@ -2761,7 +2789,7 @@ msgstr ""
2761
  msgid "Choose Icon"
2762
  msgstr ""
2763
 
2764
- #: base/inc/fields/icon.class.php:41, base/inc/fields/media.class.php:111
2765
  msgid "Remove"
2766
  msgstr ""
2767
 
@@ -2789,7 +2817,7 @@ msgstr ""
2789
  msgid "Choose Media"
2790
  msgstr ""
2791
 
2792
- #: base/inc/fields/media.class.php:61
2793
  msgid "Set Media"
2794
  msgstr ""
2795
 
@@ -2797,7 +2825,7 @@ msgstr ""
2797
  msgid "Image Search"
2798
  msgstr ""
2799
 
2800
- #: base/inc/fields/media.class.php:69
2801
  msgid "You need to <a href=\"%s\">upgrade</a> to WordPress 3.5 to use media fields"
2802
  msgstr ""
2803
 
@@ -2837,6 +2865,10 @@ msgstr ""
2837
  msgid "Sponsored"
2838
  msgstr ""
2839
 
 
 
 
 
2840
  #: base/inc/fields/posts.class.php:36
2841
  msgid "Post type"
2842
  msgstr ""
@@ -3050,54 +3082,58 @@ msgid "Navigation size"
3050
  msgstr ""
3051
 
3052
  #: base/inc/widgets/base-slider.class.php:123
3053
- msgid "Always show navigation on mobile"
3054
  msgstr ""
3055
 
3056
  #: base/inc/widgets/base-slider.class.php:128
 
 
 
 
3057
  msgid "Swipe control"
3058
  msgstr ""
3059
 
3060
- #: base/inc/widgets/base-slider.class.php:129
3061
  msgid "Allow users to swipe through frames on mobile devices."
3062
  msgstr ""
3063
 
3064
- #: base/inc/widgets/base-slider.class.php:135
3065
  msgid "Show slide background videos on mobile"
3066
  msgstr ""
3067
 
3068
- #: base/inc/widgets/base-slider.class.php:136
3069
  msgid "Allow slide background videos to appear on mobile devices that support autoplay."
3070
  msgstr ""
3071
 
3072
- #: base/inc/widgets/base-slider.class.php:146
3073
  msgid "Video file"
3074
  msgstr ""
3075
 
3076
- #: base/inc/widgets/base-slider.class.php:154
3077
  msgid "An external URL of the video. Overrides video file."
3078
  msgstr ""
3079
 
3080
- #: base/inc/widgets/base-slider.class.php:161
3081
  msgid "Currently only for YouTube videos."
3082
  msgstr ""
3083
 
3084
- #: base/inc/widgets/base-slider.class.php:166
3085
  msgid "Video format"
3086
  msgstr ""
3087
 
3088
- #: base/inc/widgets/base-slider.class.php:182
3089
  msgid "This setting controls when the Slider will switch to the responsive mode. This breakpoint will only be used if always show navigation on mobile is enabled. The default value is 780px."
3090
  msgstr ""
3091
 
3092
- #: base/inc/widgets/base-slider.class.php:229
3093
  msgid "display slide %s"
3094
  msgstr ""
3095
 
3096
- #: base/inc/widgets/base-slider.class.php:234
3097
  msgid "next slide"
3098
  msgstr ""
3099
 
3100
- #: base/inc/widgets/base-slider.class.php:240
3101
  msgid "previous slide"
3102
  msgstr ""
3103
 
@@ -3258,98 +3294,102 @@ msgid "Hacker News"
3258
  msgstr ""
3259
 
3260
  #: widgets/social-media-buttons/data/networks.php:200
3261
- msgid "JSFiddle"
3262
  msgstr ""
3263
 
3264
  #: widgets/social-media-buttons/data/networks.php:206
3265
- msgid "Last.fm"
3266
  msgstr ""
3267
 
3268
  #: widgets/social-media-buttons/data/networks.php:212
3269
- msgid "Reddit"
3270
  msgstr ""
3271
 
3272
  #: widgets/social-media-buttons/data/networks.php:218
3273
- msgid "Slack"
3274
  msgstr ""
3275
 
3276
  #: widgets/social-media-buttons/data/networks.php:224
3277
- msgid "Slideshare"
3278
  msgstr ""
3279
 
3280
  #: widgets/social-media-buttons/data/networks.php:230
3281
- msgid "Soundcloud"
3282
  msgstr ""
3283
 
3284
  #: widgets/social-media-buttons/data/networks.php:236
3285
- msgid "Spotify"
3286
  msgstr ""
3287
 
3288
  #: widgets/social-media-buttons/data/networks.php:242
3289
- msgid "Stack Exchange"
3290
  msgstr ""
3291
 
3292
  #: widgets/social-media-buttons/data/networks.php:248
3293
- msgid "Stack Overflow"
3294
  msgstr ""
3295
 
3296
  #: widgets/social-media-buttons/data/networks.php:254
3297
- msgid "Steam"
3298
  msgstr ""
3299
 
3300
  #: widgets/social-media-buttons/data/networks.php:260
3301
- msgid "Strava"
3302
  msgstr ""
3303
 
3304
  #: widgets/social-media-buttons/data/networks.php:266
3305
- msgid "StumbleUpon"
3306
  msgstr ""
3307
 
3308
  #: widgets/social-media-buttons/data/networks.php:272
3309
- msgid "Telegram"
3310
  msgstr ""
3311
 
3312
  #: widgets/social-media-buttons/data/networks.php:278
3313
- msgid "TikTok"
3314
  msgstr ""
3315
 
3316
  #: widgets/social-media-buttons/data/networks.php:284
3317
- msgid "Trello"
3318
  msgstr ""
3319
 
3320
  #: widgets/social-media-buttons/data/networks.php:290
3321
- msgid "TripAdvisor"
3322
  msgstr ""
3323
 
3324
  #: widgets/social-media-buttons/data/networks.php:296
3325
- msgid "Twitch"
3326
  msgstr ""
3327
 
3328
  #: widgets/social-media-buttons/data/networks.php:302
3329
- msgid "Vimeo"
3330
  msgstr ""
3331
 
3332
  #: widgets/social-media-buttons/data/networks.php:308
3333
- msgid "WhatsApp"
3334
  msgstr ""
3335
 
3336
  #: widgets/social-media-buttons/data/networks.php:314
3337
- msgid "WordPress"
3338
  msgstr ""
3339
 
3340
  #: widgets/social-media-buttons/data/networks.php:320
3341
- msgid "Xing"
3342
  msgstr ""
3343
 
3344
  #: widgets/social-media-buttons/data/networks.php:326
3345
- msgid "Yahoo"
3346
  msgstr ""
3347
 
3348
  #: widgets/social-media-buttons/data/networks.php:332
3349
- msgid "Yelp"
3350
  msgstr ""
3351
 
3352
  #: widgets/social-media-buttons/data/networks.php:338
 
 
 
 
3353
  msgid "YouTube"
3354
  msgstr ""
3355
 
240
  msgid "Current Color"
241
  msgstr ""
242
 
243
+ #: compat/block-editor/widget-block.php:81
244
  msgid "%s by %s"
245
  msgstr ""
246
 
247
+ #: compat/block-editor/widget-block.php:101, compat/visual-composer/visual-composer.php:77
248
  msgid "Selecting a different widget will revert any changes. Continue?"
249
  msgstr ""
250
 
251
+ #: compat/block-editor/widget-block.php:117
252
  msgid "You need to select a widget type before you'll see anything here. :)"
253
  msgstr ""
254
 
255
+ #: compat/block-editor/widget-block.php:178
256
  msgid "Invalid widget class %s. Please make sure the widget has been activated in %sSiteOrigin Widgets%s."
257
  msgstr ""
258
 
268
  msgid "Regular"
269
  msgstr ""
270
 
271
+ #: icons/fontawesome/filter.php:1472, widgets/contact/contact.php:365, widgets/contact/contact.php:487, widgets/contact/contact.php:595, widgets/contact/contact.php:673, widgets/headline/headline.php:189
272
  msgid "Solid"
273
  msgstr ""
274
 
300
  msgid "Panels"
301
  msgstr ""
302
 
303
+ #: widgets/accordion/accordion.php:88, widgets/hero/hero.php:62, widgets/layout-slider/layout-slider.php:58, widgets/tabs/tabs.php:88
304
  msgid "Content"
305
  msgstr ""
306
 
324
  msgid "Closed"
325
  msgstr ""
326
 
327
+ #: widgets/accordion/accordion.php:110, widgets/contact/contact.php:328, widgets/cta/cta.php:74, widgets/post-carousel/post-carousel.php:207, widgets/slider/slider.php:121, widgets/tabs/tabs.php:100, widgets/testimonial/testimonial.php:184
328
  msgid "Design"
329
  msgstr ""
330
 
332
  msgid "Headings"
333
  msgstr ""
334
 
335
+ #: widgets/accordion/accordion.php:120, widgets/accordion/accordion.php:158, widgets/contact/contact.php:338, widgets/contact/contact.php:576, widgets/cta/cta.php:78, widgets/hero/hero.php:122, widgets/layout-slider/layout-slider.php:92, widgets/social-media-buttons/social-media-buttons.php:86, widgets/tabs/tabs.php:110, widgets/tabs/tabs.php:130, widgets/tabs/tabs.php:174
336
  msgid "Background color"
337
  msgstr ""
338
 
348
  msgid "Title hover color"
349
  msgstr ""
350
 
351
+ #: widgets/accordion/accordion.php:139, widgets/accordion/accordion.php:167, widgets/contact/contact.php:348, widgets/contact/contact.php:470, widgets/contact/contact.php:586, widgets/cta/cta.php:82, widgets/tabs/tabs.php:115, widgets/tabs/tabs.php:149, widgets/tabs/tabs.php:183
352
  msgid "Border color"
353
  msgstr ""
354
 
356
  msgid "Border hover color"
357
  msgstr ""
358
 
359
+ #: widgets/accordion/accordion.php:147, widgets/accordion/accordion.php:171, widgets/contact/contact.php:353, widgets/contact/contact.php:475, widgets/contact/contact.php:602, widgets/tabs/tabs.php:119, widgets/tabs/tabs.php:159, widgets/tabs/tabs.php:187
360
  msgid "Border width"
361
  msgstr ""
362
 
384
  msgid "Button text"
385
  msgstr ""
386
 
387
+ #: widgets/button/button.php:51, widgets/google-map/google-map.php:103, widgets/headline/headline.php:47, widgets/headline/headline.php:118, widgets/hero/hero.php:128, widgets/icon/icon.php:57, widgets/image/image.php:90, widgets/layout-slider/layout-slider.php:98, widgets/simple-masonry/simple-masonry.php:89, widgets/slider/slider.php:103
388
  msgid "Destination URL"
389
  msgstr ""
390
 
424
  msgid "Top"
425
  msgstr ""
426
 
427
+ #: widgets/button/button.php:94, widgets/button/button.php:120, widgets/contact/contact.php:403, widgets/contact/contact.php:418, widgets/contact/contact.php:647, widgets/cta/cta.php:103, widgets/features/features.php:67, widgets/headline/headline.php:92, widgets/headline/headline.php:163, widgets/headline/headline.php:218, widgets/icon/icon.php:50, widgets/image/image.php:50, widgets/image/image.php:62, widgets/simple-masonry/simple-masonry.php:216, widgets/social-media-buttons/social-media-buttons.php:153, widgets/social-media-buttons/social-media-buttons.php:164, widgets/testimonial/testimonial.php:256
428
  msgid "Right"
429
  msgstr ""
430
 
432
  msgid "Bottom"
433
  msgstr ""
434
 
435
+ #: widgets/button/button.php:96, widgets/button/button.php:119, widgets/contact/contact.php:402, widgets/contact/contact.php:417, widgets/contact/contact.php:646, widgets/cta/cta.php:102, widgets/features/features.php:69, widgets/headline/headline.php:91, widgets/headline/headline.php:162, widgets/headline/headline.php:217, widgets/icon/icon.php:49, widgets/image/image.php:49, widgets/image/image.php:61, widgets/simple-masonry/simple-masonry.php:215, widgets/social-media-buttons/social-media-buttons.php:152, widgets/social-media-buttons/social-media-buttons.php:163, widgets/testimonial/testimonial.php:255
436
  msgid "Left"
437
  msgstr ""
438
 
440
  msgid "Design and layout"
441
  msgstr ""
442
 
443
+ #: widgets/button/button.php:110, widgets/contact/contact.php:409, widgets/contact/contact.php:639, widgets/contact/contact.php:690, widgets/google-map/google-map.php:94, base/inc/fields/image-size.class.php:57
444
  msgid "Width"
445
  msgstr ""
446
 
448
  msgid "Leave blank to let the button resize according to content."
449
  msgstr ""
450
 
451
+ #: widgets/button/button.php:116, widgets/contact/contact.php:414, widgets/contact/contact.php:643, widgets/social-media-buttons/social-media-buttons.php:149
452
  msgid "Align"
453
  msgstr ""
454
 
455
+ #: widgets/button/button.php:121, widgets/contact/contact.php:419, widgets/contact/contact.php:648, widgets/headline/headline.php:90, widgets/headline/headline.php:161, widgets/headline/headline.php:216, widgets/icon/icon.php:48, widgets/image/image.php:51, widgets/image/image.php:63, widgets/social-media-buttons/social-media-buttons.php:154, widgets/social-media-buttons/social-media-buttons.php:165
456
  msgid "Center"
457
  msgstr ""
458
 
459
+ #: widgets/button/button.php:122, widgets/contact/contact.php:420, widgets/headline/headline.php:93, widgets/headline/headline.php:164, widgets/social-media-buttons/social-media-buttons.php:155, widgets/social-media-buttons/social-media-buttons.php:166
460
  msgid "Justify"
461
  msgstr ""
462
 
480
  msgid "Button color"
481
  msgstr ""
482
 
483
+ #: widgets/button/button.php:145, widgets/contact/contact.php:441, widgets/contact/contact.php:614, widgets/hero/hero.php:261, widgets/layout-slider/layout-slider.php:208, widgets/testimonial/testimonial.php:227
484
  msgid "Text color"
485
  msgstr ""
486
 
496
  msgid "Hover text color"
497
  msgstr ""
498
 
499
+ #: widgets/button/button.php:182, widgets/contact/contact.php:382, widgets/contact/contact.php:432, widgets/features/features.php:141, widgets/features/features.php:162, widgets/features/features.php:183, widgets/headline/headline.php:78, widgets/headline/headline.php:149
500
  msgid "Font"
501
  msgstr ""
502
 
503
+ #: widgets/button/button.php:188, widgets/contact/contact.php:387, widgets/contact/contact.php:437, widgets/contact/contact.php:619
504
  msgid "Font size"
505
  msgstr ""
506
 
507
+ #: widgets/button/button.php:190, widgets/contact/contact.php:291, widgets/contact/contact.php:525, widgets/contact/contact.php:627, widgets/social-media-buttons/social-media-buttons.php:119
508
  msgid "Normal"
509
  msgstr ""
510
 
524
  msgid "Rounding"
525
  msgstr ""
526
 
527
+ #: widgets/button/button.php:202, widgets/contact/contact.php:361, widgets/contact/contact.php:483, widgets/contact/contact.php:594, widgets/contact/contact.php:679, widgets/google-map/google-map.php:158, widgets/headline/headline.php:188, widgets/social-media-buttons/social-media-buttons.php:130
528
  msgid "None"
529
  msgstr ""
530
 
540
  msgid "Completely rounded"
541
  msgstr ""
542
 
543
+ #: widgets/button/button.php:211, widgets/contact/contact.php:343, widgets/contact/contact.php:449, widgets/contact/contact.php:634, widgets/social-media-buttons/social-media-buttons.php:138, widgets/testimonial/testimonial.php:235
544
  msgid "Padding"
545
  msgstr ""
546
 
692
  msgid "List in contact emails, the IP address of the form sender."
693
  msgstr ""
694
 
695
+ #: widgets/contact/contact.php:137, widgets/contact/contact.php:428
696
  msgid "Fields"
697
  msgstr ""
698
 
720
  msgid "Phone Number"
721
  msgstr ""
722
 
723
+ #: widgets/contact/contact.php:152
724
+ msgid "Number"
725
+ msgstr ""
726
+
727
+ #: widgets/contact/contact.php:153, widgets/contact/contact.php:755
728
  msgid "Subject"
729
  msgstr ""
730
 
731
+ #: widgets/contact/contact.php:154, widgets/features/features.php:114, widgets/features/features.php:157, widgets/headline/headline.php:43, widgets/headline/headline.php:114, widgets/price-table/price-table.php:111, widgets/taxonomy/taxonomy.php:51, widgets/testimonial/testimonial.php:83
732
  msgid "Text"
733
  msgstr ""
734
 
735
+ #: widgets/contact/contact.php:155
736
  msgid "Text Area"
737
  msgstr ""
738
 
739
+ #: widgets/contact/contact.php:156
740
  msgid "Dropdown Select"
741
  msgstr ""
742
 
743
+ #: widgets/contact/contact.php:157
744
  msgid "Checkboxes"
745
  msgstr ""
746
 
747
+ #: widgets/contact/contact.php:158
748
  msgid "Radio"
749
  msgstr ""
750
 
751
+ #: widgets/contact/contact.php:168, widgets/taxonomy/taxonomy.php:43
752
  msgid "Label"
753
  msgstr ""
754
 
755
+ #: widgets/contact/contact.php:173
756
  msgid "Description"
757
  msgstr ""
758
 
759
+ #: widgets/contact/contact.php:174
760
  msgid "This text will appear small beneath the input field."
761
  msgstr ""
762
 
763
+ #: widgets/contact/contact.php:179
764
  msgid "Required Field"
765
  msgstr ""
766
 
767
+ #: widgets/contact/contact.php:183, widgets/contact/contact.php:190, widgets/contact/contact.php:1072
768
  msgid "Required field"
769
  msgstr ""
770
 
771
+ #: widgets/contact/contact.php:184
772
  msgid "Is this field required?"
773
  msgstr ""
774
 
775
+ #: widgets/contact/contact.php:188
776
  msgid "Missing message"
777
  msgstr ""
778
 
779
+ #: widgets/contact/contact.php:189
780
  msgid "Error message to display if this field is missing."
781
  msgstr ""
782
 
783
+ #: widgets/contact/contact.php:198
784
  msgid "Options"
785
  msgstr ""
786
 
787
+ #: widgets/contact/contact.php:199
788
  msgid "Option"
789
  msgstr ""
790
 
791
+ #: widgets/contact/contact.php:204
792
  msgid "Value"
793
  msgstr ""
794
 
795
+ #: widgets/contact/contact.php:219
796
  msgid "Spam Protection"
797
  msgstr ""
798
 
799
+ #: widgets/contact/contact.php:225
800
  msgid "reCAPTCHA v2"
801
  msgstr ""
802
 
803
+ #: widgets/contact/contact.php:229
804
  msgid "Use reCAPTCHA v2"
805
  msgstr ""
806
 
807
+ #: widgets/contact/contact.php:232
808
  msgid "Please make sure you register a new reCAPTCHA v2 key %shere%s."
809
  msgstr ""
810
 
811
+ #: widgets/contact/contact.php:246
812
  msgid "reCAPTCHA v2 Site Key"
813
  msgstr ""
814
 
815
+ #: widgets/contact/contact.php:254
816
  msgid "reCAPTCHA v2 Secret Key"
817
  msgstr ""
818
 
819
+ #: widgets/contact/contact.php:262
820
  msgid "Theme"
821
  msgstr ""
822
 
823
+ #: widgets/contact/contact.php:265
824
  msgid "Light"
825
  msgstr ""
826
 
827
+ #: widgets/contact/contact.php:266
828
  msgid "Dark"
829
  msgstr ""
830
 
831
+ #: widgets/contact/contact.php:275
832
  msgid "Challenge type"
833
  msgstr ""
834
 
835
+ #: widgets/contact/contact.php:278, widgets/image-grid/image-grid.php:53, widgets/image-grid/image-grid.php:69, widgets/price-table/price-table.php:70, widgets/simple-masonry/simple-masonry.php:64, widgets/testimonial/testimonial.php:72, widgets/testimonial/testimonial.php:189
836
  msgid "Image"
837
  msgstr ""
838
 
839
+ #: widgets/contact/contact.php:279
840
  msgid "Audio"
841
  msgstr ""
842
 
843
+ #: widgets/contact/contact.php:288, widgets/contact/contact.php:511, widgets/features/features.php:146, widgets/features/features.php:167, widgets/features/features.php:188, widgets/icon/icon.php:41
844
  msgid "Size"
845
  msgstr ""
846
 
847
+ #: widgets/contact/contact.php:292
848
  msgid "Compact"
849
  msgstr ""
850
 
851
+ #: widgets/contact/contact.php:304
852
  msgid "Akismet"
853
  msgstr ""
854
 
855
+ #: widgets/contact/contact.php:308
856
  msgid "Use Akismet filtering"
857
  msgstr ""
858
 
859
+ #: widgets/contact/contact.php:313
860
  msgid "Spam action"
861
  msgstr ""
862
 
863
+ #: widgets/contact/contact.php:315
864
  msgid "Show error message"
865
  msgstr ""
866
 
867
+ #: widgets/contact/contact.php:316
868
  msgid "Tag as spam in subject"
869
  msgstr ""
870
 
871
+ #: widgets/contact/contact.php:318
872
  msgid "How to handle submissions that are identified as spam."
873
  msgstr ""
874
 
875
+ #: widgets/contact/contact.php:334
876
  msgid "Container"
877
  msgstr ""
878
 
879
+ #: widgets/contact/contact.php:358, widgets/contact/contact.php:591
880
  msgid "Border style"
881
  msgstr ""
882
 
883
+ #: widgets/contact/contact.php:362, widgets/contact/contact.php:484, widgets/contact/contact.php:680, widgets/image/image.php:77
884
  msgid "Hidden"
885
  msgstr ""
886
 
887
+ #: widgets/contact/contact.php:363, widgets/contact/contact.php:485, widgets/contact/contact.php:596, widgets/contact/contact.php:671, widgets/headline/headline.php:190
888
  msgid "Dotted"
889
  msgstr ""
890
 
891
+ #: widgets/contact/contact.php:364, widgets/contact/contact.php:486, widgets/contact/contact.php:597, widgets/contact/contact.php:672, widgets/headline/headline.php:191
892
  msgid "Dashed"
893
  msgstr ""
894
 
895
+ #: widgets/contact/contact.php:366, widgets/contact/contact.php:488, widgets/contact/contact.php:674, widgets/headline/headline.php:192
896
  msgid "Double"
897
  msgstr ""
898
 
899
+ #: widgets/contact/contact.php:367, widgets/contact/contact.php:489, widgets/contact/contact.php:675, widgets/headline/headline.php:193
900
  msgid "Groove"
901
  msgstr ""
902
 
903
+ #: widgets/contact/contact.php:368, widgets/contact/contact.php:490, widgets/contact/contact.php:676, widgets/headline/headline.php:194
904
  msgid "Ridge"
905
  msgstr ""
906
 
907
+ #: widgets/contact/contact.php:369, widgets/contact/contact.php:491, widgets/contact/contact.php:677, widgets/headline/headline.php:195
908
  msgid "Inset"
909
  msgstr ""
910
 
911
+ #: widgets/contact/contact.php:370, widgets/contact/contact.php:492, widgets/contact/contact.php:678, widgets/headline/headline.php:196
912
  msgid "Outset"
913
  msgstr ""
914
 
915
+ #: widgets/contact/contact.php:378
916
  msgid "Field labels"
917
  msgstr ""
918
 
919
+ #: widgets/contact/contact.php:392, widgets/contact/contact.php:516, widgets/contact/contact.php:685, widgets/features/features.php:150, widgets/features/features.php:171, widgets/features/features.php:192, widgets/google-map/google-map.php:368, widgets/headline/headline.php:70, widgets/headline/headline.php:141, widgets/headline/headline.php:201, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56
920
  msgid "Color"
921
  msgstr ""
922
 
923
+ #: widgets/contact/contact.php:397
924
  msgid "Position"
925
  msgstr ""
926
 
927
+ #: widgets/contact/contact.php:400, widgets/image/image.php:78
928
  msgid "Above"
929
  msgstr ""
930
 
931
+ #: widgets/contact/contact.php:401, widgets/image/image.php:79
932
  msgid "Below"
933
  msgstr ""
934
 
935
+ #: widgets/contact/contact.php:404
936
  msgid "Inside"
937
  msgstr ""
938
 
939
+ #: widgets/contact/contact.php:445, widgets/social-media-buttons/social-media-buttons.php:171
940
  msgid "Margin"
941
  msgstr ""
942
 
943
+ #: widgets/contact/contact.php:453
944
  msgid "Max width"
945
  msgstr ""
946
 
947
+ #: widgets/contact/contact.php:458, widgets/google-map/google-map.php:98, widgets/hero/hero.php:165, widgets/layout-slider/layout-slider.php:135, widgets/slider/slider.php:129, base/inc/fields/image-size.class.php:64
948
  msgid "Height"
949
  msgstr ""
950
 
951
+ #: widgets/contact/contact.php:462
952
  msgid "Text area height"
953
  msgstr ""
954
 
955
+ #: widgets/contact/contact.php:466, widgets/hero/hero.php:89, widgets/layout-slider/layout-slider.php:63
956
  msgid "Background"
957
  msgstr ""
958
 
959
+ #: widgets/contact/contact.php:480
960
  msgid " Border style"
961
  msgstr ""
962
 
963
+ #: widgets/contact/contact.php:497, widgets/contact/contact.php:607
964
  msgid "Border rounding"
965
  msgstr ""
966
 
967
+ #: widgets/contact/contact.php:507
968
  msgid "Field descriptions"
969
  msgstr ""
970
 
971
+ #: widgets/contact/contact.php:521, widgets/contact/contact.php:668, widgets/google-map/google-map.php:321, widgets/headline/headline.php:185
972
  msgid "Style"
973
  msgstr ""
974
 
975
+ #: widgets/contact/contact.php:524
976
  msgid "Italic"
977
  msgstr ""
978
 
979
+ #: widgets/contact/contact.php:533
980
  msgid "Error messages"
981
  msgstr ""
982
 
983
+ #: widgets/contact/contact.php:537
984
  msgid "Error background color"
985
  msgstr ""
986
 
987
+ #: widgets/contact/contact.php:542
988
  msgid "Error border color"
989
  msgstr ""
990
 
991
+ #: widgets/contact/contact.php:547
992
  msgid "Error text color"
993
  msgstr ""
994
 
995
+ #: widgets/contact/contact.php:552
996
  msgid "Error padding"
997
  msgstr ""
998
 
999
+ #: widgets/contact/contact.php:557
1000
  msgid "Error margin"
1001
  msgstr ""
1002
 
1003
+ #: widgets/contact/contact.php:565
1004
  msgid "Submit button"
1005
  msgstr ""
1006
 
1007
+ #: widgets/contact/contact.php:569
1008
  msgid "Style submit button"
1009
  msgstr ""
1010
 
1011
+ #: widgets/contact/contact.php:570
1012
  msgid "Style the button or leave it with default theme styling."
1013
  msgstr ""
1014
 
1015
+ #: widgets/contact/contact.php:581
1016
  msgid "Gradient intensity"
1017
  msgstr ""
1018
 
1019
+ #: widgets/contact/contact.php:624
1020
  msgid "Font weight"
1021
  msgstr ""
1022
 
1023
+ #: widgets/contact/contact.php:628
1024
  msgid "Semi-bold"
1025
  msgstr ""
1026
 
1027
+ #: widgets/contact/contact.php:629
1028
  msgid "Bold"
1029
  msgstr ""
1030
 
1031
+ #: widgets/contact/contact.php:653
1032
  msgid "Inset highlight"
1033
  msgstr ""
1034
 
1035
+ #: widgets/contact/contact.php:654
1036
  msgid "The white highlight at the bottom of the button"
1037
  msgstr ""
1038
 
1039
+ #: widgets/contact/contact.php:664
1040
  msgid "Input focus"
1041
  msgstr ""
1042
 
1043
+ #: widgets/contact/contact.php:711
1044
  msgid "Get more form fields for the Contact Form Widget in %s"
1045
  msgstr ""
1046
 
1047
+ #: widgets/contact/contact.php:712
1048
  msgid "SiteOrigin Premium"
1049
  msgstr ""
1050
 
1051
+ #: widgets/contact/contact.php:739
1052
  msgid "Your Name"
1053
  msgstr ""
1054
 
1055
+ #: widgets/contact/contact.php:742
1056
  msgid "Please enter your name"
1057
  msgstr ""
1058
 
1059
+ #: widgets/contact/contact.php:747
1060
  msgid "Your Email"
1061
  msgstr ""
1062
 
1063
+ #: widgets/contact/contact.php:750
1064
  msgid "Please enter a valid email address"
1065
  msgstr ""
1066
 
1067
+ #: widgets/contact/contact.php:758
1068
  msgid "Please enter a subject"
1069
  msgstr ""
1070
 
1071
+ #: widgets/contact/contact.php:763
1072
  msgid "Message"
1073
  msgstr ""
1074
 
1075
+ #: widgets/contact/contact.php:766
1076
  msgid "Please write something"
1077
  msgstr ""
1078
 
1079
+ #: widgets/contact/contact.php:801, widgets/features/features.php:320, widgets/social-media-buttons/social-media-buttons.php:33, base/inc/widgets/base-slider.class.php:185
1080
  msgid "Responsive Breakpoint"
1081
  msgstr ""
1082
 
1083
+ #: widgets/contact/contact.php:803
1084
  msgid "This setting controls when the field max width will be disabled. The default value is 780px"
1085
  msgstr ""
1086
 
1087
+ #: widgets/contact/contact.php:1084
1088
  msgid "Invalid email address."
1089
  msgstr ""
1090
 
1091
+ #: widgets/contact/contact.php:1109
1092
  msgid "Invalid phone number. It should contain at least three digits."
1093
  msgstr ""
1094
 
1095
+ #: widgets/contact/contact.php:1120
1096
+ msgid "Invalid number."
1097
+ msgstr ""
1098
+
1099
+ #: widgets/contact/contact.php:1186
1100
  msgid "Error sending email, please try again later."
1101
  msgstr ""
1102
 
1103
+ #: widgets/contact/contact.php:1212
1104
  msgid "A valid email is required"
1105
  msgstr ""
1106
 
1107
+ #: widgets/contact/contact.php:1214
1108
  msgid "The email address is invalid"
1109
  msgstr ""
1110
 
1111
+ #: widgets/contact/contact.php:1218
1112
  msgid "Missing subject"
1113
  msgstr ""
1114
 
1115
+ #: widgets/contact/contact.php:1252
1116
  msgid "Error validating your Captcha response."
1117
  msgstr ""
1118
 
1119
+ #: widgets/contact/contact.php:1284
1120
  msgid "Unfortunately our system identified your message as spam."
1121
  msgstr ""
1122
 
1123
+ #: widgets/contact/contact.php:1292
1124
  msgctxt "The name of who sent this email"
1125
  msgid "From"
1126
  msgstr ""
1852
  msgid "Hero frames"
1853
  msgstr ""
1854
 
1855
+ #: widgets/hero/hero.php:51, widgets/layout-slider/layout-slider.php:39, widgets/slider/slider.php:35
1856
  msgid "Frame"
1857
  msgstr ""
1858
 
1864
  msgid "Add [buttons] shortcode to the content to insert these buttons."
1865
  msgstr ""
1866
 
1867
+ #: widgets/hero/hero.php:93, widgets/layout-slider/layout-slider.php:67, widgets/slider/slider.php:68
1868
  msgid "Background image"
1869
  msgstr ""
1870
 
1872
  msgid "Image size"
1873
  msgstr ""
1874
 
1875
+ #: widgets/hero/hero.php:105, widgets/layout-slider/layout-slider.php:74, widgets/slider/slider.php:79
1876
  msgid "Background image type"
1877
  msgstr ""
1878
 
1880
  msgid "Cover"
1881
  msgstr ""
1882
 
1883
+ #: widgets/hero/hero.php:113, widgets/layout-slider/layout-slider.php:83
1884
  msgid "Background image opacity"
1885
  msgstr ""
1886
 
1887
+ #: widgets/hero/hero.php:133, widgets/layout-slider/layout-slider.php:103
1888
  msgid "Open URL in a new window"
1889
  msgstr ""
1890
 
1891
+ #: widgets/hero/hero.php:138, widgets/layout-slider/layout-slider.php:108, widgets/slider/slider.php:55
1892
  msgid "Video"
1893
  msgstr ""
1894
 
1895
+ #: widgets/hero/hero.php:139, widgets/layout-slider/layout-slider.php:109, widgets/slider/slider.php:56
1896
  msgid "Background videos"
1897
  msgstr ""
1898
 
1899
+ #: widgets/hero/hero.php:154, widgets/layout-slider/layout-slider.php:124
1900
  msgid "Slider Controls"
1901
  msgstr ""
1902
 
1903
+ #: widgets/hero/hero.php:160, widgets/layout-slider/layout-slider.php:130
1904
  msgid "Design and Layout"
1905
  msgstr ""
1906
 
1907
+ #: widgets/hero/hero.php:171, widgets/layout-slider/layout-slider.php:140, widgets/slider/slider.php:134
1908
  msgid "Responsive Height"
1909
  msgstr ""
1910
 
1911
+ #: widgets/hero/hero.php:177, widgets/layout-slider/layout-slider.php:145
1912
  msgid "Vertically center align slide contents"
1913
  msgstr ""
1914
 
1915
+ #: widgets/hero/hero.php:178, widgets/layout-slider/layout-slider.php:146
1916
  msgid "For perfect centering, consider setting the Extra top padding setting to 0 when enabling this setting."
1917
  msgstr ""
1918
 
1919
+ #: widgets/hero/hero.php:183, widgets/layout-slider/layout-slider.php:151
1920
  msgid "Top and bottom padding"
1921
  msgstr ""
1922
 
1923
+ #: widgets/hero/hero.php:189, widgets/layout-slider/layout-slider.php:157
1924
  msgid "Extra top padding"
1925
  msgstr ""
1926
 
1927
+ #: widgets/hero/hero.php:190, widgets/layout-slider/layout-slider.php:158
1928
  msgid "Additional padding added to the top of the slider"
1929
  msgstr ""
1930
 
1931
+ #: widgets/hero/hero.php:196, widgets/layout-slider/layout-slider.php:164
1932
  msgid "Side padding"
1933
  msgstr ""
1934
 
1935
+ #: widgets/hero/hero.php:202, widgets/layout-slider/layout-slider.php:170
1936
  msgid "Maximum container width"
1937
  msgstr ""
1938
 
1940
  msgid "Heading font"
1941
  msgstr ""
1942
 
1943
+ #: widgets/hero/hero.php:214, widgets/layout-slider/layout-slider.php:176
1944
  msgid "Heading color"
1945
  msgstr ""
1946
 
1956
  msgid "FitText compressor strength"
1957
  msgstr ""
1958
 
1959
+ #: widgets/hero/hero.php:253, widgets/layout-slider/layout-slider.php:190
1960
  msgid "Heading shadow intensity"
1961
  msgstr ""
1962
 
1963
+ #: widgets/hero/hero.php:266, widgets/layout-slider/layout-slider.php:200
1964
  msgid "Text size"
1965
  msgstr ""
1966
 
2092
  msgid "SiteOrigin Layout Slider"
2093
  msgstr ""
2094
 
2095
+ #: widgets/layout-slider/layout-slider.php:38, widgets/slider/slider.php:34
2096
  msgid "Slider frames"
2097
  msgstr ""
2098
 
2099
+ #: widgets/layout-slider/layout-slider.php:77, widgets/slider/slider.php:82
2100
  msgid "Tile"
2101
  msgstr ""
2102
 
2103
+ #: widgets/layout-slider/layout-slider.php:225
2104
  msgid "This widget requires: "
2105
  msgstr ""
2106
 
2107
+ #: widgets/layout-slider/layout-slider.php:226, base/inc/fields/builder.class.php:43
2108
  msgid "SiteOrigin Page Builder"
2109
  msgstr ""
2110
 
2111
+ #: widgets/layout-slider/layout-slider.php:297
2112
+ msgid "Show slide %d"
2113
+ msgstr ""
2114
+
2115
+ #: widgets/layout-slider/layout-slider.php:310
2116
+ msgid "%s slide"
2117
+ msgstr ""
2118
+
2119
+ #: widgets/layout-slider/layout-slider.php:312
2120
+ msgid "Slide control shortcode error: invalid slide value."
2121
+ msgstr ""
2122
+
2123
+ #: widgets/layout-slider/layout-slider.php:341
2124
  msgid "This widget requires Page Builder."
2125
  msgstr ""
2126
 
2436
  msgid "Controls"
2437
  msgstr ""
2438
 
2439
+ #: widgets/slider/slider.php:336
2440
  msgid "Add a Lightbox to your image slides with %sSiteOrigin Premium%s"
2441
  msgstr ""
2442
 
2680
  msgid "Select cover image"
2681
  msgstr ""
2682
 
2683
+ #: widgets/video/video.php:85, base/inc/widgets/base-slider.class.php:157
2684
  msgid "Video URL"
2685
  msgstr ""
2686
 
2688
  msgid "Video Playback"
2689
  msgstr ""
2690
 
2691
+ #: widgets/video/video.php:101, base/inc/widgets/base-slider.class.php:54, base/inc/widgets/base-slider.class.php:164
2692
  msgid "Autoplay"
2693
  msgstr ""
2694
 
2697
  msgstr ""
2698
 
2699
  #: widgets/video/video.php:115
2700
+ msgid "Use FitVids"
2701
  msgstr ""
2702
 
2703
  #: widgets/video/video.php:116
2704
+ msgid "FitVids will scale the video to fill the width of the widget area while maintaining aspect ratio."
2705
+ msgstr ""
2706
+
2707
+ #: widgets/video/video.php:121
2708
+ msgid "Use oEmbed"
2709
+ msgstr ""
2710
+
2711
+ #: widgets/video/video.php:122
2712
  msgid "Always use the embedded video rather than the MediaElement player."
2713
  msgstr ""
2714
 
2715
+ #: widgets/video/video.php:131
2716
  msgid "Show related videos."
2717
  msgstr ""
2718
 
2719
+ #: widgets/video/video.php:132
2720
  msgid "If the external host supports it."
2721
  msgstr ""
2722
 
2789
  msgid "Choose Icon"
2790
  msgstr ""
2791
 
2792
+ #: base/inc/fields/icon.class.php:41, base/inc/fields/media.class.php:111, base/inc/fields/multiple-media.class.php:74, base/inc/fields/multiple-media.class.php:92
2793
  msgid "Remove"
2794
  msgstr ""
2795
 
2817
  msgid "Choose Media"
2818
  msgstr ""
2819
 
2820
+ #: base/inc/fields/media.class.php:61, base/inc/fields/multiple-media.class.php:37
2821
  msgid "Set Media"
2822
  msgstr ""
2823
 
2825
  msgid "Image Search"
2826
  msgstr ""
2827
 
2828
+ #: base/inc/fields/media.class.php:69, base/inc/fields/multiple-media.class.php:44
2829
  msgid "You need to <a href=\"%s\">upgrade</a> to WordPress 3.5 to use media fields"
2830
  msgstr ""
2831
 
2865
  msgid "Sponsored"
2866
  msgstr ""
2867
 
2868
+ #: base/inc/fields/multiple-media.class.php:36
2869
+ msgid "Add Media"
2870
+ msgstr ""
2871
+
2872
  #: base/inc/fields/posts.class.php:36
2873
  msgid "Post type"
2874
  msgstr ""
3082
  msgstr ""
3083
 
3084
  #: base/inc/widgets/base-slider.class.php:123
3085
+ msgid "Always show navigation on desktop"
3086
  msgstr ""
3087
 
3088
  #: base/inc/widgets/base-slider.class.php:128
3089
+ msgid "Always show navigation on mobile"
3090
+ msgstr ""
3091
+
3092
+ #: base/inc/widgets/base-slider.class.php:133
3093
  msgid "Swipe control"
3094
  msgstr ""
3095
 
3096
+ #: base/inc/widgets/base-slider.class.php:134
3097
  msgid "Allow users to swipe through frames on mobile devices."
3098
  msgstr ""
3099
 
3100
+ #: base/inc/widgets/base-slider.class.php:140
3101
  msgid "Show slide background videos on mobile"
3102
  msgstr ""
3103
 
3104
+ #: base/inc/widgets/base-slider.class.php:141
3105
  msgid "Allow slide background videos to appear on mobile devices that support autoplay."
3106
  msgstr ""
3107
 
3108
+ #: base/inc/widgets/base-slider.class.php:151
3109
  msgid "Video file"
3110
  msgstr ""
3111
 
3112
+ #: base/inc/widgets/base-slider.class.php:159
3113
  msgid "An external URL of the video. Overrides video file."
3114
  msgstr ""
3115
 
3116
+ #: base/inc/widgets/base-slider.class.php:166
3117
  msgid "Currently only for YouTube videos."
3118
  msgstr ""
3119
 
3120
+ #: base/inc/widgets/base-slider.class.php:171
3121
  msgid "Video format"
3122
  msgstr ""
3123
 
3124
+ #: base/inc/widgets/base-slider.class.php:187
3125
  msgid "This setting controls when the Slider will switch to the responsive mode. This breakpoint will only be used if always show navigation on mobile is enabled. The default value is 780px."
3126
  msgstr ""
3127
 
3128
+ #: base/inc/widgets/base-slider.class.php:235
3129
  msgid "display slide %s"
3130
  msgstr ""
3131
 
3132
+ #: base/inc/widgets/base-slider.class.php:240
3133
  msgid "next slide"
3134
  msgstr ""
3135
 
3136
+ #: base/inc/widgets/base-slider.class.php:246
3137
  msgid "previous slide"
3138
  msgstr ""
3139
 
3294
  msgstr ""
3295
 
3296
  #: widgets/social-media-buttons/data/networks.php:200
3297
+ msgid "IMDb"
3298
  msgstr ""
3299
 
3300
  #: widgets/social-media-buttons/data/networks.php:206
3301
+ msgid "JSFiddle"
3302
  msgstr ""
3303
 
3304
  #: widgets/social-media-buttons/data/networks.php:212
3305
+ msgid "Last.fm"
3306
  msgstr ""
3307
 
3308
  #: widgets/social-media-buttons/data/networks.php:218
3309
+ msgid "Reddit"
3310
  msgstr ""
3311
 
3312
  #: widgets/social-media-buttons/data/networks.php:224
3313
+ msgid "Slack"
3314
  msgstr ""
3315
 
3316
  #: widgets/social-media-buttons/data/networks.php:230
3317
+ msgid "Slideshare"
3318
  msgstr ""
3319
 
3320
  #: widgets/social-media-buttons/data/networks.php:236
3321
+ msgid "Soundcloud"
3322
  msgstr ""
3323
 
3324
  #: widgets/social-media-buttons/data/networks.php:242
3325
+ msgid "Spotify"
3326
  msgstr ""
3327
 
3328
  #: widgets/social-media-buttons/data/networks.php:248
3329
+ msgid "Stack Exchange"
3330
  msgstr ""
3331
 
3332
  #: widgets/social-media-buttons/data/networks.php:254
3333
+ msgid "Stack Overflow"
3334
  msgstr ""
3335
 
3336
  #: widgets/social-media-buttons/data/networks.php:260
3337
+ msgid "Steam"
3338
  msgstr ""
3339
 
3340
  #: widgets/social-media-buttons/data/networks.php:266
3341
+ msgid "Strava"
3342
  msgstr ""
3343
 
3344
  #: widgets/social-media-buttons/data/networks.php:272
3345
+ msgid "StumbleUpon"
3346
  msgstr ""
3347
 
3348
  #: widgets/social-media-buttons/data/networks.php:278
3349
+ msgid "Telegram"
3350
  msgstr ""
3351
 
3352
  #: widgets/social-media-buttons/data/networks.php:284
3353
+ msgid "TikTok"
3354
  msgstr ""
3355
 
3356
  #: widgets/social-media-buttons/data/networks.php:290
3357
+ msgid "Trello"
3358
  msgstr ""
3359
 
3360
  #: widgets/social-media-buttons/data/networks.php:296
3361
+ msgid "TripAdvisor"
3362
  msgstr ""
3363
 
3364
  #: widgets/social-media-buttons/data/networks.php:302
3365
+ msgid "Twitch"
3366
  msgstr ""
3367
 
3368
  #: widgets/social-media-buttons/data/networks.php:308
3369
+ msgid "Vimeo"
3370
  msgstr ""
3371
 
3372
  #: widgets/social-media-buttons/data/networks.php:314
3373
+ msgid "WhatsApp"
3374
  msgstr ""
3375
 
3376
  #: widgets/social-media-buttons/data/networks.php:320
3377
+ msgid "WordPress"
3378
  msgstr ""
3379
 
3380
  #: widgets/social-media-buttons/data/networks.php:326
3381
+ msgid "Xing"
3382
  msgstr ""
3383
 
3384
  #: widgets/social-media-buttons/data/networks.php:332
3385
+ msgid "Yahoo"
3386
  msgstr ""
3387
 
3388
  #: widgets/social-media-buttons/data/networks.php:338
3389
+ msgid "Yelp"
3390
+ msgstr ""
3391
+
3392
+ #: widgets/social-media-buttons/data/networks.php:344
3393
  msgid "YouTube"
3394
  msgstr ""
3395
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Tags: widget, button, slider, hero, google maps, image, carousel, features, icon
3
  Requires at least: 4.2
4
  Tested up to: 5.7
5
  Requires PHP: 5.6.20
6
- Stable tag: 1.18.2
7
- Build time: 2021-04-27T19:44:58+02:00
8
  License: GPLv3 or later
9
  Contributors: gpriday, braam-genis, alexgso
10
  Donate link: https://siteorigin.com/downloads/premium/
@@ -72,6 +72,23 @@ The SiteOrigin Widgets Bundle is the perfect platform to build widgets for your
72
 
73
  == Changelog ==
74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  = 1.18.2 - 27 April 2021 =
76
  * SiteOrigin Widget Block: Ensured icons are enqueued.
77
  * Slider: Only apply foreground height if a background image is set.
3
  Requires at least: 4.2
4
  Tested up to: 5.7
5
  Requires PHP: 5.6.20
6
+ Stable tag: 1.19.0
7
+ Build time: 2021-05-19T10:11:06+02:00
8
  License: GPLv3 or later
9
  Contributors: gpriday, braam-genis, alexgso
10
  Donate link: https://siteorigin.com/downloads/premium/
72
 
73
  == Changelog ==
74
 
75
+ = 1.19.0 - 19 May 2021 =
76
+ * Contact Form: Added a new `Number` field type.
77
+ * Image Grid: Changed vertical align to baseline.
78
+ * Layout Slider: Added a `slider_control` shortcode.
79
+ * Slider: Ensured the foreground image height is only set if a background image is present.
80
+ * Sliders: Added `Always show navigation on desktop` setting.
81
+ * Social Media Buttons: Added IMDb.
82
+ * Video Player: Added FitVids support for fluid width video embeds.
83
+ * Widget Block: Added a widget type search field.
84
+ * Widget Block: Minor media field responsive improvements.
85
+ * Widget Block: Automatically activate inactive widgets as needed.
86
+ * Styling improvements to the icon filter fields.
87
+ * Responsive improvements to the `Plugins > SiteOrigin Widgets` page.
88
+ * Developer: Added a multi-upload field for media.
89
+ * Developer: Added an option to disable the TinyMCE form field Add Media button.
90
+ * Developer: Added form field class prefix and path filtering using `siteorigin_widgets_field_registered_class_prefixes` and `siteorigin_widgets_field_registered_class_paths`.
91
+
92
  = 1.18.2 - 27 April 2021 =
93
  * SiteOrigin Widget Block: Ensured icons are enqueued.
94
  * Slider: Only apply foreground height if a background image is set.
so-widgets-bundle.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: SiteOrigin Widgets Bundle
4
  Description: A collection of all widgets, neatly bundled into a single plugin. It's also a framework to code your own widgets on top of.
5
- Version: 1.18.2
6
  Text Domain: so-widgets-bundle
7
  Domain Path: /lang
8
  Author: SiteOrigin
@@ -12,7 +12,7 @@ License: GPL3
12
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
13
  */
14
 
15
- define('SOW_BUNDLE_VERSION', '1.18.2');
16
  define('SOW_BUNDLE_BASE_FILE', __FILE__);
17
 
18
  // Allow JS suffix to be pre-set
2
  /*
3
  Plugin Name: SiteOrigin Widgets Bundle
4
  Description: A collection of all widgets, neatly bundled into a single plugin. It's also a framework to code your own widgets on top of.
5
+ Version: 1.19.0
6
  Text Domain: so-widgets-bundle
7
  Domain Path: /lang
8
  Author: SiteOrigin
12
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
13
  */
14
 
15
+ define('SOW_BUNDLE_VERSION', '1.19.0');
16
  define('SOW_BUNDLE_BASE_FILE', __FILE__);
17
 
18
  // Allow JS suffix to be pre-set
widgets/contact/contact.php CHANGED
@@ -149,6 +149,7 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
149
  'name' => __( 'Name', 'so-widgets-bundle' ),
150
  'email' => __( 'Email', 'so-widgets-bundle' ),
151
  'tel' => __( 'Phone Number', 'so-widgets-bundle' ),
 
152
  'subject' => __( 'Subject', 'so-widgets-bundle' ),
153
  'text' => __( 'Text', 'so-widgets-bundle' ),
154
  'textarea' => __( 'Text Area', 'so-widgets-bundle' ),
@@ -1114,6 +1115,14 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
1114
  }
1115
  break;
1116
 
 
 
 
 
 
 
 
 
1117
  default:
1118
  $email_fields['message'][] = array(
1119
  'label' => $field['label'],
149
  'name' => __( 'Name', 'so-widgets-bundle' ),
150
  'email' => __( 'Email', 'so-widgets-bundle' ),
151
  'tel' => __( 'Phone Number', 'so-widgets-bundle' ),
152
+ 'number' => __( 'Number', 'so-widgets-bundle' ),
153
  'subject' => __( 'Subject', 'so-widgets-bundle' ),
154
  'text' => __( 'Text', 'so-widgets-bundle' ),
155
  'textarea' => __( 'Text Area', 'so-widgets-bundle' ),
1115
  }
1116
  break;
1117
 
1118
+ case 'number':
1119
+ if ( ! is_numeric( $value ) ) {
1120
+ $errors[ $field_name ] = __( 'Invalid number.', 'so-widgets-bundle' );
1121
+ } else {
1122
+ $email_fields[ $field['type'] ] = $value;
1123
+ }
1124
+ break;
1125
+
1126
  default:
1127
  $email_fields['message'][] = array(
1128
  'label' => $field['label'],
widgets/contact/fields/number.class.php ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <?php
2
+
3
+ class SiteOrigin_Widget_ContactForm_Field_Number extends SiteOrigin_Widget_ContactForm_Field_Text {
4
+ // This class just exists for autoloading purposes, but is the same as the text field.
5
+ }
widgets/image-grid/styles/default.less CHANGED
@@ -4,6 +4,7 @@
4
  display: flex;
5
  flex-wrap: wrap;
6
  justify-content: center;
 
7
  padding-top: @spacing;
8
  line-height: 0;
9
  text-align:center;
4
  display: flex;
5
  flex-wrap: wrap;
6
  justify-content: center;
7
+ align-items: baseline;
8
  padding-top: @spacing;
9
  line-height: 0;
10
  text-align:center;
widgets/layout-slider/js/slide-control.js ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* globals jQuery */
2
+
3
+ jQuery( function ( $ ) {
4
+ $( '.sow-slide-control' ).on( 'click', function( e ) {
5
+ var $$ = $( this ),
6
+ cycleContainer = $$.parents( '.sow-slider-images' );
7
+ slideValue = $$.attr( 'href' ).substr( 1 );
8
+
9
+ e.preventDefault();
10
+
11
+ if ( ! isNaN( slideValue ) ) {
12
+ cycleContainer.cycle( 'goto', Math.abs( slideValue - 1 ) );
13
+ } else {
14
+ switch ( slideValue ) {
15
+ case 'first':
16
+ cycleContainer.cycle( 'goto', 0 );
17
+ break;
18
+ case 'last':
19
+ cycleContainer.cycle( 'goto', cycleContainer.find( '.sow-slider-image:not(.cycle-sentinel)' ).length - 1 );
20
+ break;
21
+ case 'next':
22
+ cycleContainer.cycle( 'next' );
23
+ break;
24
+ case 'previous':
25
+ cycleContainer.cycle( 'prev' );
26
+ break;
27
+ }
28
+ }
29
+ } );
30
+ } );
widgets/layout-slider/js/slide-control.min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery((function(e){e(".sow-slide-control").on("click",(function(s){var l=e(this),c=l.parents(".sow-slider-images");if(slideValue=l.attr("href").substr(1),s.preventDefault(),isNaN(slideValue))switch(slideValue){case"first":c.cycle("goto",0);break;case"last":c.cycle("goto",c.find(".sow-slider-image:not(.cycle-sentinel)").length-1);break;case"next":c.cycle("next");break;case"previous":c.cycle("prev")}else c.cycle("goto",Math.abs(slideValue-1))}))}));
widgets/layout-slider/layout-slider.php CHANGED
@@ -26,6 +26,8 @@ class SiteOrigin_Widget_LayoutSlider_Widget extends SiteOrigin_Widget_Base_Slide
26
  false,
27
  plugin_dir_path(__FILE__)
28
  );
 
 
29
  }
30
 
31
  function get_widget_form(){
@@ -272,6 +274,54 @@ class SiteOrigin_Widget_LayoutSlider_Widget extends SiteOrigin_Widget_Base_Slide
272
  <?php
273
  }
274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  /**
276
  * Process the content.
277
  *
@@ -282,8 +332,10 @@ class SiteOrigin_Widget_LayoutSlider_Widget extends SiteOrigin_Widget_Base_Slide
282
  */
283
  function process_content( $content, $frame ) {
284
  if( function_exists( 'siteorigin_panels_render' ) ) {
 
285
  $content_builder_id = substr( md5( json_encode( $content ) ), 0, 8 );
286
  echo siteorigin_panels_render( 'w'.$content_builder_id, true, $content );
 
287
  }
288
  else {
289
  echo __( 'This widget requires Page Builder.', 'so-widgets-bundle' );
26
  false,
27
  plugin_dir_path(__FILE__)
28
  );
29
+
30
+ add_action( 'siteorigin_widgets_enqueue_frontend_scripts_sow-layout-slider', array( $this, 'register_shortcode_script' ) );
31
  }
32
 
33
  function get_widget_form(){
274
  <?php
275
  }
276
 
277
+ function register_shortcode_script() {
278
+ wp_register_script(
279
+ 'sow-layout-slide-control',
280
+ plugin_dir_url( __FILE__ ) . 'js/slide-control' . SOW_BUNDLE_JS_SUFFIX . '.js',
281
+ array( 'jquery', 'sow-slider-slider' ),
282
+ SOW_BUNDLE_VERSION,
283
+ true
284
+ );
285
+ }
286
+
287
+ function add_shortcode( $atts ) {
288
+ ob_start();
289
+ $atts = shortcode_atts( array(
290
+ 'slide' => 'next',
291
+ 'label' => '',
292
+ ), $atts );
293
+
294
+ wp_enqueue_script( 'sow-layout-slide-control' );
295
+
296
+ if ( is_numeric( $atts['slide'] ) ) {
297
+ $label = sprintf( __( 'Show slide %d', 'so-widgets-bundle' ), $atts['slide'] );
298
+ } elseif (
299
+ $atts['slide'] == 'next' ||
300
+ $atts['slide'] == 'prev' ||
301
+ $atts['slide'] == 'prev' ||
302
+ $atts['slide'] == 'previous' ||
303
+ $atts['slide'] == 'first' ||
304
+ $atts['slide'] == 'last'
305
+ ) {
306
+ if ( $atts['slide'] == 'prev' ) {
307
+ $atts['slide'] = 'previous';
308
+ }
309
+
310
+ $label = sprintf( __( '%s slide', 'so-widgets-bundle' ), ucfirst( $atts['slide'] ) );
311
+ } else {
312
+ _e( 'Slide control shortcode error: invalid slide value.', 'so-widgets-bundle' );
313
+ }
314
+
315
+ if ( isset( $label ) ) {
316
+ // Handle label overriding.
317
+ $label = empty( $atts['label'] ) ? $label : $atts['label'];
318
+
319
+ echo '<a class="sow-slide-control" href="#' . esc_attr( $atts['slide'] ) . '" role="button">' . esc_attr( $label ) . '</a>';
320
+ }
321
+
322
+ return ob_get_clean();
323
+ }
324
+
325
  /**
326
  * Process the content.
327
  *
332
  */
333
  function process_content( $content, $frame ) {
334
  if( function_exists( 'siteorigin_panels_render' ) ) {
335
+ add_shortcode( 'slide_control', array( $this, 'add_shortcode' ) );
336
  $content_builder_id = substr( md5( json_encode( $content ) ), 0, 8 );
337
  echo siteorigin_panels_render( 'w'.$content_builder_id, true, $content );
338
+ remove_shortcode( 'slide_control' );
339
  }
340
  else {
341
  echo __( 'This widget requires Page Builder.', 'so-widgets-bundle' );
widgets/slider/slider.php CHANGED
@@ -127,13 +127,11 @@ class SiteOrigin_Widget_Slider_Widget extends SiteOrigin_Widget_Base_Slider {
127
  'height' => array(
128
  'type' => 'measurement',
129
  'label' => __( 'Height', 'so-widgets-bundle' ),
130
- 'default' => 'default',
131
  ),
132
 
133
  'height_responsive' => array(
134
  'type' => 'measurement',
135
  'label' => __( 'Responsive Height', 'so-widgets-bundle' ),
136
- 'default' => 'default',
137
  ),
138
  ),
139
  ),
@@ -180,6 +178,14 @@ class SiteOrigin_Widget_Slider_Widget extends SiteOrigin_Widget_Base_Slider {
180
  );
181
 
182
  if( !empty($foreground_src) ) {
 
 
 
 
 
 
 
 
183
  ?>
184
  <div class="sow-slider-image-container">
185
  <div class="sow-slider-image-wrapper" style="<?php if( ! empty( $foreground_src[1] ) ) echo 'max-width: ' . (int) $foreground_src[1] . 'px'; ?>">
@@ -200,7 +206,7 @@ class SiteOrigin_Widget_Slider_Widget extends SiteOrigin_Widget_Base_Slider {
200
  array(
201
  'class' => 'sow-slider-foreground-image',
202
  'loading' => 'eager',
203
- 'style' => ! empty( $frame['custom_height'] ) && ! empty( $foreground_src[2] ) ? 'height: ' . intval( $foreground_src[2] ) . 'px' : '',
204
  )
205
  );
206
  ?>
@@ -255,7 +261,7 @@ class SiteOrigin_Widget_Slider_Widget extends SiteOrigin_Widget_Base_Slider {
255
  }
256
  $frame['link_attributes'] = $link_atts;
257
 
258
- $frame['custom_height'] = ! empty( $instance['design']['height'] );
259
  }
260
  }
261
  return array(
127
  'height' => array(
128
  'type' => 'measurement',
129
  'label' => __( 'Height', 'so-widgets-bundle' ),
 
130
  ),
131
 
132
  'height_responsive' => array(
133
  'type' => 'measurement',
134
  'label' => __( 'Responsive Height', 'so-widgets-bundle' ),
 
135
  ),
136
  ),
137
  ),
178
  );
179
 
180
  if( !empty($foreground_src) ) {
181
+ // If a custom height is set, build the foreground style attribute.
182
+ if ( ! empty( $frame['custom_height'] ) ) {
183
+ $foreground_style_attr = 'height: ' . intval( $frame['custom_height'] ) . 'px; width: auto;';
184
+
185
+ if ( ! empty( $foreground_src[2] ) ) {
186
+ $foreground_style_attr .= 'max-height: ' . intval( $foreground_src[2] ) .'px';
187
+ }
188
+ }
189
  ?>
190
  <div class="sow-slider-image-container">
191
  <div class="sow-slider-image-wrapper" style="<?php if( ! empty( $foreground_src[1] ) ) echo 'max-width: ' . (int) $foreground_src[1] . 'px'; ?>">
206
  array(
207
  'class' => 'sow-slider-foreground-image',
208
  'loading' => 'eager',
209
+ 'style' => ! empty( $foreground_style_attr ) ? $foreground_style_attr : '',
210
  )
211
  );
212
  ?>
261
  }
262
  $frame['link_attributes'] = $link_atts;
263
 
264
+ $frame['custom_height'] = ! empty( $instance['design']['height'] ) ? $instance['design']['height'] : 0;
265
  }
266
  }
267
  return array(
widgets/slider/styles/default.less CHANGED
@@ -45,6 +45,11 @@
45
  }
46
  }
47
  }
 
 
 
 
 
48
  }
49
  }
50
 
45
  }
46
  }
47
  }
48
+
49
+ .sow-slider-image-foreground-wrapper {
50
+ margin-right: auto;
51
+ margin-left: auto;
52
+ }
53
  }
54
  }
55
 
widgets/social-media-buttons/data/networks.php CHANGED
@@ -196,6 +196,12 @@ return array(
196
  'icon_color' => '#FFFFFF',
197
  'button_color' => '#FF6600'
198
  ),
 
 
 
 
 
 
199
  'jsfiddle' => array(
200
  'label' => __( 'JSFiddle', 'so-widgets-bundle' ),
201
  'base_url' => 'http://jsfiddle.net/',
196
  'icon_color' => '#FFFFFF',
197
  'button_color' => '#FF6600'
198
  ),
199
+ 'imdb' => array(
200
+ 'label' => __( 'IMDb', 'so-widgets-bundle' ),
201
+ 'base_url' => 'https://www.imdb.com/',
202
+ 'icon_color' => '#F3CE13',
203
+ 'button_color' => '#000'
204
+ ),
205
  'jsfiddle' => array(
206
  'label' => __( 'JSFiddle', 'so-widgets-bundle' ),
207
  'base_url' => 'http://jsfiddle.net/',
widgets/video/js/so-video-widget.js CHANGED
@@ -6,12 +6,18 @@ jQuery( function ( $ ) {
6
  sowb.setupVideoPlayers = function () {
7
  var $ = jQuery;
8
  var $video = $( 'video.sow-video-widget' );
9
-
10
- if ( !$video.is( ':visible' ) || $video.data( 'initialized' ) ) {
11
  return $video;
12
  }
13
-
14
- $video.mediaelementplayer();
 
 
 
 
 
 
15
 
16
  $video.data( 'initialized', true );
17
  };
6
  sowb.setupVideoPlayers = function () {
7
  var $ = jQuery;
8
  var $video = $( 'video.sow-video-widget' );
9
+
10
+ if ( $video.data( 'initialized' ) ) {
11
  return $video;
12
  }
13
+
14
+ if ( $video.is( ':visible' ) ) {
15
+ $video.mediaelementplayer();
16
+ }
17
+
18
+ if ( typeof $.fn.fitVids == 'function' ) {
19
+ $( '.sow-video-wrapper.use-fitvids' ).fitVids();
20
+ }
21
 
22
  $video.data( 'initialized', true );
23
  };
widgets/video/js/so-video-widget.min.js CHANGED
@@ -1 +1 @@
1
- var sowb=window.sowb||{};jQuery((function(e){sowb.setupVideoPlayers=function(){var e=jQuery("video.sow-video-widget");if(!e.is(":visible")||e.data("initialized"))return e;e.mediaelementplayer(),e.data("initialized",!0)},sowb.setupVideoPlayers(),e(sowb).on("setup_widgets",sowb.setupVideoPlayers)})),window.sowb=sowb;
1
+ var sowb=window.sowb||{};jQuery((function(i){sowb.setupVideoPlayers=function(){var i=jQuery,e=i("video.sow-video-widget");if(e.data("initialized"))return e;e.is(":visible")&&e.mediaelementplayer(),"function"==typeof i.fn.fitVids&&i(".sow-video-wrapper.use-fitvids").fitVids(),e.data("initialized",!0)},sowb.setupVideoPlayers(),i(sowb).on("setup_widgets",sowb.setupVideoPlayers)})),window.sowb=sowb;
widgets/video/tpl/default.php CHANGED
@@ -10,6 +10,7 @@
10
  * @var $sources
11
  * @var $src
12
  * @var $video_type
 
13
  */
14
 
15
  if ( ! empty( $instance['title'] ) ) {
@@ -45,7 +46,7 @@ $so_video = new SiteOrigin_Video();
45
  do_action( 'siteorigin_widgets_sow-video_before_video', $instance );
46
  ?>
47
 
48
- <div class="sow-video-wrapper">
49
  <?php if ( $is_skinnable_video_host ) : ?>
50
  <video
51
  <?php foreach ( $video_args as $k => $v ) : ?>
10
  * @var $sources
11
  * @var $src
12
  * @var $video_type
13
+ * @var $fitvids
14
  */
15
 
16
  if ( ! empty( $instance['title'] ) ) {
46
  do_action( 'siteorigin_widgets_sow-video_before_video', $instance );
47
  ?>
48
 
49
+ <div class="sow-video-wrapper<?php if ( $fitvids ) echo ' use-fitvids'; ?>">
50
  <?php if ( $is_skinnable_video_host ) : ?>
51
  <video
52
  <?php foreach ( $video_args as $k => $v ) : ?>
widgets/video/video.php CHANGED
@@ -109,6 +109,12 @@ class SiteOrigin_Widget_Video_Widget extends SiteOrigin_Widget {
109
  'video_type[external]' => array( 'hide' ),
110
  )
111
  ),
 
 
 
 
 
 
112
  'oembed' => array(
113
  'type' => 'checkbox',
114
  'default' => true,
@@ -162,6 +168,15 @@ class SiteOrigin_Widget_Video_Widget extends SiteOrigin_Widget {
162
  SOW_BUNDLE_VERSION
163
  );
164
  }
 
 
 
 
 
 
 
 
 
165
  }
166
  parent::enqueue_frontend_scripts( $instance );
167
  }
@@ -217,7 +232,8 @@ class SiteOrigin_Widget_Video_Widget extends SiteOrigin_Widget {
217
  'autoplay' => ! empty( $instance['playback']['autoplay'] ),
218
  'loop' => $video_host == 'self' && ! empty( $instance['playback']['loop'] ),
219
  'related_videos' => ! empty( $instance['playback']['related_videos'] ),
220
- 'skin_class' => 'default'
 
221
  );
222
 
223
  // Force oEmbed for this video
@@ -284,6 +300,11 @@ class SiteOrigin_Widget_Video_Widget extends SiteOrigin_Widget {
284
  $instance['video']['self_sources'][] = $video_src;
285
  }
286
 
 
 
 
 
 
287
  return $instance;
288
  }
289
  }
109
  'video_type[external]' => array( 'hide' ),
110
  )
111
  ),
112
+ 'fitvids' => array(
113
+ 'type' => 'checkbox',
114
+ 'default' => true,
115
+ 'label' => __( 'Use FitVids', 'so-widgets-bundle' ),
116
+ 'description' => __( 'FitVids will scale the video to fill the width of the widget area while maintaining aspect ratio.', 'so-widgets-bundle' ),
117
+ ),
118
  'oembed' => array(
119
  'type' => 'checkbox',
120
  'default' => true,
168
  SOW_BUNDLE_VERSION
169
  );
170
  }
171
+
172
+ if ( ! empty( $instance['playback']['fitvids'] ) && ! wp_script_is( 'jquery-fitvids' ) ) {
173
+ wp_enqueue_script(
174
+ 'jquery-fitvids',
175
+ plugin_dir_url( SOW_BUNDLE_BASE_FILE ) . 'js/lib/jquery.fitvids' . SOW_BUNDLE_JS_SUFFIX . '.js',
176
+ array( 'jquery' ),
177
+ 1.1
178
+ );
179
+ }
180
  }
181
  parent::enqueue_frontend_scripts( $instance );
182
  }
232
  'autoplay' => ! empty( $instance['playback']['autoplay'] ),
233
  'loop' => $video_host == 'self' && ! empty( $instance['playback']['loop'] ),
234
  'related_videos' => ! empty( $instance['playback']['related_videos'] ),
235
+ 'skin_class' => 'default',
236
+ 'fitvids' => ! empty( $instance['playback']['fitvids'] ),
237
  );
238
 
239
  // Force oEmbed for this video
300
  $instance['video']['self_sources'][] = $video_src;
301
  }
302
 
303
+ // Prevent FitVids from being enabled for widgets created before FitVids was added.
304
+ if ( ! isset( $instance['playback']['fitvids'] ) ) {
305
+ $instance['playback']['fitvids'] = false;
306
+ }
307
+
308
  return $instance;
309
  }
310
  }