/*! * jQuery UI Bootstrap (0.5) * http://addyosmani.github.com/jquery-ui-bootstrap * * Copyright 2012 - 2013, Addy Osmani * Dual licensed under the MIT or GPL Version 2 licenses. * * Portions copyright jQuery UI & Twitter Bootstrap */ #redux-dialog-confirm, #redux-dialog-message { display: none; } .redux-support-dialog.ui-dialog, .redux-message-dialog.ui-dialog { position: absolute; top: 0; left: 0; padding: 0.2em; outline: 0; background-color: #ffffff; } .redux-support-dialog.ui-dialog .ui-dialog-buttonpane, .redux-message-dialog.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; padding: 0.3em 1em 0.5em 0.4em; } .redux-support-dialog.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset, .redux-message-dialog.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } .redux-support-dialog.ui-dialog .ui-dialog-buttonpane button, .redux-message-dialog.ui-dialog .ui-dialog-buttonpane button { margin: 0.5em 0.4em 0.5em 0; cursor: pointer; } .redux-support-dialog.ui-dialog .ui-dialog-titlebar, .redux-message-dialog.ui-dialog .ui-dialog-titlebar { padding: 0.4em 1em; position: relative; } .redux-support-dialog.ui-dialog .ui-dialog-content, .redux-message-dialog.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: 0.5em 1em; background: none; background-color: #ffffff; overflow: auto; } .redux-support-dialog.ui-dialog .ui-dialog-title, .redux-message-dialog.ui-dialog .ui-dialog-title { float: left; margin: 0.1em 0; white-space: nowrap; width: 90%; overflow: hidden; text-overflow: ellipsis; } .redux-support-dialog.ui-dialog .ui-dialog-titlebar-close, .redux-message-dialog.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: 0.3em; top: 50%; width: 20px; margin: -10px 0 0 0; padding: 1px; height: 20px; } .redux-support-dialog.ui-widget, .redux-message-dialog.ui-widget { font-family: Arial, Helvetica, sans-serif; font-size: 1em; } .redux-support-dialog.ui-widget .ui-widget, .redux-message-dialog.ui-widget .ui-widget { font-size: 1em; } .redux-support-dialog.ui-widget input, .redux-support-dialog.ui-widget select, .redux-support-dialog.ui-widget textarea, .redux-support-dialog.ui-widget button, .redux-message-dialog.ui-widget input, .redux-message-dialog.ui-widget select, .redux-message-dialog.ui-widget textarea, .redux-message-dialog.ui-widget button { font-family: Arial, Helvetica, sans-serif; font-size: 1em; } .redux-support-dialog.ui-widget.ui-widget-content, .redux-message-dialog.ui-widget.ui-widget-content { border: 1px solid #c5c5c5; } .redux-support-dialog.ui-draggable, .redux-support-dialog.ui-droppable, .redux-message-dialog.ui-draggable, .redux-message-dialog.ui-droppable { background-position: top; } .redux-support-dialog.ui-corner-all, .redux-support-dialog.ui-corner-bottom, .redux-support-dialog.ui-corner-right, .redux-support-dialog.ui-corner-br, .redux-message-dialog.ui-corner-all, .redux-message-dialog.ui-corner-bottom, .redux-message-dialog.ui-corner-right, .redux-message-dialog.ui-corner-br { border-bottom-right-radius: 3px; } .redux-support-dialog.ui-corner-all, .redux-support-dialog.ui-corner-bottom, .redux-support-dialog.ui-corner-left, .redux-support-dialog.ui-corner-bl, .redux-message-dialog.ui-corner-all, .redux-message-dialog.ui-corner-bottom, .redux-message-dialog.ui-corner-left, .redux-message-dialog.ui-corner-bl { border-bottom-left-radius: 3px; } .redux-support-dialog.ui-corner-all, .redux-support-dialog.ui-corner-top, .redux-support-dialog.ui-corner-right, .redux-support-dialog.ui-corner-tr, .redux-message-dialog.ui-corner-all, .redux-message-dialog.ui-corner-top, .redux-message-dialog.ui-corner-right, .redux-message-dialog.ui-corner-tr { border-top-right-radius: 3px; } .redux-support-dialog.ui-corner-all, .redux-support-dialog.ui-corner-top, .redux-support-dialog.ui-corner-left, .redux-support-dialog.ui-corner-tl, .redux-message-dialog.ui-corner-all, .redux-message-dialog.ui-corner-top, .redux-message-dialog.ui-corner-left, .redux-message-dialog.ui-corner-tl { border-top-left-radius: 3px; } .redux-support-dialog .ui-widget-content, .redux-message-dialog .ui-widget-content { border: 1px solid #dddddd; background: #ffffff none; color: #333333; } .redux-support-dialog.ui-draggable .ui-dialog-titlebar, .redux-message-dialog.ui-draggable .ui-dialog-titlebar { cursor: move; } .redux-support-dialog .ui-widget-header, .redux-message-dialog .ui-widget-header { border: 1px solid #dddddd; background: #e9e9e9; color: #333333; font-weight: bold; } .redux-support-dialog .ui-draggable-handle, .redux-message-dialog .ui-draggable-handle { -ms-touch-action: none; touch-action: none; } .redux-support-dialog .ui-widget-content, .redux-message-dialog .ui-widget-content { border: 1px solid #dddddd; background: #ffffff; color: #333333; } .redux-support-dialog .ui-helper-clearfix::before, .redux-support-dialog .ui-helper-clearfix::after, .redux-message-dialog .ui-helper-clearfix::before, .redux-message-dialog .ui-helper-clearfix::after { content: ""; display: table; border-collapse: collapse; } .redux-support-dialog .ui-helper-clearfix::after, .redux-message-dialog .ui-helper-clearfix::after { clear: both; } .redux-support-dialog .ui-state-default a, .redux-support-dialog .ui-state-default a:link, .redux-support-dialog .ui-state-default a:visited, .redux-support-dialog a.ui-button, .redux-support-dialog a:link.ui-button, .redux-support-dialog a:visited.ui-button, .redux-support-dialog .ui-button, .redux-message-dialog .ui-state-default a, .redux-message-dialog .ui-state-default a:link, .redux-message-dialog .ui-state-default a:visited, .redux-message-dialog a.ui-button, .redux-message-dialog a:link.ui-button, .redux-message-dialog a:visited.ui-button, .redux-message-dialog .ui-button { color: #454545; text-decoration: none; } .redux-support-dialog .ui-state-default, .redux-support-dialog .ui-widget-content .ui-state-default, .redux-support-dialog .ui-widget-header .ui-state-default, .redux-support-dialog .ui-button, .redux-message-dialog .ui-state-default, .redux-message-dialog .ui-widget-content .ui-state-default, .redux-message-dialog .ui-widget-header .ui-state-default, .redux-message-dialog .ui-button { border: 1px solid #c5c5c5; background: #f6f6f6; font-weight: normal; color: #454; } .redux-support-dialog .ui-button, .redux-message-dialog .ui-button { padding: 0.4em 1em; display: inline-block; position: relative; line-height: normal; margin-right: 0.1em; cursor: pointer; vertical-align: middle; text-align: center; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; overflow: visible; } .redux-support-dialog .ui-button .ui-icon, .redux-message-dialog .ui-button .ui-icon { background-image: url("../../img/jquery-ui-bootstrap/ui-icons_777777_256x240.png"); } .redux-support-dialog .ui-button-icon-only, .redux-message-dialog .ui-button-icon-only { text-indent: -9999px; white-space: nowrap; } .redux-support-dialog .ui-button-icon-only .ui-icon, .redux-message-dialog .ui-button-icon-only .ui-icon { position: absolute; top: 50%; left: 50%; margin-top: -8px; margin-left: -8px; } .redux-support-dialog .ui-icon-closethick, .redux-message-dialog .ui-icon-closethick { background-position: -96px -128px; } .redux-support-dialog .ui-icon, .redux-support-dialog .ui-widget-content .ui-icon, .redux-message-dialog .ui-icon, .redux-message-dialog .ui-widget-content .ui-icon { background-image: url("../../img/jquery-ui-bootstrap/ui-icons_444444_256x240.png"); } .redux-support-dialog .ui-icon-alert, .redux-message-dialog .ui-icon-alert { background-position: 0 -144px; } .redux-support-dialog .ui-icon-circle-check, .redux-message-dialog .ui-icon-circle-check { background-position: -208px -192px; } .redux-support-dialog .ui-icon, .redux-message-dialog .ui-icon { width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-top: -0.25em; position: relative; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } .ui-widget-overlay { background: #aaaaaa; opacity: 0.3; filter: Alpha(Opacity=30); position: fixed; top: 0; left: 0; width: 100%; height: 100%; } .ui-front { z-index: 100; } .redux-container, .control-section-redux, .control-panel-redux, .redux-metabox { /* Interaction Cues ----------------------------------*/ /* Icons ----------------------------------*/ /* states and images */ /* Misc visuals ----------------------------------*/ /* * jQuery UI CSS Framework 1.10.0 * * Copyright 2013, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * * * To view and modify this theme, visit http://jqueryui.com/themeroller/ */ /* Component containers ----------------------------------*/ /* Interaction states ----------------------------------*/ /* Interaction Cues ----------------------------------*/ /* For IE8 - See #6059 */ /* Icons ----------------------------------*/ /* states and images */ /* positioning */ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ /* Misc visuals ----------------------------------*/ /* Corner radius */ /* Overlays */ /* * jQuery UI Accordion 1.10.0 * * Copyright 2013, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * http://jqueryui.com/accordion/ */ /* IE/Win - Fix animation bug - #4615 */ /* * jQuery UI Button 1.10.0 * * Copyright 2013, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * http://docs.jquery.com/UI/Button#theming */ /* the overflow property removes extra width in IE */ /* to make room for the icon, a width needs to be set here */ /* button elements seem to need a little more width */ /*button text element */ /* no icon support for input elements, provide padding by default */ /* input.ui-button { padding: .4em 1em; } */ /*button icon element(s) */ /*button sets*/ /* workarounds */ /* reset extra padding in Firefox */ /* * jQuery UI Datepicker 1.9.0 * * Copyright 2012-10-11, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * http://jqueryui.com/datepicker/ */ /* with multiple calendars */ /* RTL support */ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ } .redux-container .ui-state-disabled, .control-section-redux .ui-state-disabled, .control-panel-redux .ui-state-disabled, .redux-metabox .ui-state-disabled { cursor: default !important; } .redux-container .ui-icon, .control-section-redux .ui-icon, .control-panel-redux .ui-icon, .redux-metabox .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } .redux-container .ui-widget-content, .control-section-redux .ui-widget-content, .control-panel-redux .ui-widget-content, .redux-metabox .ui-widget-content { border: 1px solid #aaa; background: #fff url("../../img/jquery-ui-bootstrap/ui-bg_glass_75_ffffff_1x400.png") 50% 50% repeat-x; color: #404040; } .redux-container .ui-widget-header, .control-section-redux .ui-widget-header, .control-panel-redux .ui-widget-header, .redux-metabox .ui-widget-header { font-weight: bold; border-color: #0064cd #0064cd #003f81; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); border: 1px solid #666; } .redux-container .ui-widget-header a, .control-section-redux .ui-widget-header a, .control-panel-redux .ui-widget-header a, .redux-metabox .ui-widget-header a { color: #222; } .redux-container .ui-state-default, .redux-container .ui-widget-content .ui-state-default, .redux-container .ui-widget-header .ui-state-default, .control-section-redux .ui-state-default, .control-section-redux .ui-widget-content .ui-state-default, .control-section-redux .ui-widget-header .ui-state-default, .control-panel-redux .ui-state-default, .control-panel-redux .ui-widget-content .ui-state-default, .control-panel-redux .ui-widget-header .ui-state-default, .redux-metabox .ui-state-default, .redux-metabox .ui-widget-content .ui-state-default, .redux-metabox .ui-widget-header .ui-state-default { background-color: #e6e6e6; background-repeat: no-repeat; background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fff), color-stop(25%, #fff), to(#e6e6e6)); background-image: -webkit-linear-gradient(#fff, #fff 25%, #e6e6e6); background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), color-stop(25%, #fff), to(#e6e6e6)); background-image: linear-gradient(#fff, #fff 25%, #e6e6e6); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff", endColorstr="#e6e6e6", GradientType=0); text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); color: #333; font-size: 13px; line-height: normal; border: 1px solid #ccc; border-bottom-color: #bbb; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -webkit-transition: 0.1s linear background-image; transition: 0.1s linear background-image; overflow: visible; } .redux-container .ui-state-default a, .redux-container .ui-state-default a:link, .redux-container .ui-state-default a:visited, .control-section-redux .ui-state-default a, .control-section-redux .ui-state-default a:link, .control-section-redux .ui-state-default a:visited, .control-panel-redux .ui-state-default a, .control-panel-redux .ui-state-default a:link, .control-panel-redux .ui-state-default a:visited, .redux-metabox .ui-state-default a, .redux-metabox .ui-state-default a:link, .redux-metabox .ui-state-default a:visited { color: #555; text-decoration: none; } .redux-container .ui-state-hover, .redux-container .ui-widget-content .ui-state-hover, .redux-container .ui-widget-header .ui-state-hover, .redux-container .ui-state-focus, .redux-container .ui-widget-content .ui-state-focus, .redux-container .ui-widget-header .ui-state-focus, .control-section-redux .ui-state-hover, .control-section-redux .ui-widget-content .ui-state-hover, .control-section-redux .ui-widget-header .ui-state-hover, .control-section-redux .ui-state-focus, .control-section-redux .ui-widget-content .ui-state-focus, .control-section-redux .ui-widget-header .ui-state-focus, .control-panel-redux .ui-state-hover, .control-panel-redux .ui-widget-content .ui-state-hover, .control-panel-redux .ui-widget-header .ui-state-hover, .control-panel-redux .ui-state-focus, .control-panel-redux .ui-widget-content .ui-state-focus, .control-panel-redux .ui-widget-header .ui-state-focus, .redux-metabox .ui-state-hover, .redux-metabox .ui-widget-content .ui-state-hover, .redux-metabox .ui-widget-header .ui-state-hover, .redux-metabox .ui-state-focus, .redux-metabox .ui-widget-content .ui-state-focus, .redux-metabox .ui-widget-header .ui-state-focus { background-position: 0 -15px; color: #333; text-decoration: none; } .redux-container .ui-state-hover a, .redux-container .ui-state-hover a:hover, .redux-container .ui-state-hover a:link, .redux-container .ui-state-hover a:visited, .control-section-redux .ui-state-hover a, .control-section-redux .ui-state-hover a:hover, .control-section-redux .ui-state-hover a:link, .control-section-redux .ui-state-hover a:visited, .control-panel-redux .ui-state-hover a, .control-panel-redux .ui-state-hover a:hover, .control-panel-redux .ui-state-hover a:link, .control-panel-redux .ui-state-hover a:visited, .redux-metabox .ui-state-hover a, .redux-metabox .ui-state-hover a:hover, .redux-metabox .ui-state-hover a:link, .redux-metabox .ui-state-hover a:visited { color: #212121; text-decoration: none; } .redux-container .ui-state-active, .redux-container .ui-widget-content .ui-state-active, .redux-container .ui-widget-header .ui-state-active, .control-section-redux .ui-state-active, .control-section-redux .ui-widget-content .ui-state-active, .control-section-redux .ui-widget-header .ui-state-active, .control-panel-redux .ui-state-active, .control-panel-redux .ui-widget-content .ui-state-active, .control-panel-redux .ui-widget-header .ui-state-active, .redux-metabox .ui-state-active, .redux-metabox .ui-widget-content .ui-state-active, .redux-metabox .ui-widget-header .ui-state-active { border: 1px solid #aaa; font-weight: normal; color: #212121; } .redux-container .ui-state-active a, .redux-container .ui-state-active a:link, .redux-container .ui-state-active a:visited, .control-section-redux .ui-state-active a, .control-section-redux .ui-state-active a:link, .control-section-redux .ui-state-active a:visited, .control-panel-redux .ui-state-active a, .control-panel-redux .ui-state-active a:link, .control-panel-redux .ui-state-active a:visited, .redux-metabox .ui-state-active a, .redux-metabox .ui-state-active a:link, .redux-metabox .ui-state-active a:visited { color: #212121; text-decoration: none; } .redux-container .ui-widget :active, .control-section-redux .ui-widget :active, .control-panel-redux .ui-widget :active, .redux-metabox .ui-widget :active { outline: none; } .redux-container .ui-state-highlight p, .redux-container .ui-state-error p, .redux-container .ui-state-default p, .control-section-redux .ui-state-highlight p, .control-section-redux .ui-state-error p, .control-section-redux .ui-state-default p, .control-panel-redux .ui-state-highlight p, .control-panel-redux .ui-state-error p, .control-panel-redux .ui-state-default p, .redux-metabox .ui-state-highlight p, .redux-metabox .ui-state-error p, .redux-metabox .ui-state-default p { font-size: 13px; font-weight: normal; line-height: 18px; margin: 7px 15px; } .redux-container .ui-state-highlight, .redux-container .ui-widget-content .ui-state-highlight, .redux-container .ui-widget-header .ui-state-highlight, .control-section-redux .ui-state-highlight, .control-section-redux .ui-widget-content .ui-state-highlight, .control-section-redux .ui-widget-header .ui-state-highlight, .control-panel-redux .ui-state-highlight, .control-panel-redux .ui-widget-content .ui-state-highlight, .control-panel-redux .ui-widget-header .ui-state-highlight, .redux-metabox .ui-state-highlight, .redux-metabox .ui-widget-content .ui-state-highlight, .redux-metabox .ui-widget-header .ui-state-highlight { position: relative; margin-bottom: 18px; color: #404040; background-color: #eedc94; background-repeat: repeat-x; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94)); background-image: -webkit-linear-gradient(top, #fceec1, #eedc94); background-image: -webkit-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94)); background-image: linear-gradient(to bottom, #fceec1, #eedc94); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#fceec1", endColorstr="#eedc94", GradientType=0); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-color: #eedc94 #eedc94 #e4c652; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); border-width: 1px; border-style: solid; border-radius: 4px; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); } .redux-container .ui-state-highlight a, .redux-container .ui-widget-content .ui-state-highlight a, .redux-container .ui-widget-header .ui-state-highlight a, .control-section-redux .ui-state-highlight a, .control-section-redux .ui-widget-content .ui-state-highlight a, .control-section-redux .ui-widget-header .ui-state-highlight a, .control-panel-redux .ui-state-highlight a, .control-panel-redux .ui-widget-content .ui-state-highlight a, .control-panel-redux .ui-widget-header .ui-state-highlight a, .redux-metabox .ui-state-highlight a, .redux-metabox .ui-widget-content .ui-state-highlight a, .redux-metabox .ui-widget-header .ui-state-highlight a { color: #363636; } .redux-container .ui-state-error, .redux-container .ui-widget-content .ui-state-error, .redux-container .ui-widget-header .ui-state-error, .control-section-redux .ui-state-error, .control-section-redux .ui-widget-content .ui-state-error, .control-section-redux .ui-widget-header .ui-state-error, .control-panel-redux .ui-state-error, .control-panel-redux .ui-widget-content .ui-state-error, .control-panel-redux .ui-widget-header .ui-state-error, .redux-metabox .ui-state-error, .redux-metabox .ui-widget-content .ui-state-error, .redux-metabox .ui-widget-header .ui-state-error { position: relative; margin-bottom: 18px; color: #fff; border-width: 1px; border-style: solid; border-radius: 4px; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); background-color: #c43c35; background-repeat: repeat-x; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); background-image: -webkit-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35)); background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ee5f5b", endColorstr="#c43c35", GradientType=0); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-color: #c43c35 #c43c35 #882a25; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); } .redux-container .ui-state-error a, .redux-container .ui-widget-content .ui-state-error a, .redux-container .ui-widget-header .ui-state-error a, .control-section-redux .ui-state-error a, .control-section-redux .ui-widget-content .ui-state-error a, .control-section-redux .ui-widget-header .ui-state-error a, .control-panel-redux .ui-state-error a, .control-panel-redux .ui-widget-content .ui-state-error a, .control-panel-redux .ui-widget-header .ui-state-error a, .redux-metabox .ui-state-error a, .redux-metabox .ui-widget-content .ui-state-error a, .redux-metabox .ui-widget-header .ui-state-error a { color: #cd0a0a; } .redux-container .ui-state-error-text, .redux-container .ui-widget-content .ui-state-error-text, .redux-container .ui-widget-header .ui-state-error-text, .control-section-redux .ui-state-error-text, .control-section-redux .ui-widget-content .ui-state-error-text, .control-section-redux .ui-widget-header .ui-state-error-text, .control-panel-redux .ui-state-error-text, .control-panel-redux .ui-widget-content .ui-state-error-text, .control-panel-redux .ui-widget-header .ui-state-error-text, .redux-metabox .ui-state-error-text, .redux-metabox .ui-widget-content .ui-state-error-text, .redux-metabox .ui-widget-header .ui-state-error-text { color: #cd0a0a; } .redux-container .ui-priority-primary, .redux-container .ui-widget-content .ui-priority-primary, .redux-container .ui-widget-header .ui-priority-primary, .control-section-redux .ui-priority-primary, .control-section-redux .ui-widget-content .ui-priority-primary, .control-section-redux .ui-widget-header .ui-priority-primary, .control-panel-redux .ui-priority-primary, .control-panel-redux .ui-widget-content .ui-priority-primary, .control-panel-redux .ui-widget-header .ui-priority-primary, .redux-metabox .ui-priority-primary, .redux-metabox .ui-widget-content .ui-priority-primary, .redux-metabox .ui-widget-header .ui-priority-primary { font-weight: bold; } .redux-container .ui-priority-secondary, .redux-container .ui-widget-content .ui-priority-secondary, .redux-container .ui-widget-header .ui-priority-secondary, .control-section-redux .ui-priority-secondary, .control-section-redux .ui-widget-content .ui-priority-secondary, .control-section-redux .ui-widget-header .ui-priority-secondary, .control-panel-redux .ui-priority-secondary, .control-panel-redux .ui-widget-content .ui-priority-secondary, .control-panel-redux .ui-widget-header .ui-priority-secondary, .redux-metabox .ui-priority-secondary, .redux-metabox .ui-widget-content .ui-priority-secondary, .redux-metabox .ui-widget-header .ui-priority-secondary { opacity: 0.7; filter: alpha(Opacity=70); font-weight: normal; } .redux-container .ui-state-disabled, .redux-container .ui-widget-content .ui-state-disabled, .redux-container .ui-widget-header .ui-state-disabled, .control-section-redux .ui-state-disabled, .control-section-redux .ui-widget-content .ui-state-disabled, .control-section-redux .ui-widget-header .ui-state-disabled, .control-panel-redux .ui-state-disabled, .control-panel-redux .ui-widget-content .ui-state-disabled, .control-panel-redux .ui-widget-header .ui-state-disabled, .redux-metabox .ui-state-disabled, .redux-metabox .ui-widget-content .ui-state-disabled, .redux-metabox .ui-widget-header .ui-state-disabled { opacity: 0.35; filter: alpha(Opacity=35); background-image: none; } .redux-container .ui-state-disabled .ui-icon, .control-section-redux .ui-state-disabled .ui-icon, .control-panel-redux .ui-state-disabled .ui-icon, .redux-metabox .ui-state-disabled .ui-icon { filter: alpha(Opacity=35); } .redux-container .ui-icon, .control-section-redux .ui-icon, .control-panel-redux .ui-icon, .redux-metabox .ui-icon { width: 16px; height: 16px; background-image: url("../../img/jquery-ui-bootstrap/ui-icons_222222_256x240.png"); } .redux-container .ui-widget-content .ui-icon, .control-section-redux .ui-widget-content .ui-icon, .control-panel-redux .ui-widget-content .ui-icon, .redux-metabox .ui-widget-content .ui-icon { background-image: url("../../img/jquery-ui-bootstrap/ui-icons_222222_256x240.png"); } .redux-container .ui-widget-header .ui-icon, .control-section-redux .ui-widget-header .ui-icon, .control-panel-redux .ui-widget-header .ui-icon, .redux-metabox .ui-widget-header .ui-icon { background-image: url("../../img/jquery-ui-bootstrap/ui-icons_222222_256x240.png"); } .redux-container .ui-state-default .ui-icon, .control-section-redux .ui-state-default .ui-icon, .control-panel-redux .ui-state-default .ui-icon, .redux-metabox .ui-state-default .ui-icon { background-image: url("../../img/jquery-ui-bootstrap/ui-icons_888888_256x240.png"); } .redux-container .ui-state-hover .ui-icon, .redux-container .ui-state-focus .ui-icon, .control-section-redux .ui-state-hover .ui-icon, .control-section-redux .ui-state-focus .ui-icon, .control-panel-redux .ui-state-hover .ui-icon, .control-panel-redux .ui-state-focus .ui-icon, .redux-metabox .ui-state-hover .ui-icon, .redux-metabox .ui-state-focus .ui-icon { background-image: url("../../img/jquery-ui-bootstrap/ui-icons_454545_256x240.png"); } .redux-container .ui-state-active .ui-icon, .control-section-redux .ui-state-active .ui-icon, .control-panel-redux .ui-state-active .ui-icon, .redux-metabox .ui-state-active .ui-icon { background-image: url("../../img/jquery-ui-bootstrap/ui-icons_454545_256x240.png"); } .redux-container .ui-state-highlight .ui-icon, .control-section-redux .ui-state-highlight .ui-icon, .control-panel-redux .ui-state-highlight .ui-icon, .redux-metabox .ui-state-highlight .ui-icon { background-image: url("../../img/jquery-ui-bootstrap/ui-icons_2e83ff_256x240.png"); } .redux-container .ui-state-error .ui-icon, .redux-container .ui-state-error-text .ui-icon, .control-section-redux .ui-state-error .ui-icon, .control-section-redux .ui-state-error-text .ui-icon, .control-panel-redux .ui-state-error .ui-icon, .control-panel-redux .ui-state-error-text .ui-icon, .redux-metabox .ui-state-error .ui-icon, .redux-metabox .ui-state-error-text .ui-icon { background-image: url("../../img/jquery-ui-bootstrap/ui-icons_f6cf3b_256x240.png"); } .redux-container .ui-icon-carat-1-n, .control-section-redux .ui-icon-carat-1-n, .control-panel-redux .ui-icon-carat-1-n, .redux-metabox .ui-icon-carat-1-n { background-position: 0 0; } .redux-container .ui-icon-carat-1-ne, .control-section-redux .ui-icon-carat-1-ne, .control-panel-redux .ui-icon-carat-1-ne, .redux-metabox .ui-icon-carat-1-ne { background-position: -16px 0; } .redux-container .ui-icon-carat-1-e, .control-section-redux .ui-icon-carat-1-e, .control-panel-redux .ui-icon-carat-1-e, .redux-metabox .ui-icon-carat-1-e { background-position: -32px 0; } .redux-container .ui-icon-carat-1-se, .control-section-redux .ui-icon-carat-1-se, .control-panel-redux .ui-icon-carat-1-se, .redux-metabox .ui-icon-carat-1-se { background-position: -48px 0; } .redux-container .ui-icon-carat-1-s, .control-section-redux .ui-icon-carat-1-s, .control-panel-redux .ui-icon-carat-1-s, .redux-metabox .ui-icon-carat-1-s { background-position: -64px 0; } .redux-container .ui-icon-carat-1-sw, .control-section-redux .ui-icon-carat-1-sw, .control-panel-redux .ui-icon-carat-1-sw, .redux-metabox .ui-icon-carat-1-sw { background-position: -80px 0; } .redux-container .ui-icon-carat-1-w, .control-section-redux .ui-icon-carat-1-w, .control-panel-redux .ui-icon-carat-1-w, .redux-metabox .ui-icon-carat-1-w { background-position: -96px 0; } .redux-container .ui-icon-carat-1-nw, .control-section-redux .ui-icon-carat-1-nw, .control-panel-redux .ui-icon-carat-1-nw, .redux-metabox .ui-icon-carat-1-nw { background-position: -112px 0; } .redux-container .ui-icon-carat-2-n-s, .control-section-redux .ui-icon-carat-2-n-s, .control-panel-redux .ui-icon-carat-2-n-s, .redux-metabox .ui-icon-carat-2-n-s { background-position: -128px 0; } .redux-container .ui-icon-carat-2-e-w, .control-section-redux .ui-icon-carat-2-e-w, .control-panel-redux .ui-icon-carat-2-e-w, .redux-metabox .ui-icon-carat-2-e-w { background-position: -144px 0; } .redux-container .ui-icon-triangle-1-n, .control-section-redux .ui-icon-triangle-1-n, .control-panel-redux .ui-icon-triangle-1-n, .redux-metabox .ui-icon-triangle-1-n { background-position: 0 -16px; } .redux-container .ui-icon-triangle-1-ne, .control-section-redux .ui-icon-triangle-1-ne, .control-panel-redux .ui-icon-triangle-1-ne, .redux-metabox .ui-icon-triangle-1-ne { background-position: -16px -16px; } .redux-container .ui-icon-triangle-1-e, .control-section-redux .ui-icon-triangle-1-e, .control-panel-redux .ui-icon-triangle-1-e, .redux-metabox .ui-icon-triangle-1-e { background-position: -32px -16px; } .redux-container .ui-icon-triangle-1-se, .control-section-redux .ui-icon-triangle-1-se, .control-panel-redux .ui-icon-triangle-1-se, .redux-metabox .ui-icon-triangle-1-se { background-position: -48px -16px; } .redux-container .ui-icon-triangle-1-s, .control-section-redux .ui-icon-triangle-1-s, .control-panel-redux .ui-icon-triangle-1-s, .redux-metabox .ui-icon-triangle-1-s { background-position: -64px -16px; } .redux-container .ui-icon-triangle-1-sw, .control-section-redux .ui-icon-triangle-1-sw, .control-panel-redux .ui-icon-triangle-1-sw, .redux-metabox .ui-icon-triangle-1-sw { background-position: -80px -16px; } .redux-container .ui-icon-triangle-1-w, .control-section-redux .ui-icon-triangle-1-w, .control-panel-redux .ui-icon-triangle-1-w, .redux-metabox .ui-icon-triangle-1-w { background-position: -96px -16px; } .redux-container .ui-icon-triangle-1-nw, .control-section-redux .ui-icon-triangle-1-nw, .control-panel-redux .ui-icon-triangle-1-nw, .redux-metabox .ui-icon-triangle-1-nw { background-position: -112px -16px; } .redux-container .ui-icon-triangle-2-n-s, .control-section-redux .ui-icon-triangle-2-n-s, .control-panel-redux .ui-icon-triangle-2-n-s, .redux-metabox .ui-icon-triangle-2-n-s { background-position: -128px -16px; } .redux-container .ui-icon-triangle-2-e-w, .control-section-redux .ui-icon-triangle-2-e-w, .control-panel-redux .ui-icon-triangle-2-e-w, .redux-metabox .ui-icon-triangle-2-e-w { background-position: -144px -16px; } .redux-container .ui-icon-arrow-1-n, .control-section-redux .ui-icon-arrow-1-n, .control-panel-redux .ui-icon-arrow-1-n, .redux-metabox .ui-icon-arrow-1-n { background-position: 0 -32px; } .redux-container .ui-icon-arrow-1-ne, .control-section-redux .ui-icon-arrow-1-ne, .control-panel-redux .ui-icon-arrow-1-ne, .redux-metabox .ui-icon-arrow-1-ne { background-position: -16px -32px; } .redux-container .ui-icon-arrow-1-e, .control-section-redux .ui-icon-arrow-1-e, .control-panel-redux .ui-icon-arrow-1-e, .redux-metabox .ui-icon-arrow-1-e { background-position: -32px -32px; } .redux-container .ui-icon-arrow-1-se, .control-section-redux .ui-icon-arrow-1-se, .control-panel-redux .ui-icon-arrow-1-se, .redux-metabox .ui-icon-arrow-1-se { background-position: -48px -32px; } .redux-container .ui-icon-arrow-1-s, .control-section-redux .ui-icon-arrow-1-s, .control-panel-redux .ui-icon-arrow-1-s, .redux-metabox .ui-icon-arrow-1-s { background-position: -64px -32px; } .redux-container .ui-icon-arrow-1-sw, .control-section-redux .ui-icon-arrow-1-sw, .control-panel-redux .ui-icon-arrow-1-sw, .redux-metabox .ui-icon-arrow-1-sw { background-position: -80px -32px; } .redux-container .ui-icon-arrow-1-w, .control-section-redux .ui-icon-arrow-1-w, .control-panel-redux .ui-icon-arrow-1-w, .redux-metabox .ui-icon-arrow-1-w { background-position: -96px -32px; } .redux-container .ui-icon-arrow-1-nw, .control-section-redux .ui-icon-arrow-1-nw, .control-panel-redux .ui-icon-arrow-1-nw, .redux-metabox .ui-icon-arrow-1-nw { background-position: -112px -32px; } .redux-container .ui-icon-arrow-2-n-s, .control-section-redux .ui-icon-arrow-2-n-s, .control-panel-redux .ui-icon-arrow-2-n-s, .redux-metabox .ui-icon-arrow-2-n-s { background-position: -128px -32px; } .redux-container .ui-icon-arrow-2-ne-sw, .control-section-redux .ui-icon-arrow-2-ne-sw, .control-panel-redux .ui-icon-arrow-2-ne-sw, .redux-metabox .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } .redux-container .ui-icon-arrow-2-e-w, .control-section-redux .ui-icon-arrow-2-e-w, .control-panel-redux .ui-icon-arrow-2-e-w, .redux-metabox .ui-icon-arrow-2-e-w { background-position: -160px -32px; } .redux-container .ui-icon-arrow-2-se-nw, .control-section-redux .ui-icon-arrow-2-se-nw, .control-panel-redux .ui-icon-arrow-2-se-nw, .redux-metabox .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } .redux-container .ui-icon-arrowstop-1-n, .control-section-redux .ui-icon-arrowstop-1-n, .control-panel-redux .ui-icon-arrowstop-1-n, .redux-metabox .ui-icon-arrowstop-1-n { background-position: -192px -32px; } .redux-container .ui-icon-arrowstop-1-e, .control-section-redux .ui-icon-arrowstop-1-e, .control-panel-redux .ui-icon-arrowstop-1-e, .redux-metabox .ui-icon-arrowstop-1-e { background-position: -208px -32px; } .redux-container .ui-icon-arrowstop-1-s, .control-section-redux .ui-icon-arrowstop-1-s, .control-panel-redux .ui-icon-arrowstop-1-s, .redux-metabox .ui-icon-arrowstop-1-s { background-position: -224px -32px; } .redux-container .ui-icon-arrowstop-1-w, .control-section-redux .ui-icon-arrowstop-1-w, .control-panel-redux .ui-icon-arrowstop-1-w, .redux-metabox .ui-icon-arrowstop-1-w { background-position: -240px -32px; } .redux-container .ui-icon-arrowthick-1-n, .control-section-redux .ui-icon-arrowthick-1-n, .control-panel-redux .ui-icon-arrowthick-1-n, .redux-metabox .ui-icon-arrowthick-1-n { background-position: 0 -48px; } .redux-container .ui-icon-arrowthick-1-ne, .control-section-redux .ui-icon-arrowthick-1-ne, .control-panel-redux .ui-icon-arrowthick-1-ne, .redux-metabox .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } .redux-container .ui-icon-arrowthick-1-e, .control-section-redux .ui-icon-arrowthick-1-e, .control-panel-redux .ui-icon-arrowthick-1-e, .redux-metabox .ui-icon-arrowthick-1-e { background-position: -32px -48px; } .redux-container .ui-icon-arrowthick-1-se, .control-section-redux .ui-icon-arrowthick-1-se, .control-panel-redux .ui-icon-arrowthick-1-se, .redux-metabox .ui-icon-arrowthick-1-se { background-position: -48px -48px; } .redux-container .ui-icon-arrowthick-1-s, .control-section-redux .ui-icon-arrowthick-1-s, .control-panel-redux .ui-icon-arrowthick-1-s, .redux-metabox .ui-icon-arrowthick-1-s { background-position: -64px -48px; } .redux-container .ui-icon-arrowthick-1-sw, .control-section-redux .ui-icon-arrowthick-1-sw, .control-panel-redux .ui-icon-arrowthick-1-sw, .redux-metabox .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } .redux-container .ui-icon-arrowthick-1-w, .control-section-redux .ui-icon-arrowthick-1-w, .control-panel-redux .ui-icon-arrowthick-1-w, .redux-metabox .ui-icon-arrowthick-1-w { background-position: -96px -48px; } .redux-container .ui-icon-arrowthick-1-nw, .control-section-redux .ui-icon-arrowthick-1-nw, .control-panel-redux .ui-icon-arrowthick-1-nw, .redux-metabox .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } .redux-container .ui-icon-arrowthick-2-n-s, .control-section-redux .ui-icon-arrowthick-2-n-s, .control-panel-redux .ui-icon-arrowthick-2-n-s, .redux-metabox .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } .redux-container .ui-icon-arrowthick-2-ne-sw, .control-section-redux .ui-icon-arrowthick-2-ne-sw, .control-panel-redux .ui-icon-arrowthick-2-ne-sw, .redux-metabox .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } .redux-container .ui-icon-arrowthick-2-e-w, .control-section-redux .ui-icon-arrowthick-2-e-w, .control-panel-redux .ui-icon-arrowthick-2-e-w, .redux-metabox .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } .redux-container .ui-icon-arrowthick-2-se-nw, .control-section-redux .ui-icon-arrowthick-2-se-nw, .control-panel-redux .ui-icon-arrowthick-2-se-nw, .redux-metabox .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } .redux-container .ui-icon-arrowthickstop-1-n, .control-section-redux .ui-icon-arrowthickstop-1-n, .control-panel-redux .ui-icon-arrowthickstop-1-n, .redux-metabox .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } .redux-container .ui-icon-arrowthickstop-1-e, .control-section-redux .ui-icon-arrowthickstop-1-e, .control-panel-redux .ui-icon-arrowthickstop-1-e, .redux-metabox .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } .redux-container .ui-icon-arrowthickstop-1-s, .control-section-redux .ui-icon-arrowthickstop-1-s, .control-panel-redux .ui-icon-arrowthickstop-1-s, .redux-metabox .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } .redux-container .ui-icon-arrowthickstop-1-w, .control-section-redux .ui-icon-arrowthickstop-1-w, .control-panel-redux .ui-icon-arrowthickstop-1-w, .redux-metabox .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } .redux-container .ui-icon-arrowreturnthick-1-w, .control-section-redux .ui-icon-arrowreturnthick-1-w, .control-panel-redux .ui-icon-arrowreturnthick-1-w, .redux-metabox .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } .redux-container .ui-icon-arrowreturnthick-1-n, .control-section-redux .ui-icon-arrowreturnthick-1-n, .control-panel-redux .ui-icon-arrowreturnthick-1-n, .redux-metabox .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } .redux-container .ui-icon-arrowreturnthick-1-e, .control-section-redux .ui-icon-arrowreturnthick-1-e, .control-panel-redux .ui-icon-arrowreturnthick-1-e, .redux-metabox .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } .redux-container .ui-icon-arrowreturnthick-1-s, .control-section-redux .ui-icon-arrowreturnthick-1-s, .control-panel-redux .ui-icon-arrowreturnthick-1-s, .redux-metabox .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } .redux-container .ui-icon-arrowreturn-1-w, .control-section-redux .ui-icon-arrowreturn-1-w, .control-panel-redux .ui-icon-arrowreturn-1-w, .redux-metabox .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } .redux-container .ui-icon-arrowreturn-1-n, .control-section-redux .ui-icon-arrowreturn-1-n, .control-panel-redux .ui-icon-arrowreturn-1-n, .redux-metabox .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } .redux-container .ui-icon-arrowreturn-1-e, .control-section-redux .ui-icon-arrowreturn-1-e, .control-panel-redux .ui-icon-arrowreturn-1-e, .redux-metabox .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } .redux-container .ui-icon-arrowreturn-1-s, .control-section-redux .ui-icon-arrowreturn-1-s, .control-panel-redux .ui-icon-arrowreturn-1-s, .redux-metabox .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } .redux-container .ui-icon-arrowrefresh-1-w, .control-section-redux .ui-icon-arrowrefresh-1-w, .control-panel-redux .ui-icon-arrowrefresh-1-w, .redux-metabox .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } .redux-container .ui-icon-arrowrefresh-1-n, .control-section-redux .ui-icon-arrowrefresh-1-n, .control-panel-redux .ui-icon-arrowrefresh-1-n, .redux-metabox .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } .redux-container .ui-icon-arrowrefresh-1-e, .control-section-redux .ui-icon-arrowrefresh-1-e, .control-panel-redux .ui-icon-arrowrefresh-1-e, .redux-metabox .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } .redux-container .ui-icon-arrowrefresh-1-s, .control-section-redux .ui-icon-arrowrefresh-1-s, .control-panel-redux .ui-icon-arrowrefresh-1-s, .redux-metabox .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } .redux-container .ui-icon-arrow-4, .control-section-redux .ui-icon-arrow-4, .control-panel-redux .ui-icon-arrow-4, .redux-metabox .ui-icon-arrow-4 { background-position: 0 -80px; } .redux-container .ui-icon-arrow-4-diag, .control-section-redux .ui-icon-arrow-4-diag, .control-panel-redux .ui-icon-arrow-4-diag, .redux-metabox .ui-icon-arrow-4-diag { background-position: -16px -80px; } .redux-container .ui-icon-extlink, .control-section-redux .ui-icon-extlink, .control-panel-redux .ui-icon-extlink, .redux-metabox .ui-icon-extlink { background-position: -32px -80px; } .redux-container .ui-icon-newwin, .control-section-redux .ui-icon-newwin, .control-panel-redux .ui-icon-newwin, .redux-metabox .ui-icon-newwin { background-position: -48px -80px; } .redux-container .ui-icon-refresh, .control-section-redux .ui-icon-refresh, .control-panel-redux .ui-icon-refresh, .redux-metabox .ui-icon-refresh { background-position: -64px -80px; } .redux-container .ui-icon-shuffle, .control-section-redux .ui-icon-shuffle, .control-panel-redux .ui-icon-shuffle, .redux-metabox .ui-icon-shuffle { background-position: -80px -80px; } .redux-container .ui-icon-transfer-e-w, .control-section-redux .ui-icon-transfer-e-w, .control-panel-redux .ui-icon-transfer-e-w, .redux-metabox .ui-icon-transfer-e-w { background-position: -96px -80px; } .redux-container .ui-icon-transferthick-e-w, .control-section-redux .ui-icon-transferthick-e-w, .control-panel-redux .ui-icon-transferthick-e-w, .redux-metabox .ui-icon-transferthick-e-w { background-position: -112px -80px; } .redux-container .ui-icon-folder-collapsed, .control-section-redux .ui-icon-folder-collapsed, .control-panel-redux .ui-icon-folder-collapsed, .redux-metabox .ui-icon-folder-collapsed { background-position: 0 -96px; } .redux-container .ui-icon-folder-open, .control-section-redux .ui-icon-folder-open, .control-panel-redux .ui-icon-folder-open, .redux-metabox .ui-icon-folder-open { background-position: -16px -96px; } .redux-container .ui-icon-document, .control-section-redux .ui-icon-document, .control-panel-redux .ui-icon-document, .redux-metabox .ui-icon-document { background-position: -32px -96px; } .redux-container .ui-icon-document-b, .control-section-redux .ui-icon-document-b, .control-panel-redux .ui-icon-document-b, .redux-metabox .ui-icon-document-b { background-position: -48px -96px; } .redux-container .ui-icon-note, .control-section-redux .ui-icon-note, .control-panel-redux .ui-icon-note, .redux-metabox .ui-icon-note { background-position: -64px -96px; } .redux-container .ui-icon-mail-closed, .control-section-redux .ui-icon-mail-closed, .control-panel-redux .ui-icon-mail-closed, .redux-metabox .ui-icon-mail-closed { background-position: -80px -96px; } .redux-container .ui-icon-mail-open, .control-section-redux .ui-icon-mail-open, .control-panel-redux .ui-icon-mail-open, .redux-metabox .ui-icon-mail-open { background-position: -96px -96px; } .redux-container .ui-icon-suitcase, .control-section-redux .ui-icon-suitcase, .control-panel-redux .ui-icon-suitcase, .redux-metabox .ui-icon-suitcase { background-position: -112px -96px; } .redux-container .ui-icon-comment, .control-section-redux .ui-icon-comment, .control-panel-redux .ui-icon-comment, .redux-metabox .ui-icon-comment { background-position: -128px -96px; } .redux-container .ui-icon-person, .control-section-redux .ui-icon-person, .control-panel-redux .ui-icon-person, .redux-metabox .ui-icon-person { background-position: -144px -96px; } .redux-container .ui-icon-print, .control-section-redux .ui-icon-print, .control-panel-redux .ui-icon-print, .redux-metabox .ui-icon-print { background-position: -160px -96px; } .redux-container .ui-icon-trash, .control-section-redux .ui-icon-trash, .control-panel-redux .ui-icon-trash, .redux-metabox .ui-icon-trash { background-position: -176px -96px; } .redux-container .ui-icon-locked, .control-section-redux .ui-icon-locked, .control-panel-redux .ui-icon-locked, .redux-metabox .ui-icon-locked { background-position: -192px -96px; } .redux-container .ui-icon-unlocked, .control-section-redux .ui-icon-unlocked, .control-panel-redux .ui-icon-unlocked, .redux-metabox .ui-icon-unlocked { background-position: -208px -96px; } .redux-container .ui-icon-bookmark, .control-section-redux .ui-icon-bookmark, .control-panel-redux .ui-icon-bookmark, .redux-metabox .ui-icon-bookmark { background-position: -224px -96px; } .redux-container .ui-icon-tag, .control-section-redux .ui-icon-tag, .control-panel-redux .ui-icon-tag, .redux-metabox .ui-icon-tag { background-position: -240px -96px; } .redux-container .ui-icon-home, .control-section-redux .ui-icon-home, .control-panel-redux .ui-icon-home, .redux-metabox .ui-icon-home { background-position: 0 -112px; } .redux-container .ui-icon-flag, .control-section-redux .ui-icon-flag, .control-panel-redux .ui-icon-flag, .redux-metabox .ui-icon-flag { background-position: -16px -112px; } .redux-container .ui-icon-calendar, .control-section-redux .ui-icon-calendar, .control-panel-redux .ui-icon-calendar, .redux-metabox .ui-icon-calendar { background-position: -32px -112px; } .redux-container .ui-icon-cart, .control-section-redux .ui-icon-cart, .control-panel-redux .ui-icon-cart, .redux-metabox .ui-icon-cart { background-position: -48px -112px; } .redux-container .ui-icon-pencil, .control-section-redux .ui-icon-pencil, .control-panel-redux .ui-icon-pencil, .redux-metabox .ui-icon-pencil { background-position: -64px -112px; } .redux-container .ui-icon-clock, .control-section-redux .ui-icon-clock, .control-panel-redux .ui-icon-clock, .redux-metabox .ui-icon-clock { background-position: -80px -112px; } .redux-container .ui-icon-disk, .control-section-redux .ui-icon-disk, .control-panel-redux .ui-icon-disk, .redux-metabox .ui-icon-disk { background-position: -96px -112px; } .redux-container .ui-icon-calculator, .control-section-redux .ui-icon-calculator, .control-panel-redux .ui-icon-calculator, .redux-metabox .ui-icon-calculator { background-position: -112px -112px; } .redux-container .ui-icon-zoomin, .control-section-redux .ui-icon-zoomin, .control-panel-redux .ui-icon-zoomin, .redux-metabox .ui-icon-zoomin { background-position: -128px -112px; } .redux-container .ui-icon-zoomout, .control-section-redux .ui-icon-zoomout, .control-panel-redux .ui-icon-zoomout, .redux-metabox .ui-icon-zoomout { background-position: -144px -112px; } .redux-container .ui-icon-search, .control-section-redux .ui-icon-search, .control-panel-redux .ui-icon-search, .redux-metabox .ui-icon-search { background-position: -160px -112px; } .redux-container .ui-icon-wrench, .control-section-redux .ui-icon-wrench, .control-panel-redux .ui-icon-wrench, .redux-metabox .ui-icon-wrench { background-position: -176px -112px; } .redux-container .ui-icon-gear, .control-section-redux .ui-icon-gear, .control-panel-redux .ui-icon-gear, .redux-metabox .ui-icon-gear { background-position: -192px -112px; } .redux-container .ui-icon-heart, .control-section-redux .ui-icon-heart, .control-panel-redux .ui-icon-heart, .redux-metabox .ui-icon-heart { background-position: -208px -112px; } .redux-container .ui-icon-star, .control-section-redux .ui-icon-star, .control-panel-redux .ui-icon-star, .redux-metabox .ui-icon-star { background-position: -224px -112px; } .redux-container .ui-icon-link, .control-section-redux .ui-icon-link, .control-panel-redux .ui-icon-link, .redux-metabox .ui-icon-link { background-position: -240px -112px; } .redux-container .ui-icon-cancel, .control-section-redux .ui-icon-cancel, .control-panel-redux .ui-icon-cancel, .redux-metabox .ui-icon-cancel { background-position: 0 -128px; } .redux-container .ui-icon-plus, .control-section-redux .ui-icon-plus, .control-panel-redux .ui-icon-plus, .redux-metabox .ui-icon-plus { background-position: -16px -128px; } .redux-container .ui-icon-plusthick, .control-section-redux .ui-icon-plusthick, .control-panel-redux .ui-icon-plusthick, .redux-metabox .ui-icon-plusthick { background-position: -32px -128px; } .redux-container .ui-icon-minus, .control-section-redux .ui-icon-minus, .control-panel-redux .ui-icon-minus, .redux-metabox .ui-icon-minus { background-position: -48px -128px; } .redux-container .ui-icon-minusthick, .control-section-redux .ui-icon-minusthick, .control-panel-redux .ui-icon-minusthick, .redux-metabox .ui-icon-minusthick { background-position: -64px -128px; } .redux-container .ui-icon-close, .control-section-redux .ui-icon-close, .control-panel-redux .ui-icon-close, .redux-metabox .ui-icon-close { background-position: -80px -128px; } .redux-container .ui-icon-closethick, .control-section-redux .ui-icon-closethick, .control-panel-redux .ui-icon-closethick, .redux-metabox .ui-icon-closethick { background-position: -96px -128px; } .redux-container .ui-icon-key, .control-section-redux .ui-icon-key, .control-panel-redux .ui-icon-key, .redux-metabox .ui-icon-key { background-position: -112px -128px; } .redux-container .ui-icon-lightbulb, .control-section-redux .ui-icon-lightbulb, .control-panel-redux .ui-icon-lightbulb, .redux-metabox .ui-icon-lightbulb { background-position: -128px -128px; } .redux-container .ui-icon-scissors, .control-section-redux .ui-icon-scissors, .control-panel-redux .ui-icon-scissors, .redux-metabox .ui-icon-scissors { background-position: -144px -128px; } .redux-container .ui-icon-clipboard, .control-section-redux .ui-icon-clipboard, .control-panel-redux .ui-icon-clipboard, .redux-metabox .ui-icon-clipboard { background-position: -160px -128px; } .redux-container .ui-icon-copy, .control-section-redux .ui-icon-copy, .control-panel-redux .ui-icon-copy, .redux-metabox .ui-icon-copy { background-position: -176px -128px; } .redux-container .ui-icon-contact, .control-section-redux .ui-icon-contact, .control-panel-redux .ui-icon-contact, .redux-metabox .ui-icon-contact { background-position: -192px -128px; } .redux-container .ui-icon-image, .control-section-redux .ui-icon-image, .control-panel-redux .ui-icon-image, .redux-metabox .ui-icon-image { background-position: -208px -128px; } .redux-container .ui-icon-video, .control-section-redux .ui-icon-video, .control-panel-redux .ui-icon-video, .redux-metabox .ui-icon-video { background-position: -224px -128px; } .redux-container .ui-icon-script, .control-section-redux .ui-icon-script, .control-panel-redux .ui-icon-script, .redux-metabox .ui-icon-script { background-position: -240px -128px; } .redux-container .ui-icon-alert, .control-section-redux .ui-icon-alert, .control-panel-redux .ui-icon-alert, .redux-metabox .ui-icon-alert { background-position: 0 -144px; } .redux-container .ui-icon-info, .control-section-redux .ui-icon-info, .control-panel-redux .ui-icon-info, .redux-metabox .ui-icon-info { background-position: -16px -144px; } .redux-container .ui-icon-notice, .control-section-redux .ui-icon-notice, .control-panel-redux .ui-icon-notice, .redux-metabox .ui-icon-notice { background-position: -32px -144px; } .redux-container .ui-icon-help, .control-section-redux .ui-icon-help, .control-panel-redux .ui-icon-help, .redux-metabox .ui-icon-help { background-position: -48px -144px; } .redux-container .ui-icon-check, .control-section-redux .ui-icon-check, .control-panel-redux .ui-icon-check, .redux-metabox .ui-icon-check { background-position: -64px -144px; } .redux-container .ui-icon-bullet, .control-section-redux .ui-icon-bullet, .control-panel-redux .ui-icon-bullet, .redux-metabox .ui-icon-bullet { background-position: -80px -144px; } .redux-container .ui-icon-radio-off, .control-section-redux .ui-icon-radio-off, .control-panel-redux .ui-icon-radio-off, .redux-metabox .ui-icon-radio-off { background-position: -96px -144px; } .redux-container .ui-icon-radio-on, .control-section-redux .ui-icon-radio-on, .control-panel-redux .ui-icon-radio-on, .redux-metabox .ui-icon-radio-on { background-position: -112px -144px; } .redux-container .ui-icon-pin-w, .control-section-redux .ui-icon-pin-w, .control-panel-redux .ui-icon-pin-w, .redux-metabox .ui-icon-pin-w { background-position: -128px -144px; } .redux-container .ui-icon-pin-s, .control-section-redux .ui-icon-pin-s, .control-panel-redux .ui-icon-pin-s, .redux-metabox .ui-icon-pin-s { background-position: -144px -144px; } .redux-container .ui-icon-play, .control-section-redux .ui-icon-play, .control-panel-redux .ui-icon-play, .redux-metabox .ui-icon-play { background-position: 0 -160px; } .redux-container .ui-icon-pause, .control-section-redux .ui-icon-pause, .control-panel-redux .ui-icon-pause, .redux-metabox .ui-icon-pause { background-position: -16px -160px; } .redux-container .ui-icon-seek-next, .control-section-redux .ui-icon-seek-next, .control-panel-redux .ui-icon-seek-next, .redux-metabox .ui-icon-seek-next { background-position: -32px -160px; } .redux-container .ui-icon-seek-prev, .control-section-redux .ui-icon-seek-prev, .control-panel-redux .ui-icon-seek-prev, .redux-metabox .ui-icon-seek-prev { background-position: -48px -160px; } .redux-container .ui-icon-seek-end, .control-section-redux .ui-icon-seek-end, .control-panel-redux .ui-icon-seek-end, .redux-metabox .ui-icon-seek-end { background-position: -64px -160px; } .redux-container .ui-icon-seek-start, .control-section-redux .ui-icon-seek-start, .control-panel-redux .ui-icon-seek-start, .redux-metabox .ui-icon-seek-start { background-position: -80px -160px; } .redux-container .ui-icon-seek-first, .control-section-redux .ui-icon-seek-first, .control-panel-redux .ui-icon-seek-first, .redux-metabox .ui-icon-seek-first { background-position: -80px -160px; } .redux-container .ui-icon-stop, .control-section-redux .ui-icon-stop, .control-panel-redux .ui-icon-stop, .redux-metabox .ui-icon-stop { background-position: -96px -160px; } .redux-container .ui-icon-eject, .control-section-redux .ui-icon-eject, .control-panel-redux .ui-icon-eject, .redux-metabox .ui-icon-eject { background-position: -112px -160px; } .redux-container .ui-icon-volume-off, .control-section-redux .ui-icon-volume-off, .control-panel-redux .ui-icon-volume-off, .redux-metabox .ui-icon-volume-off { background-position: -128px -160px; } .redux-container .ui-icon-volume-on, .control-section-redux .ui-icon-volume-on, .control-panel-redux .ui-icon-volume-on, .redux-metabox .ui-icon-volume-on { background-position: -144px -160px; } .redux-container .ui-icon-power, .control-section-redux .ui-icon-power, .control-panel-redux .ui-icon-power, .redux-metabox .ui-icon-power { background-position: 0 -176px; } .redux-container .ui-icon-signal-diag, .control-section-redux .ui-icon-signal-diag, .control-panel-redux .ui-icon-signal-diag, .redux-metabox .ui-icon-signal-diag { background-position: -16px -176px; } .redux-container .ui-icon-signal, .control-section-redux .ui-icon-signal, .control-panel-redux .ui-icon-signal, .redux-metabox .ui-icon-signal { background-position: -32px -176px; } .redux-container .ui-icon-battery-0, .control-section-redux .ui-icon-battery-0, .control-panel-redux .ui-icon-battery-0, .redux-metabox .ui-icon-battery-0 { background-position: -48px -176px; } .redux-container .ui-icon-battery-1, .control-section-redux .ui-icon-battery-1, .control-panel-redux .ui-icon-battery-1, .redux-metabox .ui-icon-battery-1 { background-position: -64px -176px; } .redux-container .ui-icon-battery-2, .control-section-redux .ui-icon-battery-2, .control-panel-redux .ui-icon-battery-2, .redux-metabox .ui-icon-battery-2 { background-position: -80px -176px; } .redux-container .ui-icon-battery-3, .control-section-redux .ui-icon-battery-3, .control-panel-redux .ui-icon-battery-3, .redux-metabox .ui-icon-battery-3 { background-position: -96px -176px; } .redux-container .ui-icon-circle-plus, .control-section-redux .ui-icon-circle-plus, .control-panel-redux .ui-icon-circle-plus, .redux-metabox .ui-icon-circle-plus { background-position: 0 -192px; } .redux-container .ui-icon-circle-minus, .control-section-redux .ui-icon-circle-minus, .control-panel-redux .ui-icon-circle-minus, .redux-metabox .ui-icon-circle-minus { background-position: -16px -192px; } .redux-container .ui-icon-circle-close, .control-section-redux .ui-icon-circle-close, .control-panel-redux .ui-icon-circle-close, .redux-metabox .ui-icon-circle-close { background-position: -32px -192px; } .redux-container .ui-icon-circle-triangle-e, .control-section-redux .ui-icon-circle-triangle-e, .control-panel-redux .ui-icon-circle-triangle-e, .redux-metabox .ui-icon-circle-triangle-e { background-position: -48px -192px; } .redux-container .ui-icon-circle-triangle-s, .control-section-redux .ui-icon-circle-triangle-s, .control-panel-redux .ui-icon-circle-triangle-s, .redux-metabox .ui-icon-circle-triangle-s { background-position: -64px -192px; } .redux-container .ui-icon-circle-triangle-w, .control-section-redux .ui-icon-circle-triangle-w, .control-panel-redux .ui-icon-circle-triangle-w, .redux-metabox .ui-icon-circle-triangle-w { background-position: -80px -192px; } .redux-container .ui-icon-circle-triangle-n, .control-section-redux .ui-icon-circle-triangle-n, .control-panel-redux .ui-icon-circle-triangle-n, .redux-metabox .ui-icon-circle-triangle-n { background-position: -96px -192px; } .redux-container .ui-icon-circle-arrow-e, .control-section-redux .ui-icon-circle-arrow-e, .control-panel-redux .ui-icon-circle-arrow-e, .redux-metabox .ui-icon-circle-arrow-e { background-position: -112px -192px; } .redux-container .ui-icon-circle-arrow-s, .control-section-redux .ui-icon-circle-arrow-s, .control-panel-redux .ui-icon-circle-arrow-s, .redux-metabox .ui-icon-circle-arrow-s { background-position: -128px -192px; } .redux-container .ui-icon-circle-arrow-w, .control-section-redux .ui-icon-circle-arrow-w, .control-panel-redux .ui-icon-circle-arrow-w, .redux-metabox .ui-icon-circle-arrow-w { background-position: -144px -192px; } .redux-container .ui-icon-circle-arrow-n, .control-section-redux .ui-icon-circle-arrow-n, .control-panel-redux .ui-icon-circle-arrow-n, .redux-metabox .ui-icon-circle-arrow-n { background-position: -160px -192px; } .redux-container .ui-icon-circle-zoomin, .control-section-redux .ui-icon-circle-zoomin, .control-panel-redux .ui-icon-circle-zoomin, .redux-metabox .ui-icon-circle-zoomin { background-position: -176px -192px; } .redux-container .ui-icon-circle-zoomout, .control-section-redux .ui-icon-circle-zoomout, .control-panel-redux .ui-icon-circle-zoomout, .redux-metabox .ui-icon-circle-zoomout { background-position: -192px -192px; } .redux-container .ui-icon-circle-check, .control-section-redux .ui-icon-circle-check, .control-panel-redux .ui-icon-circle-check, .redux-metabox .ui-icon-circle-check { background-position: -208px -192px; } .redux-container .ui-icon-circlesmall-plus, .control-section-redux .ui-icon-circlesmall-plus, .control-panel-redux .ui-icon-circlesmall-plus, .redux-metabox .ui-icon-circlesmall-plus { background-position: 0 -208px; } .redux-container .ui-icon-circlesmall-minus, .control-section-redux .ui-icon-circlesmall-minus, .control-panel-redux .ui-icon-circlesmall-minus, .redux-metabox .ui-icon-circlesmall-minus { background-position: -16px -208px; } .redux-container .ui-icon-circlesmall-close, .control-section-redux .ui-icon-circlesmall-close, .control-panel-redux .ui-icon-circlesmall-close, .redux-metabox .ui-icon-circlesmall-close { background-position: -32px -208px; } .redux-container .ui-icon-squaresmall-plus, .control-section-redux .ui-icon-squaresmall-plus, .control-panel-redux .ui-icon-squaresmall-plus, .redux-metabox .ui-icon-squaresmall-plus { background-position: -48px -208px; } .redux-container .ui-icon-squaresmall-minus, .control-section-redux .ui-icon-squaresmall-minus, .control-panel-redux .ui-icon-squaresmall-minus, .redux-metabox .ui-icon-squaresmall-minus { background-position: -64px -208px; } .redux-container .ui-icon-squaresmall-close, .control-section-redux .ui-icon-squaresmall-close, .control-panel-redux .ui-icon-squaresmall-close, .redux-metabox .ui-icon-squaresmall-close { background-position: -80px -208px; } .redux-container .ui-icon-grip-dotted-vertical, .control-section-redux .ui-icon-grip-dotted-vertical, .control-panel-redux .ui-icon-grip-dotted-vertical, .redux-metabox .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } .redux-container .ui-icon-grip-dotted-horizontal, .control-section-redux .ui-icon-grip-dotted-horizontal, .control-panel-redux .ui-icon-grip-dotted-horizontal, .redux-metabox .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } .redux-container .ui-icon-grip-solid-vertical, .control-section-redux .ui-icon-grip-solid-vertical, .control-panel-redux .ui-icon-grip-solid-vertical, .redux-metabox .ui-icon-grip-solid-vertical { background-position: -32px -224px; } .redux-container .ui-icon-grip-solid-horizontal, .control-section-redux .ui-icon-grip-solid-horizontal, .control-panel-redux .ui-icon-grip-solid-horizontal, .redux-metabox .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } .redux-container .ui-icon-gripsmall-diagonal-se, .control-section-redux .ui-icon-gripsmall-diagonal-se, .control-panel-redux .ui-icon-gripsmall-diagonal-se, .redux-metabox .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } .redux-container .ui-icon-grip-diagonal-se, .control-section-redux .ui-icon-grip-diagonal-se, .control-panel-redux .ui-icon-grip-diagonal-se, .redux-metabox .ui-icon-grip-diagonal-se { background-position: -80px -224px; } .redux-container .ui-corner-all, .redux-container .ui-corner-top, .redux-container .ui-corner-left, .redux-container .ui-corner-tl, .control-section-redux .ui-corner-all, .control-section-redux .ui-corner-top, .control-section-redux .ui-corner-left, .control-section-redux .ui-corner-tl, .control-panel-redux .ui-corner-all, .control-panel-redux .ui-corner-top, .control-panel-redux .ui-corner-left, .control-panel-redux .ui-corner-tl, .redux-metabox .ui-corner-all, .redux-metabox .ui-corner-top, .redux-metabox .ui-corner-left, .redux-metabox .ui-corner-tl { border-top-left-radius: 4px; } .redux-container .ui-corner-all, .redux-container .ui-corner-top, .redux-container .ui-corner-right, .redux-container .ui-corner-tr, .control-section-redux .ui-corner-all, .control-section-redux .ui-corner-top, .control-section-redux .ui-corner-right, .control-section-redux .ui-corner-tr, .control-panel-redux .ui-corner-all, .control-panel-redux .ui-corner-top, .control-panel-redux .ui-corner-right, .control-panel-redux .ui-corner-tr, .redux-metabox .ui-corner-all, .redux-metabox .ui-corner-top, .redux-metabox .ui-corner-right, .redux-metabox .ui-corner-tr { border-top-right-radius: 4px; } .redux-container .ui-corner-all, .redux-container .ui-corner-bottom, .redux-container .ui-corner-left, .redux-container .ui-corner-bl, .control-section-redux .ui-corner-all, .control-section-redux .ui-corner-bottom, .control-section-redux .ui-corner-left, .control-section-redux .ui-corner-bl, .control-panel-redux .ui-corner-all, .control-panel-redux .ui-corner-bottom, .control-panel-redux .ui-corner-left, .control-panel-redux .ui-corner-bl, .redux-metabox .ui-corner-all, .redux-metabox .ui-corner-bottom, .redux-metabox .ui-corner-left, .redux-metabox .ui-corner-bl { border-bottom-left-radius: 4px; } .redux-container .ui-corner-all, .redux-container .ui-corner-bottom, .redux-container .ui-corner-right, .redux-container .ui-corner-br, .control-section-redux .ui-corner-all, .control-section-redux .ui-corner-bottom, .control-section-redux .ui-corner-right, .control-section-redux .ui-corner-br, .control-panel-redux .ui-corner-all, .control-panel-redux .ui-corner-bottom, .control-panel-redux .ui-corner-right, .control-panel-redux .ui-corner-br, .redux-metabox .ui-corner-all, .redux-metabox .ui-corner-bottom, .redux-metabox .ui-corner-right, .redux-metabox .ui-corner-br { border-bottom-right-radius: 4px; } .redux-container .ui-widget-overlay, .control-section-redux .ui-widget-overlay, .control-panel-redux .ui-widget-overlay, .redux-metabox .ui-widget-overlay { background: #aaa url("../../img/jquery-ui-bootstrap/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; opacity: 0.3; filter: alpha(Opacity=30); } .redux-container .ui-widget-shadow, .control-section-redux .ui-widget-shadow, .control-panel-redux .ui-widget-shadow, .redux-metabox .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaa url("../../img/jquery-ui-bootstrap/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; opacity: 0.3; filter: alpha(Opacity=30); border-radius: 8px; } .redux-container .ui-accordion, .control-section-redux .ui-accordion, .control-panel-redux .ui-accordion, .redux-metabox .ui-accordion { width: 100%; } .redux-container .ui-accordion .ui-accordion-header, .control-section-redux .ui-accordion .ui-accordion-header, .control-panel-redux .ui-accordion .ui-accordion-header, .redux-metabox .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; font-weight: bold; } .redux-container .ui-accordion .ui-accordion-li-fix, .control-section-redux .ui-accordion .ui-accordion-li-fix, .control-panel-redux .ui-accordion .ui-accordion-li-fix, .redux-metabox .ui-accordion .ui-accordion-li-fix { display: inline; } .redux-container .ui-accordion .ui-accordion-header-active, .control-section-redux .ui-accordion .ui-accordion-header-active, .control-panel-redux .ui-accordion .ui-accordion-header-active, .redux-metabox .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } .redux-container .ui-accordion .ui-accordion-header a, .control-section-redux .ui-accordion .ui-accordion-header a, .control-panel-redux .ui-accordion .ui-accordion-header a, .redux-metabox .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: 0.5em 0.5em 0.5em 1.7em; } .redux-container .ui-accordion-icons .ui-accordion-header a, .control-section-redux .ui-accordion-icons .ui-accordion-header a, .control-panel-redux .ui-accordion-icons .ui-accordion-header a, .redux-metabox .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } .redux-container .ui-accordion .ui-accordion-header .ui-icon, .control-section-redux .ui-accordion .ui-accordion-header .ui-icon, .control-panel-redux .ui-accordion .ui-accordion-header .ui-icon, .redux-metabox .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: 0.5em; top: 50%; margin-top: -8px; } .redux-container .ui-accordion .ui-accordion-content, .control-section-redux .ui-accordion .ui-accordion-content, .control-panel-redux .ui-accordion .ui-accordion-content, .redux-metabox .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } .redux-container .ui-accordion .ui-accordion-content-active, .control-section-redux .ui-accordion .ui-accordion-content-active, .control-panel-redux .ui-accordion .ui-accordion-content-active, .redux-metabox .ui-accordion .ui-accordion-content-active { display: block; } .redux-container .ui-button, .control-section-redux .ui-button, .control-panel-redux .ui-button, .redux-metabox .ui-button { cursor: pointer; display: inline-block; background-color: #e6e6e6; background-repeat: no-repeat; background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fff), color-stop(25%, #fff), to(#e6e6e6)); background-image: -webkit-linear-gradient(#fff, #fff 25%, #e6e6e6); background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), color-stop(25%, #fff), to(#e6e6e6)); background-image: linear-gradient(#fff, #fff 25%, #e6e6e6); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff", endColorstr="#e6e6e6", GradientType=0); padding: 5px 14px 6px; margin: 0; text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); color: #333; font-size: 13px; line-height: normal; border: 1px solid #ccc; border-bottom-color: #bbb; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); -webkit-transition: 0.1s linear background-image; transition: 0.1s linear background-image; overflow: visible; } .redux-container .ui-button-primary, .control-section-redux .ui-button-primary, .control-panel-redux .ui-button-primary, .redux-metabox .ui-button-primary { color: #fff; background-color: #0064cd; background-repeat: repeat-x; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd)); background-image: -webkit-linear-gradient(top, #049cdb, #0064cd); background-image: -webkit-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd)); background-image: linear-gradient(to bottom, #049cdb, #0064cd); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#049cdb", endColorstr="#0064cd", GradientType=0); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-color: #0064cd #0064cd #003f81; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); } .redux-container .ui-button-success, .control-section-redux .ui-button-success, .control-panel-redux .ui-button-success, .redux-metabox .ui-button-success { color: #fff; background-color: #57a957; background-repeat: repeat-x; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957)); background-image: -webkit-linear-gradient(top, #62c462, #57a957); background-image: -webkit-gradient(linear, left top, left bottom, from(#62c462), to(#57a957)); background-image: linear-gradient(to bottom, #62c462, #57a957); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#62c462", endColorstr="#57a957", GradientType=0); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-color: #57a957 #57a957 #3d773d; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); } .redux-container .ui-button-error, .control-section-redux .ui-button-error, .control-panel-redux .ui-button-error, .redux-metabox .ui-button-error { color: #fff; background-color: #c43c35; background-repeat: repeat-x; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35)); background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); background-image: -webkit-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35)); background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ee5f5b", endColorstr="#c43c35", GradientType=0); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-color: #c43c35 #c43c35 #882a25; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); } .redux-container .ui-button-icon-only, .control-section-redux .ui-button-icon-only, .control-panel-redux .ui-button-icon-only, .redux-metabox .ui-button-icon-only { width: 2.2em; } .redux-container .ui-button-icons-only, .control-section-redux .ui-button-icons-only, .control-panel-redux .ui-button-icons-only, .redux-metabox .ui-button-icons-only { width: 3.4em; } .redux-container button.ui-button-icons-only, .control-section-redux button.ui-button-icons-only, .control-panel-redux button.ui-button-icons-only, .redux-metabox button.ui-button-icons-only { width: 3.7em; } .redux-container .ui-button .ui-button-text, .control-section-redux .ui-button .ui-button-text, .control-panel-redux .ui-button .ui-button-text, .redux-metabox .ui-button .ui-button-text { display: block; } .redux-container .ui-button-icon-only .ui-button-text, .redux-container .ui-button-icons-only .ui-button-text, .control-section-redux .ui-button-icon-only .ui-button-text, .control-section-redux .ui-button-icons-only .ui-button-text, .control-panel-redux .ui-button-icon-only .ui-button-text, .control-panel-redux .ui-button-icons-only .ui-button-text, .redux-metabox .ui-button-icon-only .ui-button-text, .redux-metabox .ui-button-icons-only .ui-button-text { padding: 0.4em; text-indent: -9999999px; /*tempfix*/ display: none; } .redux-container .ui-button-text-icon-primary .ui-button-text, .redux-container .ui-button-text-icons .ui-button-text, .control-section-redux .ui-button-text-icon-primary .ui-button-text, .control-section-redux .ui-button-text-icons .ui-button-text, .control-panel-redux .ui-button-text-icon-primary .ui-button-text, .control-panel-redux .ui-button-text-icons .ui-button-text, .redux-metabox .ui-button-text-icon-primary .ui-button-text, .redux-metabox .ui-button-text-icons .ui-button-text { padding: 0.4em 1em 0.4em 2.1em; } .redux-container .ui-button-text-icon-secondary .ui-button-text, .redux-container .ui-button-text-icons .ui-button-text, .control-section-redux .ui-button-text-icon-secondary .ui-button-text, .control-section-redux .ui-button-text-icons .ui-button-text, .control-panel-redux .ui-button-text-icon-secondary .ui-button-text, .control-panel-redux .ui-button-text-icons .ui-button-text, .redux-metabox .ui-button-text-icon-secondary .ui-button-text, .redux-metabox .ui-button-text-icons .ui-button-text { padding: 0.4em 2.1em 0.4em 1em; } .redux-container .ui-button-text-icons .ui-button-text, .control-section-redux .ui-button-text-icons .ui-button-text, .control-panel-redux .ui-button-text-icons .ui-button-text, .redux-metabox .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } .redux-container .ui-button-icon-only .ui-icon, .redux-container .ui-button-text-icon-primary .ui-icon, .redux-container .ui-button-text-icon-secondary .ui-icon, .redux-container .ui-button-text-icons .ui-icon, .redux-container .ui-button-icons-only .ui-icon, .control-section-redux .ui-button-icon-only .ui-icon, .control-section-redux .ui-button-text-icon-primary .ui-icon, .control-section-redux .ui-button-text-icon-secondary .ui-icon, .control-section-redux .ui-button-text-icons .ui-icon, .control-section-redux .ui-button-icons-only .ui-icon, .control-panel-redux .ui-button-icon-only .ui-icon, .control-panel-redux .ui-button-text-icon-primary .ui-icon, .control-panel-redux .ui-button-text-icon-secondary .ui-icon, .control-panel-redux .ui-button-text-icons .ui-icon, .control-panel-redux .ui-button-icons-only .ui-icon, .redux-metabox .ui-button-icon-only .ui-icon, .redux-metabox .ui-button-text-icon-primary .ui-icon, .redux-metabox .ui-button-text-icon-secondary .ui-icon, .redux-metabox .ui-button-text-icons .ui-icon, .redux-metabox .ui-button-icons-only .ui-icon { top: 50%; margin-top: -3px; margin-bottom: 3px; } .redux-container .ui-button-icon-only .ui-icon, .control-section-redux .ui-button-icon-only .ui-icon, .control-panel-redux .ui-button-icon-only .ui-icon, .redux-metabox .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } .redux-container .ui-button-text-icon-primary .ui-button-icon-primary, .redux-container .ui-button-text-icons .ui-button-icon-primary, .redux-container .ui-button-icons-only .ui-button-icon-primary, .control-section-redux .ui-button-text-icon-primary .ui-button-icon-primary, .control-section-redux .ui-button-text-icons .ui-button-icon-primary, .control-section-redux .ui-button-icons-only .ui-button-icon-primary, .control-panel-redux .ui-button-text-icon-primary .ui-button-icon-primary, .control-panel-redux .ui-button-text-icons .ui-button-icon-primary, .control-panel-redux .ui-button-icons-only .ui-button-icon-primary, .redux-metabox .ui-button-text-icon-primary .ui-button-icon-primary, .redux-metabox .ui-button-text-icons .ui-button-icon-primary, .redux-metabox .ui-button-icons-only .ui-button-icon-primary { left: 0.5em; } .redux-container .ui-button-text-icon-secondary .ui-button-icon-secondary, .redux-container .ui-button-text-icons .ui-button-icon-secondary, .redux-container .ui-button-icons-only .ui-button-icon-secondary, .control-section-redux .ui-button-text-icon-secondary .ui-button-icon-secondary, .control-section-redux .ui-button-text-icons .ui-button-icon-secondary, .control-section-redux .ui-button-icons-only .ui-button-icon-secondary, .control-panel-redux .ui-button-text-icon-secondary .ui-button-icon-secondary, .control-panel-redux .ui-button-text-icons .ui-button-icon-secondary, .control-panel-redux .ui-button-icons-only .ui-button-icon-secondary, .redux-metabox .ui-button-text-icon-secondary .ui-button-icon-secondary, .redux-metabox .ui-button-text-icons .ui-button-icon-secondary, .redux-metabox .ui-button-icons-only .ui-button-icon-secondary { right: 0.5em; } .redux-container .ui-button-text-icons .ui-button-icon-secondary, .redux-container .ui-button-icons-only .ui-button-icon-secondary, .control-section-redux .ui-button-text-icons .ui-button-icon-secondary, .control-section-redux .ui-button-icons-only .ui-button-icon-secondary, .control-panel-redux .ui-button-text-icons .ui-button-icon-secondary, .control-panel-redux .ui-button-icons-only .ui-button-icon-secondary, .redux-metabox .ui-button-text-icons .ui-button-icon-secondary, .redux-metabox .ui-button-icons-only .ui-button-icon-secondary { right: 0.5em; } .redux-container .ui-buttonset, .control-section-redux .ui-buttonset, .control-panel-redux .ui-buttonset, .redux-metabox .ui-buttonset { margin-right: 7px; } .redux-container .ui-buttonset .ui-state-active, .control-section-redux .ui-buttonset .ui-state-active, .control-panel-redux .ui-buttonset .ui-state-active, .redux-metabox .ui-buttonset .ui-state-active { color: #fff; background-color: #0064cd; background-repeat: repeat-x; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd)); background-image: -webkit-linear-gradient(top, #049cdb, #0064cd); background-image: -webkit-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd)); background-image: linear-gradient(to bottom, #049cdb, #0064cd); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#049cdb", endColorstr="#0064cd", GradientType=0); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-color: #0064cd #0064cd #003f81; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); } .redux-container .ui-buttonset .ui-button, .control-section-redux .ui-buttonset .ui-button, .control-panel-redux .ui-buttonset .ui-button, .redux-metabox .ui-buttonset .ui-button { margin-left: 0; margin-right: 0; } .redux-container button.ui-button::-moz-focus-inner, .control-section-redux button.ui-button::-moz-focus-inner, .control-panel-redux button.ui-button::-moz-focus-inner, .redux-metabox button.ui-button::-moz-focus-inner { border: 0; padding: 0; } .redux-container .ui-datepicker, .control-section-redux .ui-datepicker, .control-panel-redux .ui-datepicker, .redux-metabox .ui-datepicker { width: 17em; padding: 0.2em 0.2em 0; display: none; } .redux-container .ui-datepicker .ui-datepicker-header, .control-section-redux .ui-datepicker .ui-datepicker-header, .control-panel-redux .ui-datepicker .ui-datepicker-header, .redux-metabox .ui-datepicker .ui-datepicker-header { position: relative; padding: 0.2em 0; border: 0; font-weight: bold; width: 100%; padding: 4px 0; background-color: #f5f5f5; color: #808080; } .redux-container .ui-datepicker .ui-datepicker-prev, .redux-container .ui-datepicker .ui-datepicker-next, .control-section-redux .ui-datepicker .ui-datepicker-prev, .control-section-redux .ui-datepicker .ui-datepicker-next, .control-panel-redux .ui-datepicker .ui-datepicker-prev, .control-panel-redux .ui-datepicker .ui-datepicker-next, .redux-metabox .ui-datepicker .ui-datepicker-prev, .redux-metabox .ui-datepicker .ui-datepicker-next { position: absolute; top: 2px; width: 1.8em; height: 1.8em; } .redux-container .ui-datepicker .ui-datepicker-prev, .control-section-redux .ui-datepicker .ui-datepicker-prev, .control-panel-redux .ui-datepicker .ui-datepicker-prev, .redux-metabox .ui-datepicker .ui-datepicker-prev { left: 2px; } .redux-container .ui-datepicker .ui-datepicker-next, .control-section-redux .ui-datepicker .ui-datepicker-next, .control-panel-redux .ui-datepicker .ui-datepicker-next, .redux-metabox .ui-datepicker .ui-datepicker-next { right: 2px; } .redux-container .ui-datepicker .ui-datepicker-prev span, .redux-container .ui-datepicker .ui-datepicker-next span, .control-section-redux .ui-datepicker .ui-datepicker-prev span, .control-section-redux .ui-datepicker .ui-datepicker-next span, .control-panel-redux .ui-datepicker .ui-datepicker-prev span, .control-panel-redux .ui-datepicker .ui-datepicker-next span, .redux-metabox .ui-datepicker .ui-datepicker-prev span, .redux-metabox .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } .redux-container .ui-datepicker .ui-datepicker-title, .control-section-redux .ui-datepicker .ui-datepicker-title, .control-panel-redux .ui-datepicker .ui-datepicker-title, .redux-metabox .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } .redux-container .ui-datepicker .ui-datepicker-title select, .control-section-redux .ui-datepicker .ui-datepicker-title select, .control-panel-redux .ui-datepicker .ui-datepicker-title select, .redux-metabox .ui-datepicker .ui-datepicker-title select { font-size: 1em; margin: 1px 0; } .redux-container .ui-datepicker select.ui-datepicker-month-year, .control-section-redux .ui-datepicker select.ui-datepicker-month-year, .control-panel-redux .ui-datepicker select.ui-datepicker-month-year, .redux-metabox .ui-datepicker select.ui-datepicker-month-year { width: 100%; } .redux-container .ui-datepicker select.ui-datepicker-month, .redux-container .ui-datepicker select.ui-datepicker-year, .control-section-redux .ui-datepicker select.ui-datepicker-month, .control-section-redux .ui-datepicker select.ui-datepicker-year, .control-panel-redux .ui-datepicker select.ui-datepicker-month, .control-panel-redux .ui-datepicker select.ui-datepicker-year, .redux-metabox .ui-datepicker select.ui-datepicker-month, .redux-metabox .ui-datepicker select.ui-datepicker-year { width: 49%; } .redux-container .ui-datepicker table, .control-section-redux .ui-datepicker table, .control-panel-redux .ui-datepicker table, .redux-metabox .ui-datepicker table { width: 100%; font-size: 0.9em; border-collapse: collapse; margin: 0 0 0.4em; } .redux-container .ui-datepicker th, .control-section-redux .ui-datepicker th, .control-panel-redux .ui-datepicker th, .redux-metabox .ui-datepicker th { padding: 0.7em 0.3em; text-align: center; font-weight: bold; border: 0; } .redux-container .ui-datepicker td, .control-section-redux .ui-datepicker td, .control-panel-redux .ui-datepicker td, .redux-metabox .ui-datepicker td { border: 0; padding: 1px; } .redux-container .ui-datepicker td span, .redux-container .ui-datepicker td a, .control-section-redux .ui-datepicker td span, .control-section-redux .ui-datepicker td a, .control-panel-redux .ui-datepicker td span, .control-panel-redux .ui-datepicker td a, .redux-metabox .ui-datepicker td span, .redux-metabox .ui-datepicker td a { display: block; padding: 0.2em; text-align: right; text-decoration: none; } .redux-container .ui-datepicker .ui-datepicker-buttonpane, .control-section-redux .ui-datepicker .ui-datepicker-buttonpane, .control-panel-redux .ui-datepicker .ui-datepicker-buttonpane, .redux-metabox .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: 0.7em 0 0 0; padding: 0 0.2em; border-left: 0; border-right: 0; border-bottom: 0; } .redux-container .ui-datepicker .ui-datepicker-buttonpane button, .control-section-redux .ui-datepicker .ui-datepicker-buttonpane button, .control-panel-redux .ui-datepicker .ui-datepicker-buttonpane button, .redux-metabox .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: 0.5em 0.2em 0.4em; cursor: pointer; padding: 0.2em 0.6em 0.3em 0.6em; width: auto; overflow: visible; } .redux-container .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current, .control-section-redux .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current, .control-panel-redux .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current, .redux-metabox .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float: left; } .redux-container .ui-datepicker.ui-datepicker-multi, .control-section-redux .ui-datepicker.ui-datepicker-multi, .control-panel-redux .ui-datepicker.ui-datepicker-multi, .redux-metabox .ui-datepicker.ui-datepicker-multi { width: auto; } .redux-container .ui-datepicker-multi .ui-datepicker-group, .control-section-redux .ui-datepicker-multi .ui-datepicker-group, .control-panel-redux .ui-datepicker-multi .ui-datepicker-group, .redux-metabox .ui-datepicker-multi .ui-datepicker-group { float: left; } .redux-container .ui-datepicker-multi .ui-datepicker-group table, .control-section-redux .ui-datepicker-multi .ui-datepicker-group table, .control-panel-redux .ui-datepicker-multi .ui-datepicker-group table, .redux-metabox .ui-datepicker-multi .ui-datepicker-group table { width: 95%; margin: 0 auto 0.4em; } .redux-container .ui-datepicker-multi-2 .ui-datepicker-group, .control-section-redux .ui-datepicker-multi-2 .ui-datepicker-group, .control-panel-redux .ui-datepicker-multi-2 .ui-datepicker-group, .redux-metabox .ui-datepicker-multi-2 .ui-datepicker-group { width: 50%; } .redux-container .ui-datepicker-multi-3 .ui-datepicker-group, .control-section-redux .ui-datepicker-multi-3 .ui-datepicker-group, .control-panel-redux .ui-datepicker-multi-3 .ui-datepicker-group, .redux-metabox .ui-datepicker-multi-3 .ui-datepicker-group { width: 33.3%; } .redux-container .ui-datepicker-multi-4 .ui-datepicker-group, .control-section-redux .ui-datepicker-multi-4 .ui-datepicker-group, .control-panel-redux .ui-datepicker-multi-4 .ui-datepicker-group, .redux-metabox .ui-datepicker-multi-4 .ui-datepicker-group { width: 25%; } .redux-container .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, .control-section-redux .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, .control-panel-redux .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, .redux-metabox .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width: 0; } .redux-container .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header, .control-section-redux .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header, .control-panel-redux .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header, .redux-metabox .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width: 0; } .redux-container .ui-datepicker-multi .ui-datepicker-buttonpane, .control-section-redux .ui-datepicker-multi .ui-datepicker-buttonpane, .control-panel-redux .ui-datepicker-multi .ui-datepicker-buttonpane, .redux-metabox .ui-datepicker-multi .ui-datepicker-buttonpane { clear: left; } .redux-container .ui-datepicker-row-break, .control-section-redux .ui-datepicker-row-break, .control-panel-redux .ui-datepicker-row-break, .redux-metabox .ui-datepicker-row-break { clear: both; width: 100%; font-size: 0em; } .redux-container .ui-datepicker-rtl, .control-section-redux .ui-datepicker-rtl, .control-panel-redux .ui-datepicker-rtl, .redux-metabox .ui-datepicker-rtl { direction: rtl; } .redux-container .ui-datepicker-rtl .ui-datepicker-prev, .control-section-redux .ui-datepicker-rtl .ui-datepicker-prev, .control-panel-redux .ui-datepicker-rtl .ui-datepicker-prev, .redux-metabox .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } .redux-container .ui-datepicker-rtl .ui-datepicker-next, .control-section-redux .ui-datepicker-rtl .ui-datepicker-next, .control-panel-redux .ui-datepicker-rtl .ui-datepicker-next, .redux-metabox .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } .redux-container .ui-datepicker-rtl .ui-datepicker-prev:hover, .control-section-redux .ui-datepicker-rtl .ui-datepicker-prev:hover, .control-panel-redux .ui-datepicker-rtl .ui-datepicker-prev:hover, .redux-metabox .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } .redux-container .ui-datepicker-rtl .ui-datepicker-next:hover, .control-section-redux .ui-datepicker-rtl .ui-datepicker-next:hover, .control-panel-redux .ui-datepicker-rtl .ui-datepicker-next:hover, .redux-metabox .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } .redux-container .ui-datepicker-rtl .ui-datepicker-buttonpane, .control-section-redux .ui-datepicker-rtl .ui-datepicker-buttonpane, .control-panel-redux .ui-datepicker-rtl .ui-datepicker-buttonpane, .redux-metabox .ui-datepicker-rtl .ui-datepicker-buttonpane { clear: right; } .redux-container .ui-datepicker-rtl .ui-datepicker-buttonpane button, .control-section-redux .ui-datepicker-rtl .ui-datepicker-buttonpane button, .control-panel-redux .ui-datepicker-rtl .ui-datepicker-buttonpane button, .redux-metabox .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } .redux-container .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, .control-section-redux .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, .control-panel-redux .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, .redux-metabox .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float: right; } .redux-container .ui-datepicker-rtl .ui-datepicker-group, .control-section-redux .ui-datepicker-rtl .ui-datepicker-group, .control-panel-redux .ui-datepicker-rtl .ui-datepicker-group, .redux-metabox .ui-datepicker-rtl .ui-datepicker-group { float: right; } .redux-container .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, .control-section-redux .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, .control-panel-redux .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, .redux-metabox .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width: 0; border-left-width: 1px; } .redux-container .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header, .control-section-redux .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header, .control-panel-redux .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header, .redux-metabox .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width: 0; border-left-width: 1px; } .redux-container .ui-datepicker-cover, .control-section-redux .ui-datepicker-cover, .control-panel-redux .ui-datepicker-cover, .redux-metabox .ui-datepicker-cover { display: none; /*sorry for IE5*/ display: block; /*sorry for IE5*/ position: absolute; /*must have*/ z-index: -1; /*must have*/ -webkit-filter: mask(); filter: mask(); /*must have*/ top: -4px; /*must have*/ left: -4px; /*must have*/ width: 200px; /*must have*/ height: 200px; /*must have*/ } .redux-container .ui-datepicker th, .control-section-redux .ui-datepicker th, .control-panel-redux .ui-datepicker th, .redux-metabox .ui-datepicker th { font-weight: bold; color: gray; } .redux-container .ui-datepicker-today a:hover, .control-section-redux .ui-datepicker-today a:hover, .control-panel-redux .ui-datepicker-today a:hover, .redux-metabox .ui-datepicker-today a:hover { background-color: #808080; color: #fff; } .redux-container .ui-datepicker-today a, .control-section-redux .ui-datepicker-today a, .control-panel-redux .ui-datepicker-today a, .redux-metabox .ui-datepicker-today a { background-color: #bfbfbf; cursor: pointer; padding: 0 4px; margin-bottom: 0; } .redux-container .ui-datepicker td a, .control-section-redux .ui-datepicker td a, .control-panel-redux .ui-datepicker td a, .redux-metabox .ui-datepicker td a { margin-bottom: 0; border: 0; } .redux-container .ui-datepicker td:hover, .control-section-redux .ui-datepicker td:hover, .control-panel-redux .ui-datepicker td:hover, .redux-metabox .ui-datepicker td:hover { color: #fff; } .redux-container .ui-datepicker td .ui-state-default, .control-section-redux .ui-datepicker td .ui-state-default, .control-panel-redux .ui-datepicker td .ui-state-default, .redux-metabox .ui-datepicker td .ui-state-default { border: 0; background: none; margin-bottom: 0; padding: 5px; color: gray; text-align: center; -webkit-filter: none; filter: none; } .redux-container .ui-datepicker td .ui-state-active, .control-section-redux .ui-datepicker td .ui-state-active, .control-panel-redux .ui-datepicker td .ui-state-active, .redux-metabox .ui-datepicker td .ui-state-active { background: #bfbfbf; margin-bottom: 0; font-size: normal; text-shadow: 0; color: #fff; border-radius: 4px; } .redux-container .ui-datepicker td .ui-state-hover, .control-section-redux .ui-datepicker td .ui-state-hover, .control-panel-redux .ui-datepicker td .ui-state-hover, .redux-metabox .ui-datepicker td .ui-state-hover { color: #fff; background: #0064cd; background-color: #0064cd; background-repeat: repeat-x; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd)); background-image: -webkit-linear-gradient(top, #049cdb, #0064cd); background-image: -webkit-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd)); background-image: linear-gradient(to bottom, #049cdb, #0064cd); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#049cdb", endColorstr="#0064cd", GradientType=0); text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); border-color: #0064cd #0064cd #003f81; border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); border-radius: 4px; } .redux-container .ui-widget-content, .control-section-redux .ui-widget-content, .control-panel-redux .ui-widget-content, .redux-metabox .ui-widget-content { border: 1px solid #dfdfdf; } .redux-container .ui-datepicker table, .control-section-redux .ui-datepicker table, .control-panel-redux .ui-datepicker table, .redux-metabox .ui-datepicker table { background: #fff; } .redux-container .placeholder, .control-section-redux .placeholder, .control-panel-redux .placeholder, .redux-metabox .placeholder { background: #f9f9f9 !important; border: 1px dashed #bbb !important; } .wp-customizer #ui-datepicker-div { z-index: 999999 !important; } /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImpxdWVyeS11aS0xLjEwLjAuY3VzdG9tLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUE7QUFBQTtDQUVJOzs7QUFLQTtBQUFBO0NBQ0k7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBOztBQUVBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTs7QUFFQTtBQUFBO0NBQ0k7O0FBR0o7QUFBQTtDQUNJO0NBQ0E7O0FBSVI7QUFBQTtDQUNJO0NBQ0E7O0FBR0o7QUFBQTtDQUNJO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFHSjtBQUFBO0NBQ0k7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBOztBQUdKO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFJUjtBQUFBO0NBQ0k7Q0FDQTs7QUFFQTtBQUFBO0NBQ0k7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUlJO0NBQ0E7O0FBR0o7QUFBQTtDQUNJOztBQUlSO0FBQUE7QUFBQTtDQUVJOztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FJSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBSUk7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUlJOztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FJSTs7QUFHSjtBQUFBO0NBQ0k7Q0FDQTtDQUNBOztBQUdKO0FBQUE7Q0FDSTs7QUFHSjtBQUFBO0NBQ0k7Q0FDQTtDQUNBO0NBQ0E7O0FBR0o7QUFBQTtDQUNJO0NBQ0E7O0FBR0o7QUFBQTtDQUNJO0NBQ0E7Q0FDQTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtDQUVJO0NBQ0E7Q0FDQTs7QUFHSjtBQUFBO0NBQ0k7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQU9JO0NBQ0E7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUlJO0NBQ0E7Q0FDQTtDQUNBOztBQUdKO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFFQTtBQUFBO0NBQ0k7O0FBSVI7QUFBQTtDQUNJO0NBQ0E7O0FBRUE7QUFBQTtDQUNJO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0FBSVI7QUFBQTtDQUNJOztBQUdKO0FBQUE7QUFBQTtBQUFBO0NBRUk7O0FBR0o7QUFBQTtDQUNJOztBQUdKO0FBQUE7Q0FDSTs7QUFHSjtBQUFBO0NBQ0k7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBOzs7QUFJUjtDQUNJO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7OztBQUdKO0NBQ0k7OztBQUdKO0FBQUE7QUFBQTtBQUFBO0FBSUk7QUFBQTtBQU9BO0FBQUE7QUFHQTtBQVNBO0FBQUE7QUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUE7QUFBQTtBQXFCQTtBQUFBO0FBNkVBO0FBQUE7QUErR0U7QUFHRjtBQUFBO0FBR0E7QUE4QkE7QUF5WkE7QUFxSEE7QUFBQTtBQUdBO0FBa0NBO0FBbUJBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBO0FBZ0RBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXlDRTtBQXFEQTtBQUM2QjtBQVEvQjtBQXdCQTtBQUNBO0FBRUE7QUE2QkE7QUEwQkE7QUFJRTtBQUVGO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTJHQTtBQW1DQTtBQXlDQTs7QUE1d0NBO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBUUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTs7QUF5Qko7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7O0FBR0o7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUtKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUlJO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUVBO0NBRUE7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFLSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHSTtDQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQU1JO0NBQ0E7Q0FDQTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUlJO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBR0k7Q0FDQTtDQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUdJO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFPSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHSTtDQUNBO0NBQ0E7Q0FDQTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FLSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0FBSUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBR0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBS0k7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFJSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHSTtDQUNBO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBR0k7Q0FDQTtDQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBUUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBRUk7O0FBSUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBUUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FJSTtDQUNBO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FJSTtDQUNBO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FJSTtDQUNBO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FJSTtDQUNBO0NBQ0E7O0FBS0o7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7O0FBR0o7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBOztBQWVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJO0NBQ0E7Q0FDQTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7Q0FDQTtDQUNBO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFjSjtBQUFBO0FBQUE7QUFBQTtDQUVJO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBRUE7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBOztBQUdKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0FBSUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtDQUNJO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBOztBQUdKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBR0o7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUtKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJO0NBQ0E7Q0FDQTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBRUk7O0FBRUo7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7Q0FDQTs7QUFNSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBS0k7Q0FDQTtDQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7Q0FDQTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FHSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBRUk7O0FBTUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7Q0FDQTs7QUFJSjtBQUFBO0FBQUE7QUFBQTtDQUNJO0NBQ0E7O0FBWUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FFSTtDQUNBO0NBQ0E7Q0FDQTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBR0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUVJO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJO0NBQ0E7Q0FDQTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBRUk7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJO0NBQ0E7Q0FDQTtDQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7Q0FDQTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBRUk7Q0FDQTtDQUNBO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFJSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7Q0FDQTtDQUNBOztBQUlKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7Q0FDQTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJO0NBQ0E7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFFSjtBQUFBO0FBQUE7QUFBQTtDQUNJOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBOztBQUVKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7Q0FDQTs7QUFJSjtBQUFBO0FBQUE7QUFBQTtDQUNJO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtDQUNJO0NBQ0E7O0FBR0o7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBOztBQUdKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7Q0FDQTtDQUNBO0NBQ0E7O0FBS0o7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBOztBQUdKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBR0o7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTs7QUFJSjtBQUFBO0FBQUE7QUFBQTtDQUNJO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7O0FBR0o7QUFBQTtBQUFBO0FBQUE7Q0FDSTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBQ0E7Q0FDQTtDQUNBOztBQUdKO0FBQUE7QUFBQTtBQUFBO0NBQ0k7O0FBRUo7QUFBQTtBQUFBO0FBQUE7Q0FDSTs7QUFHSjtBQUFBO0FBQUE7QUFBQTtDQUNJO0NBQ0E7OztBQU1KO0NBQ0kiLCJmaWxlIjoianF1ZXJ5LXVpLTEuMTAuMC5jdXN0b20uY3NzIn0= */ /*# sourceMappingURL=jquery-ui-1.10.0.custom.css.map */ /* global jQuery, document */ /** Add any Javascript for your extension here. Use of this file is optional and is only for those * who wish to output the file CSS using a SASS compiler. * * Please be sure to rename the 'my-extension' part of the file name to the name of your extension. Pleas use * dashes instead of underscores. */ $( document ).ready( function() { } )( jQuery ); /** * Text editor - all contenteditable text-editing setup * * Reads (via globals): * SFE.Context - .draftEditState * SFE.ElementPrep - .getCleanHTML, .getContent * SFE.OverlayManager * SFE.PositionManager - .positionFloatingElements * SFE.FocusManager - .createFocusManager * SFE.handleInlineSave - set by SaveManager * SFE.closeInPlaceEditor - set by EditorLifecycle * SFE.startMediaEditing - set by frontend-inline-edit.js (via SFE.MediaEditor) * SFE.MWPEditor - rich text editor class * SFE.ManagerData - .handlers * * Exposes: SFE.TextEditor * { startTextEditing, startMultiComponentEditing, refreshEditableComponents } */ (function() { 'use strict'; window.MWP = window.MWP || {}; window.MWP.SFE = window.MWP.SFE || {}; const SFE = window.MWP.SFE; SFE.ManagerData = SFE.ManagerData || {}; const MWPEditor = SFE.MWPEditor; function normalizeEditorFormatsSpec(rawFormats, depth = 0) { if (depth > 3 || !Array.isArray(rawFormats)) { return null; } const normalized = []; rawFormats.forEach((item) => { if (typeof item === 'string') { const token = item.trim(); if (token) { normalized.push(token); } return; } if (Array.isArray(item)) { const group = normalizeEditorFormatsSpec(item, depth + 1); if (Array.isArray(group) && group.length) { normalized.push(group); } } }); return normalized.length ? normalized : null; } function cloneEditorFormatsSpec(formatsSpec) { if (!Array.isArray(formatsSpec)) return null; return formatsSpec.map(item => ( Array.isArray(item) ? cloneEditorFormatsSpec(item) : item )); } function normalizeInlineFormatCapability(rawCapability) { if (!rawCapability || typeof rawCapability !== 'object' || Array.isArray(rawCapability)) { return null; } const tag = typeof rawCapability.tag === 'string' ? rawCapability.tag.trim().toLowerCase() : ''; if (!tag) return null; const normalizeStringArray = (rawValue) => { if (!Array.isArray(rawValue)) return null; const values = rawValue .map((value) => (typeof value === 'string' ? value.trim() : '')) .filter(Boolean); return values.length ? values : null; }; const normalized = { tag }; const attributes = normalizeStringArray(rawCapability.attributes); const requiredAttributes = normalizeStringArray(rawCapability.requiredAttributes); const allowedTargets = normalizeStringArray(rawCapability.allowedTargets); const allowedRelTokens = normalizeStringArray(rawCapability.allowedRelTokens); const allowedProtocols = normalizeStringArray(rawCapability.allowedProtocols); if (attributes) normalized.attributes = attributes; if (requiredAttributes) normalized.requiredAttributes = requiredAttributes; if (allowedTargets) normalized.allowedTargets = allowedTargets; if (allowedRelTokens) normalized.allowedRelTokens = allowedRelTokens; if (allowedProtocols) normalized.allowedProtocols = allowedProtocols; if (typeof rawCapability.allowsRelativeUrls === 'boolean') { normalized.allowsRelativeUrls = rawCapability.allowsRelativeUrls; } if (typeof rawCapability.allowsAnchorLinks === 'boolean') { normalized.allowsAnchorLinks = rawCapability.allowsAnchorLinks; } if (typeof rawCapability.autoProtocol === 'string' && rawCapability.autoProtocol.trim()) { normalized.autoProtocol = rawCapability.autoProtocol.trim().toLowerCase(); } if (typeof rawCapability.preservesUnknownRelTokens === 'boolean') { normalized.preservesUnknownRelTokens = rawCapability.preservesUnknownRelTokens; } return normalized; } function cloneInlineFormatCapabilities(inlineFormatCapabilities) { if (!inlineFormatCapabilities || typeof inlineFormatCapabilities !== 'object' || Array.isArray(inlineFormatCapabilities)) { return null; } const cloned = {}; Object.keys(inlineFormatCapabilities).forEach((key) => { const cleanKey = typeof key === 'string' ? key.trim() : ''; if (!cleanKey) return; const capability = normalizeInlineFormatCapability(inlineFormatCapabilities[key]); if (!capability) return; cloned[cleanKey] = capability; }); return Object.keys(cloned).length ? cloned : null; } function normalizeAttributeCapabilityValues(rawValues) { if (!Array.isArray(rawValues)) return null; const values = rawValues.filter(value => ( typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || value === null )); return values.length ? values : null; } function normalizeAttributeCapability(rawCapability) { if (!rawCapability || typeof rawCapability !== 'object' || Array.isArray(rawCapability)) { return null; } const normalized = {}; const attribute = typeof rawCapability.attribute === 'string' ? rawCapability.attribute.trim() : ''; const attributes = Array.isArray(rawCapability.attributes) ? rawCapability.attributes .map(value => (typeof value === 'string' ? value.trim() : '')) .filter(Boolean) : null; if (attribute) { normalized.attribute = attribute; } else if (attributes && attributes.length) { normalized.attributes = attributes; } else { return null; } const values = normalizeAttributeCapabilityValues(rawCapability.values); if (values) { normalized.values = values; } if ( Object.prototype.hasOwnProperty.call(rawCapability, 'unsetValue') && ( typeof rawCapability.unsetValue === 'string' || typeof rawCapability.unsetValue === 'number' || typeof rawCapability.unsetValue === 'boolean' || rawCapability.unsetValue === null ) ) { normalized.unsetValue = rawCapability.unsetValue; } return normalized; } function cloneAttributeCapabilities(attributeCapabilities) { if (!attributeCapabilities || typeof attributeCapabilities !== 'object' || Array.isArray(attributeCapabilities)) { return null; } const cloned = {}; Object.keys(attributeCapabilities).forEach((key) => { const cleanKey = typeof key === 'string' ? key.trim() : ''; if (!cleanKey) return; const capability = normalizeAttributeCapability(attributeCapabilities[key]); if (!capability) return; cloned[cleanKey] = { ...capability }; if (Array.isArray(capability.attributes)) { cloned[cleanKey].attributes = [ ...capability.attributes ]; } if (Array.isArray(capability.values)) { cloned[cleanKey].values = [ ...capability.values ]; } }); return Object.keys(cloned).length ? cloned : null; } function normalizeEditorOperationValues(rawValues) { if (!Array.isArray(rawValues)) return null; const values = rawValues.filter(value => ( typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || value === null )); return values.length ? values : null; } function normalizeEditorOperationStringArray(rawValues) { if (!Array.isArray(rawValues)) return null; const values = rawValues .map(value => (typeof value === 'string' ? value.trim() : '')) .filter(Boolean); return values.length ? values : null; } function normalizeEditorOperation(rawOperation) { if (!rawOperation || typeof rawOperation !== 'object' || Array.isArray(rawOperation)) { return null; } const id = typeof rawOperation.id === 'string' ? rawOperation.id.trim() : ''; const kind = typeof rawOperation.kind === 'string' ? rawOperation.kind.trim() : ''; const component = typeof rawOperation.component === 'string' ? rawOperation.component.trim() : ''; if (!id || !kind || !component) { return null; } const normalized = { id, kind, component }; const attribute = typeof rawOperation.attribute === 'string' ? rawOperation.attribute.trim() : ''; const format = typeof rawOperation.format === 'string' ? rawOperation.format.trim() : ''; const attributes = normalizeEditorOperationStringArray(rawOperation.attributes); const formats = normalizeEditorOperationStringArray(rawOperation.formats); const targetModes = normalizeEditorOperationStringArray(rawOperation.targetModes); const values = normalizeEditorOperationValues(rawOperation.values); if (attribute) { normalized.attribute = attribute; } if (attributes) { normalized.attributes = attributes; } if (format) { normalized.format = format; } if (formats) { normalized.formats = formats; } if (targetModes) { normalized.targetModes = targetModes; } if (values) { normalized.values = values; } if (Object.prototype.hasOwnProperty.call(rawOperation, 'unsetValue')) { normalized.unsetValue = rawOperation.unsetValue; } if (typeof rawOperation.preserveInlineFormatting === 'boolean') { normalized.preserveInlineFormatting = rawOperation.preserveInlineFormatting; } if (typeof rawOperation.preserveUnchangedText === 'boolean') { normalized.preserveUnchangedText = rawOperation.preserveUnchangedText; } if (typeof rawOperation.preserveUnspecifiedAttributes === 'boolean') { normalized.preserveUnspecifiedAttributes = rawOperation.preserveUnspecifiedAttributes; } if (typeof rawOperation.mergeRelTokens === 'boolean') { normalized.mergeRelTokens = rawOperation.mergeRelTokens; } return normalized; } function cloneEditorOperations(rawOperations) { if (!Array.isArray(rawOperations)) return null; const normalized = rawOperations .map(normalizeEditorOperation) .filter(Boolean); return normalized.length ? normalized : null; } /** * Resolve the concrete toolbar format config for one text component. * * @param {HTMLElement|null} element Active editable element. * @param {Object} runtimeOptions Normalized component editor options. * @returns {Array} Concrete toolbar format definitions. */ function resolveComponentFormats(element, runtimeOptions) { const toolbarManager = SFE.ToolbarManager || null; if (toolbarManager && typeof toolbarManager.resolveFormats === 'function') { return toolbarManager.resolveFormats(runtimeOptions, element); } return []; } /** * Execute one list indentation action for the active rich-text editor host. * * @param {Object|null} editor Active rich-text editor host. * @param {string} action Tab-mode action: `indent` or `outdent`. * @returns {void} */ function executeListTabAction(editor, action) { if (!editor || typeof editor.executeListStructureOperation !== 'function') { return; } const operationKind = action === 'indent' ? 'indent_list_item' : action === 'outdent' ? 'outdent_list_item' : ''; if (!operationKind) { return; } editor.executeListStructureOperation({ kind: operationKind, }); } /** * Place caret from click coordinates when available, otherwise at element end. */ function placeCaretInEditableElement(editableElement, clickEvent) { if (!editableElement) return; editableElement.focus(); setTimeout(() => { // Guard: element may have been detached from the document between the // time this setTimeout was scheduled and when it fires (e.g. during // rapid component switches or editor teardown). Calling addRange() on // a range whose boundary nodes are not in the document throws: // "addRange(): The given range isn't in document." if (!document.body.contains(editableElement)) return; const selection = window.getSelection(); const range = document.createRange(); const placeholderApi = SFE.RichTextPlaceholder || null; const placeholderCaret = ( placeholderApi && typeof placeholderApi.getCaretTarget === 'function' ) ? placeholderApi.getCaretTarget(editableElement) : null; if (placeholderCaret?.node) { // Guard placeholder node as well - it may reference a node inside // a ghost/placeholder element that was removed between ticks. if (!document.body.contains(placeholderCaret.node)) return; range.setStart(placeholderCaret.node, placeholderCaret.offset); range.collapse(true); selection.removeAllRanges(); selection.addRange(range); return; } if (clickEvent && clickEvent.clientX !== undefined && clickEvent.clientY !== undefined) { try { let clickRange = null; if (document.caretPositionFromPoint) { const pos = document.caretPositionFromPoint(clickEvent.clientX, clickEvent.clientY); if (pos) { clickRange = document.createRange(); clickRange.setStart(pos.offsetNode, pos.offset); clickRange.collapse(true); } } else if (document.caretRangeFromPoint) { clickRange = document.caretRangeFromPoint(clickEvent.clientX, clickEvent.clientY); } if (clickRange && editableElement.contains(clickRange.startContainer)) { selection.removeAllRanges(); selection.addRange(clickRange); return; } } catch (e) { /* ignore */ } } range.selectNodeContents(editableElement); range.collapse(false); selection.removeAllRanges(); selection.addRange(range); }, 0); } /** * Find the first selector match that belongs to this block root (not a nested block). */ function findScopedComponentElement(rootElement, selector) { if (!rootElement || !selector) return null; if (rootElement.matches(selector)) { const owner = rootElement.closest('[data-mwp-sfe-uuid]'); if (!owner || owner === rootElement) return rootElement; } const matches = rootElement.querySelectorAll(selector); for (const candidate of matches) { const owner = candidate.closest('[data-mwp-sfe-uuid]'); if (!owner || owner === rootElement) { return candidate; } } return null; } function getEditableComponentFromTarget(components, target) { if (!target) return null; const targetEl = target.nodeType === Node.ELEMENT_NODE ? target : target.parentElement; if (!targetEl) return null; const distanceToAncestor = (descendant, ancestor) => { let steps = 0; let node = descendant; while (node && node !== ancestor) { node = node.parentElement; steps++; } return node === ancestor ? steps : null; }; let bestComponent = null; let bestScore = Number.POSITIVE_INFINITY; components.forEach(component => { if (!component?.element) return; let score = null; // Exact target match has highest priority. if (component.element === targetEl) { score = 0; } else { // Prefer the closest containing component when multiple components overlap. const containsDistance = distanceToAncestor(targetEl, component.element); if (containsDistance !== null) { score = containsDistance; } else if (isFileComponent(component) && targetEl.contains(component.element)) { // Fallback for file components when clicking a wrapper around the media element. const wrapperDistance = distanceToAncestor(component.element, targetEl); if (wrapperDistance !== null) { score = 100 + wrapperDistance; } } } if (score !== null && score < bestScore) { bestScore = score; bestComponent = component; } }); return bestComponent; } function resolveInitialEditableComponent(components, clickEvent, preferredComponentId = '') { const normalizedPreferredComponentId = String(preferredComponentId || '').trim(); if (normalizedPreferredComponentId) { const preferredComponent = components.find(component => component?.id === normalizedPreferredComponentId); if (preferredComponent) { return preferredComponent; } } const fromClick = getEditableComponentFromTarget(components, clickEvent?.target || null); if (fromClick) return fromClick; return components.find(component => component.default) || components[0] || null; } function normalizeComponentEditorOptions(rawEditorOptions) { if (!rawEditorOptions || typeof rawEditorOptions !== 'object') { return {}; } const normalized = {}; if (typeof rawEditorOptions.enterMode === 'string') { const mode = rawEditorOptions.enterMode.trim().toLowerCase(); if (mode === 'auto' || mode === 'always' || mode === 'never' || mode === 'linebreak') { normalized.enterMode = mode; } } if (typeof rawEditorOptions.linkUIMode === 'string') { const mode = rawEditorOptions.linkUIMode.trim().toLowerCase(); if (mode === 'auto' || mode === 'manual') { normalized.linkUIMode = mode; } } if (rawEditorOptions.tabMode && typeof rawEditorOptions.tabMode === 'object') { const tabMode = {}; const tabAction = typeof rawEditorOptions.tabMode.tab === 'string' ? rawEditorOptions.tabMode.tab.trim() : ''; const shiftTabAction = typeof rawEditorOptions.tabMode.shiftTab === 'string' ? rawEditorOptions.tabMode.shiftTab.trim() : ''; const isValidTabAction = (action) => ( action === 'none' || action === 'indent' || action === 'outdent' || action === 'nextComponent' || action === 'previousComponent' ); if (isValidTabAction(tabAction)) { tabMode.tab = tabAction; } if (isValidTabAction(shiftTabAction)) { tabMode.shiftTab = shiftTabAction; } if (Object.keys(tabMode).length) { normalized.tabMode = tabMode; } } if (rawEditorOptions.options && typeof rawEditorOptions.options === 'object') { const options = {}; if (rawEditorOptions.options.preserveNewlines === true) { options.preserveNewlines = true; } if (rawEditorOptions.options.newlinesToBR === true) { options.newlinesToBR = true; } if (Object.keys(options).length) { normalized.options = options; } } if (rawEditorOptions.formatTargets && typeof rawEditorOptions.formatTargets === 'object') { const targets = {}; Object.keys(rawEditorOptions.formatTargets).forEach((key) => { const cleanKey = typeof key === 'string' ? key.trim() : ''; const value = rawEditorOptions.formatTargets[key]; const cleanValue = typeof value === 'string' ? value.trim() : ''; if (!cleanKey || !cleanValue) return; targets[cleanKey] = cleanValue; }); if (Object.keys(targets).length) { normalized.formatTargets = targets; } } const formatsSpec = normalizeEditorFormatsSpec(rawEditorOptions.formats); if (formatsSpec) { normalized.formats = formatsSpec; } const inlineFormatCapabilities = cloneInlineFormatCapabilities(rawEditorOptions.inlineFormatCapabilities); if (inlineFormatCapabilities) { normalized.inlineFormatCapabilities = inlineFormatCapabilities; } const attributeCapabilities = cloneAttributeCapabilities(rawEditorOptions.attributeCapabilities); if (attributeCapabilities) { normalized.attributeCapabilities = attributeCapabilities; } const operations = cloneEditorOperations(rawEditorOptions.operations); if (operations) { normalized.operations = operations; } return normalized; } function normalizeComponentPlaceholder(rawPlaceholder) { if (typeof rawPlaceholder !== 'string') { return ''; } return rawPlaceholder.trim(); } /** * Normalize the schema media descriptor attached to a file component. * * @param {object|null} component Editable component definition. * @param {string} id Normalized component id. * @param {string} selector Normalized component selector. * @param {object|null} target Normalized schema target definition. * @returns {object|null} Normalized schema media descriptor, or null when invalid. */ function normalizeSchemaMediaDescriptor(component, id, selector, target) { const MediaHelper = SFE.MediaHelper || null; const rawDescriptor = component?.mediaDescriptor && typeof component.mediaDescriptor === 'object' ? component.mediaDescriptor : null; const descriptor = rawDescriptor || { componentId: id, scopeSelector: selector, targetSelector: target?.selector || '', attribute: target?.attribute || '', mediaType: target?.mediaType || '', }; if (!MediaHelper?.isSchemaMediaDescriptor?.(descriptor)) { return null; } return { componentId: typeof descriptor.componentId === 'string' && descriptor.componentId.trim() ? descriptor.componentId.trim() : id, scopeSelector: typeof descriptor.scopeSelector === 'string' && descriptor.scopeSelector.trim() ? descriptor.scopeSelector.trim() : selector, targetSelector: descriptor.targetSelector.trim(), attribute: descriptor.attribute.trim().toLowerCase(), mediaType: descriptor.mediaType.trim().toLowerCase(), }; } /** * Collect normalized editable schema components for the active block root. * * @param {HTMLElement} rootElement Active block root element. * @param {object} handler Active schema-backed handler. * @returns {Array} Normalized editable component definitions. */ function collectEditableComponents(rootElement, handler) { const ElementPrep = SFE.ElementPrep; const configured = handler?.client_config?.editableComponents; if (!Array.isArray(configured) || !configured.length) return []; const normalized = []; const seenIds = new Set(); configured.forEach((component, index) => { if (!component || typeof component !== 'object') return; const selector = typeof component.selector === 'string' ? component.selector.trim() : ''; if (!selector) return; const componentType = ( typeof component.type === 'string' && component.type.trim().toLowerCase() === 'file' ) ? 'file' : 'text'; const attribute = typeof component.attribute === 'string' ? component.attribute.trim() : ''; if (componentType !== 'file' && !attribute) return; const providedElement = component.element && component.element.nodeType === Node.ELEMENT_NODE ? component.element : null; const element = ( providedElement && (rootElement === providedElement || rootElement.contains(providedElement)) ) ? providedElement : findScopedComponentElement(rootElement, selector); if (!element) return; const idRaw = typeof component.id === 'string' ? component.id.trim() : ''; const id = idRaw || `component_${index + 1}`; if (seenIds.has(id)) return; seenIds.add(id); const normalizedComponent = { id, label: typeof component.label === 'string' && component.label.trim() ? component.label.trim() : id, selector, type: componentType, default: !!component.default, element, // Keep a lossless snapshot for emergency cancel restore fallback paths. originalRestoreOuterHTML: element.outerHTML, originalHTML: ElementPrep.getCleanHTML(element), originalOuterHTML: ElementPrep.getCleanHTML(element, true), editorOptions: normalizeComponentEditorOptions(component.editor), placeholder: normalizeComponentPlaceholder(component.placeholder), isGhost: !!component.isGhost || element.getAttribute('data-mwp-sfe-ghost') === '1', }; if (component.missingUI && typeof component.missingUI === 'object') { normalizedComponent.missingUI = component.missingUI; } if (componentType === 'file') { const target = component.target && typeof component.target === 'object' ? component.target : null; const targetSelector = typeof target?.selector === 'string' ? target.selector.trim() : ''; const targetAttribute = typeof target?.attribute === 'string' ? target.attribute.trim().toLowerCase() : ''; const mediaType = typeof target?.mediaType === 'string' ? target.mediaType.trim().toLowerCase() : ''; if (!targetSelector || !targetAttribute || !mediaType) return; normalizedComponent.target = { selector: targetSelector, attribute: targetAttribute, mediaType, }; normalizedComponent.mediaDescriptor = normalizeSchemaMediaDescriptor( component, id, selector, normalizedComponent.target ); if (!normalizedComponent.mediaDescriptor) return; normalizedComponent.urlBindingPath = typeof component.urlBindingPath === 'string' ? component.urlBindingPath.trim() : ''; normalizedComponent.idBindingPath = typeof component.idBindingPath === 'string' ? component.idBindingPath.trim() : ''; } else { normalizedComponent.attribute = attribute; } normalized.push(normalizedComponent); }); if (normalized.length && !normalized.some(component => component.default)) { normalized[0].default = true; } return normalized; } function stripEditableComponentState(component, editorState) { if (!component?.element) return; const elementPrep = SFE.ElementPrep || null; component.element.classList.remove( 'mwp-sfe-inline-editor', 'mwp-sfe-component-active', 'mwp-sfe-editable-component', 'mwp-sfe-editor-content' ); if (elementPrep && typeof elementPrep.pruneEmptyClassAttribute === 'function') { elementPrep.pruneEmptyClassAttribute(component.element); } component.element.removeAttribute('data-mwp-sfe-editable-component'); component.element.removeAttribute('data-mwp-sfe-active-component'); if (component.element._mwpEditor === editorState?.mwpEditor) { delete component.element._mwpEditor; } if (editorState?._mwpActiveComponentType !== 'text' || component.id !== editorState?.activeComponentId) { component.element.removeAttribute('contenteditable'); component.element.removeAttribute('spellcheck'); } } function applyEditableComponentState(component) { if (!component?.element) return; component.element.classList.add('mwp-sfe-editable-component'); component.element.dataset.mwpSfeEditableComponent = component.id; } function buildComponentEditorRuntimeOptions(editorState, component) { const runtimeOptions = { enterMode: 'auto', linkUIMode: 'auto', formatTargets: {}, }; if (editorState?.element) { runtimeOptions.blockRootElement = editorState.element; } const editorOptions = component?.editorOptions; if (!editorOptions || typeof editorOptions !== 'object') { return runtimeOptions; } if (typeof editorOptions.enterMode === 'string') { runtimeOptions.enterMode = editorOptions.enterMode; } if (typeof editorOptions.linkUIMode === 'string') { runtimeOptions.linkUIMode = editorOptions.linkUIMode; } if (editorOptions.formatTargets && typeof editorOptions.formatTargets === 'object') { runtimeOptions.formatTargets = { ...editorOptions.formatTargets }; } if (Array.isArray(editorOptions.formats)) { runtimeOptions.formats = cloneEditorFormatsSpec(editorOptions.formats); } if (editorOptions.inlineFormatCapabilities && typeof editorOptions.inlineFormatCapabilities === 'object') { const inlineFormatCapabilities = cloneInlineFormatCapabilities(editorOptions.inlineFormatCapabilities); if (inlineFormatCapabilities) { runtimeOptions.inlineFormatCapabilities = inlineFormatCapabilities; } } if (editorOptions.attributeCapabilities && typeof editorOptions.attributeCapabilities === 'object') { const attributeCapabilities = cloneAttributeCapabilities(editorOptions.attributeCapabilities); if (attributeCapabilities) { runtimeOptions.attributeCapabilities = attributeCapabilities; } } if (Array.isArray(editorOptions.operations)) { const operations = cloneEditorOperations(editorOptions.operations); if (operations) { runtimeOptions.operations = operations; } } if (editorOptions.options && typeof editorOptions.options === 'object') { runtimeOptions.options = { ...editorOptions.options }; } if (typeof component?.placeholder === 'string' && component.placeholder.trim()) { runtimeOptions.placeholder = component.placeholder.trim(); } if (typeof component?.id === 'string' && component.id.trim()) { runtimeOptions.componentId = component.id.trim(); } if (component?.missingUI && typeof component.missingUI === 'object') { runtimeOptions.missingUI = component.missingUI; } return runtimeOptions; } function isFileComponent(component) { return component?.type === 'file'; } function bindInlineEditButtons(editorState) { const actionsContainer = editorState?.actionsContainer; if (!actionsContainer) return; if (actionsContainer._saveBtn) { actionsContainer._saveBtn.addEventListener('click', e => { e.preventDefault(); e.stopImmediatePropagation(); SFE.handleInlineSave(editorState); }); } if (actionsContainer._cancelBtn) { actionsContainer._cancelBtn.addEventListener('click', e => { e.preventDefault(); e.stopImmediatePropagation(); SFE.closeInPlaceEditor(editorState, true); }); } } function restoreInlineEditButtons(editorState) { const ctx = SFE.Context; const actionBar = ctx?.actionBar; const buttonManager = ctx?.buttonManager; const actionsContainer = editorState?.actionsContainer; if (!actionBar || !buttonManager || !actionsContainer) return; actionBar.updateState({ bar: actionsContainer, element: editorState.element, state: 'edit', content: buttonManager.getEditButtons(), }); bindInlineEditButtons(editorState); } function cleanupSchemaMediaSession(editorState, options = {}) { if (!editorState) return; const session = editorState._mwpSchemaMediaSession; if (session && typeof session.cleanup === 'function') { session.cleanup(options); } editorState.activeSchemaHost = null; delete editorState._mwpSchemaMediaSession; } /** * Resolve the current primary rich-text host for one active editor state. * * @param {Object|null} editorState Active editor state. * @returns {Object|null} Current text editor host, or null. */ function resolveCurrentTextEditorHost(editorState) { return SFE.SchemaEditorHost?.resolveTextEditorHost?.(editorState) || null; } function setupSharedEditorLifecycle(editorState) { const { debouncedPosition } = SFE.PositionManager; const actionsContainer = editorState?.actionsContainer || null; const element = editorState?.element || null; if (!editorState || !element || !actionsContainer) { return; } actionsContainer.classList.add('mwp-sfe-inline-editor'); if (!editorState._mwpInlineButtonsBound) { bindInlineEditButtons(editorState); editorState._mwpInlineButtonsBound = true; } if (!editorState.cleanupFocus) { editorState.cleanupFocus = () => {}; } if (!editorState.updatePositions) { const updatePositions = () => debouncedPosition( editorState.element || null, editorState.toolbarContainer || null, editorState.actionsContainer || null ); window.addEventListener('scroll', updatePositions, true); editorState.updatePositions = updatePositions; } if ( !editorState.resizeObserver || editorState._mwpObservedEditorElement !== element ) { if (editorState.resizeObserver) { editorState.resizeObserver.disconnect(); } const resizeObserver = new ResizeObserver(editorState.updatePositions); resizeObserver.observe(element); editorState.resizeObserver = resizeObserver; editorState._mwpObservedEditorElement = element; } if (!editorState.escapeHandler) { const escapeHandler = (e) => { if (e.key === 'Escape') { e.preventDefault(); const textEditorHost = resolveCurrentTextEditorHost(editorState); const mediaSession = editorState._mwpSchemaMediaSession; if ( editorState._mwpActiveComponentType === 'file' && mediaSession && typeof mediaSession.handleEscape === 'function' && mediaSession.handleEscape() ) { return; } if (textEditorHost && textEditorHost._linkUIActive && typeof textEditorHost.closeLinkUI === 'function') { textEditorHost.closeLinkUI(); } else { SFE.closeInPlaceEditor(editorState, true); } } }; document.addEventListener('keydown', escapeHandler); editorState.escapeHandler = escapeHandler; } } function showToolbar(toolbar) { if (!toolbar) return; if (toolbar._mwpSwitchHideTimeout) { clearTimeout(toolbar._mwpSwitchHideTimeout); delete toolbar._mwpSwitchHideTimeout; } toolbar.classList.remove('mwp-sfe-closing'); toolbar.style.display = ''; } function teardownEditableComponentSwitching(editorState) { if (!editorState) return; const switchTarget = editorState._mwpComponentSwitchTarget || editorState.element || null; if (!switchTarget) return; if (editorState.componentSwitchHandler) { switchTarget.removeEventListener('mousedown', editorState.componentSwitchHandler, true); delete editorState.componentSwitchHandler; } if (editorState.componentClickGuard) { switchTarget.removeEventListener('click', editorState.componentClickGuard, true); delete editorState.componentClickGuard; } if (editorState.componentTabHandler) { switchTarget.removeEventListener('keydown', editorState.componentTabHandler, true); delete editorState.componentTabHandler; } delete editorState._mwpComponentSwitchTarget; } function activateEditableComponent(editorState, targetComponent, clickEvent, options = {}) { const overlayManager = SFE.OverlayManager; if (!editorState || !targetComponent || !targetComponent.element) return; if (!editorState.actionsContainer) return; const shouldPlaceCaret = options?.placeCaret !== false; const previousComponent = editorState.activeEditableComponent || null; const targetIsFile = isFileComponent(targetComponent); if (previousComponent && previousComponent.id === targetComponent.id) { if (!targetIsFile && shouldPlaceCaret) { placeCaretInEditableElement(targetComponent.element, clickEvent); } return; } if (previousComponent && previousComponent.element) { const textEditorHost = resolveCurrentTextEditorHost(editorState); previousComponent.element.classList.remove('mwp-sfe-component-active', 'mwp-sfe-inline-editor', 'mwp-sfe-editor-content'); previousComponent.element.removeAttribute('contenteditable'); previousComponent.element.removeAttribute('spellcheck'); previousComponent.element.removeAttribute('data-mwp-sfe-active-component'); if (previousComponent.element._mwpEditor === textEditorHost) { delete previousComponent.element._mwpEditor; } } cleanupSchemaMediaSession(editorState, { preserveChanges: true }); if (targetIsFile) { const textEditorHost = resolveCurrentTextEditorHost(editorState); editorState.activeSchemaHost = null; if (textEditorHost && textEditorHost._linkUIActive && typeof textEditorHost.closeLinkUI === 'function') { textEditorHost.closeLinkUI(); } if (textEditorHost?.toolbarManager && typeof textEditorHost.toolbarManager.destroy === 'function') { textEditorHost.toolbarManager.destroy(); } targetComponent.element.classList.add('mwp-sfe-component-active'); targetComponent.element.dataset.mwpSfeActiveComponent = targetComponent.id; editorState.activeEditableComponent = targetComponent; editorState.activeComponentId = targetComponent.id; editorState._mwpActiveComponentType = 'file'; if (overlayManager) { overlayManager.updateActiveElement(targetComponent.element); } const mediaEditor = SFE.MediaEditor; if (mediaEditor && typeof mediaEditor.startSchemaComponentEditing === 'function') { editorState._mwpSchemaMediaSession = mediaEditor.startSchemaComponentEditing(editorState, targetComponent, { onCancel: () => SFE.closeInPlaceEditor(editorState, true), }); } else { editorState._mwpActiveComponentType = 'text'; if (editorState.toolbarContainer) { showToolbar(editorState.toolbarContainer); } restoreInlineEditButtons(editorState); } if (previousComponent && previousComponent.id !== targetComponent.id && SFE.PublicApiBridge) { SFE.PublicApiBridge.emitEditorEvent('editor:componentChanged', editorState, { source: 'sfe', }); } return; } if (editorState._mwpActiveComponentType === 'file') { restoreInlineEditButtons(editorState); } setupSharedTextEditing(editorState, targetComponent.element, clickEvent, targetComponent, { placeCaret: shouldPlaceCaret, }); const textEditorHost = resolveCurrentTextEditorHost(editorState); if (!textEditorHost) return; targetComponent.element._mwpEditor = textEditorHost; targetComponent.element.classList.add('mwp-sfe-inline-editor', 'mwp-sfe-component-active'); targetComponent.element.dataset.mwpSfeActiveComponent = targetComponent.id; editorState.activeEditableComponent = targetComponent; editorState.activeComponentId = targetComponent.id; editorState._mwpActiveComponentType = 'text'; if (overlayManager) { overlayManager.updateActiveElement(targetComponent.element); } if (previousComponent && previousComponent.id !== targetComponent.id && SFE.PublicApiBridge) { SFE.PublicApiBridge.emitEditorEvent('editor:componentChanged', editorState, { source: 'sfe', }); } } /** * Activate one editable component by its public component identifier. * * @param {Object|null} editorState Active editor state. * @param {string} componentId Target component identifier. * @returns {boolean} Whether activation succeeded. */ function activateEditableComponentById(editorState, componentId) { if (!editorState || !Array.isArray(editorState.editableComponents)) { return false; } const normalizedComponentId = String(componentId || '').trim(); if (!normalizedComponentId) { return false; } const targetComponent = editorState.editableComponents.find(component => component?.id === normalizedComponentId) || null; if (!targetComponent) { return false; } activateEditableComponent(editorState, targetComponent, null); return true; } /** * Clone one plain object used for tracked block attribute changes. * * @param {Object|null} attributeChanges Source attribute map. * @returns {Object} Cloned plain attribute map. */ function cloneAttributeChanges(attributeChanges) { return attributeChanges && typeof attributeChanges === 'object' ? { ...attributeChanges } : {}; } /** * Replace the shared tracked block attribute map in place. * * @param {Object} editorState Active editor state. * @param {Object|null} nextChanges Plain attribute-change map. * @returns {void} */ function replaceAttributeChanges(editorState, nextChanges) { if (!editorState) { return; } const target = ( editorState.attributeChanges && typeof editorState.attributeChanges === 'object' && !Array.isArray(editorState.attributeChanges) ) ? editorState.attributeChanges : (editorState.attributeChanges = {}); Object.keys(target).forEach((key) => { delete target[key]; }); if (nextChanges && typeof nextChanges === 'object' && !Array.isArray(nextChanges)) { Object.keys(nextChanges).forEach((key) => { target[key] = nextChanges[key]; }); } if (editorState.mwpEditor && typeof editorState.mwpEditor === 'object') { editorState.mwpEditor.attributeChanges = target; } } /** * Capture one block-scoped session snapshot from the live editor DOM. * * @param {Object} editorState Active editor state. * @returns {Object|null} Block snapshot or null. */ function captureBlockSessionSnapshot(editorState) { const ElementPrep = SFE.ElementPrep || null; if (!editorState?.element) { return null; } const rootOuterHTML = ( ElementPrep && typeof ElementPrep.getCleanHTML === 'function' ) ? ElementPrep.getCleanHTML(editorState.element, true) : editorState.element.outerHTML; return { rootOuterHTML, activeComponentId: String( editorState.activeComponentId || editorState.activeEditableComponent?.id || '' ).trim(), activeComponentType: String(editorState._mwpActiveComponentType || '').trim() || 'text', attributeChanges: cloneAttributeChanges(editorState.attributeChanges), rootMediaChanges: cloneAttributeChanges(editorState.element?._mwpMediaChanges || null), }; } /** * Capture the current active text selection for one block session snapshot. * * @param {Object} editorState Active editor state. * @returns {*} Saved selection snapshot or null. */ function captureBlockSessionSelection(editorState) { const mwpEditor = editorState?.mwpEditor || null; if ( editorState?._mwpActiveComponentType !== 'text' || !mwpEditor || typeof mwpEditor.isSelectionInEditor !== 'function' || typeof mwpEditor.saveCursorPosition !== 'function' || !mwpEditor.isSelectionInEditor() ) { return null; } const selection = mwpEditor.saveCursorPosition(); if (!selection || typeof selection !== 'object') { return selection || null; } // Block-session history is JSON-cloned, so strip any live DOM references // from the shared selection snapshot here instead of changing MWPEditor's // native cursor snapshot shape used by live list keyboard flows. const sanitizedSelection = { ...selection }; delete sanitizedSelection.listItem; delete sanitizedSelection.container; return sanitizedSelection; } /** * Resolve the session-owned history API for the active text scope. * * @param {Object} editorState Active editor state. * @returns {Object|null} Session history API, or null when unavailable. */ function getTextSessionHistoryApi(editorState) { if (typeof editorState?.getSessionHistoryApi === 'function') { return editorState.getSessionHistoryApi('text'); } const blockEditSession = editorState?.blockEditSession || null; if (!blockEditSession || typeof blockEditSession.getHistoryApi !== 'function') { return null; } return blockEditSession.getHistoryApi('text'); } /** * Seed the text session's initial entry with the current live block-attribute * state once the active component is fully registered. * * @param {Object} editorState Active editor state. * @param {Object} mwpEditor Active rich-text editor instance. * @returns {void} */ function syncInitialTextHistoryBaseline(editorState, mwpEditor) { const historyApi = getTextSessionHistoryApi(editorState); if ( !mwpEditor || !historyApi || typeof historyApi.canReplaceInitialHistoryEntry !== 'function' || !historyApi.canReplaceInitialHistoryEntry() ) { return; } const executor = SFE.SchemaOperationExecutor || null; const operations = Array.isArray(mwpEditor.options?.operations) ? mwpEditor.options.operations : []; if (!executor || !operations.length) { return; } let didChange = false; operations.forEach((operation) => { if (String(operation?.kind || '').trim() !== 'block_attribute_change') { return; } const attributePath = String(operation?.attribute || '').trim(); if (!attributePath) { return; } let trackedValue; if (attributePath === 'level') { const currentLevel = mwpEditor.getHeadingLevelState?.(); trackedValue = Number.isInteger(currentLevel) ? currentLevel : undefined; } else if (attributePath === 'align') { trackedValue = typeof executor.normalizeBlockAttributeTrackedValue === 'function' ? executor.normalizeBlockAttributeTrackedValue(operation, mwpEditor.getBlockAlignState?.()) : mwpEditor.getBlockAlignState?.(); } else if ( typeof executor.getTextAlignmentCapability === 'function' && executor.getTextAlignmentCapability(mwpEditor, operation) ) { const textAlignmentCapability = executor.getTextAlignmentCapability(mwpEditor, operation); trackedValue = typeof executor.normalizeBlockAttributeTrackedValue === 'function' ? executor.normalizeBlockAttributeTrackedValue(textAlignmentCapability, mwpEditor.getTextAlignmentState?.()) : mwpEditor.getTextAlignmentState?.(); } else { return; } if ( Object.prototype.hasOwnProperty.call(mwpEditor.attributeChanges, attributePath) && mwpEditor.attributeChanges[attributePath] === trackedValue ) { return; } mwpEditor.attributeChanges[attributePath] = trackedValue; didChange = true; }); if (!didChange) { return; } historyApi.replaceInitialHistoryEntry?.(); mwpEditor.updateUndoRedoButtons?.(); } /** * Run the shared pre-restore cleanup required before one block snapshot swap. * * @param {Object} editorState Active editor state. * @returns {void} */ function prepareTextBlockSnapshotRestore(editorState) { cleanupSchemaMediaSession(editorState, { preserveChanges: true, preserveToolbarDom: true, }); teardownEditableComponentSwitching(editorState); const textEditorHost = resolveCurrentTextEditorHost(editorState); if ( textEditorHost && typeof textEditorHost.closeLinkUI === 'function' && textEditorHost._linkUIActive ) { textEditorHost.closeLinkUI(); } } /** * Rebuild runtime state immediately after the block root has been swapped. * * @param {Object} editorState Active editor state. * @param {Object} snapshot Restored block snapshot. * @param {Object|null} schemaRuntime Optional schema runtime module. * @returns {void} */ function syncTextBlockSnapshotAfterRootReplace(editorState, snapshot, schemaRuntime = null) { // History snapshots intentionally store clean block markup without managed // missingUI ghost shells. Re-materialize schema placeholders/ghost // components before rebuilding the editable component list so empty // optional components stay addressable after undo/redo restores. if (schemaRuntime && typeof schemaRuntime.refreshEditorState === 'function') { schemaRuntime.refreshEditorState(editorState, { blockState: editorState.blockState || null, attributeChanges: snapshot?.attributeChanges || {}, }); } refreshEditableComponents(editorState); replaceAttributeChanges(editorState, snapshot?.attributeChanges || {}); if (snapshot?.rootMediaChanges && typeof snapshot.rootMediaChanges === 'object') { editorState.element._mwpMediaChanges = { ...snapshot.rootMediaChanges }; } else { delete editorState.element._mwpMediaChanges; } } /** * Resolve which editable component should be reactivated after restore. * * @param {Object} editorState Active editor state. * @param {Object} snapshot Restored block snapshot. * @returns {Object|false} Activation context or false on failure. */ function resolveTextBlockSnapshotActivation(editorState, snapshot) { const targetComponentId = String(snapshot?.activeComponentId || '').trim(); const targetComponent = ( targetComponentId && Array.isArray(editorState.editableComponents) ) ? editorState.editableComponents.find(component => component?.id === targetComponentId) || null : null; const fallbackComponent = targetComponent || editorState.editableComponents?.find(component => component?.default) || editorState.editableComponents?.[0] || null; if (!fallbackComponent || !fallbackComponent.element) { return false; } return { component: fallbackComponent, activeElement: fallbackComponent.element, }; } /** * Reactivate the restored editable component without applying default caret placement. * * @param {Object} editorState Active editor state. * @param {Object} snapshot Restored block snapshot. * @param {Object} activation Resolved activation context. * @returns {Object|false} Activation result or false on failure. */ function activateTextBlockSnapshot(editorState, snapshot, activation) { const fallbackComponent = activation?.component || null; if (!fallbackComponent?.element) { return false; } if (snapshot?.activeComponentType === 'file') { const textEditorHost = resolveCurrentTextEditorHost(editorState); if ( textEditorHost?.toolbarManager && typeof textEditorHost.toolbarManager.destroy === 'function' ) { textEditorHost.toolbarManager.destroy(); } if (snapshot?.rootMediaChanges && typeof snapshot.rootMediaChanges === 'object') { fallbackComponent.element._mwpMediaChanges = { ...snapshot.rootMediaChanges }; } else if (fallbackComponent.element?._mwpMediaChanges) { delete fallbackComponent.element._mwpMediaChanges; } } editorState.activeEditableComponent = null; editorState.activeComponentId = ''; editorState._mwpActiveComponentType = ''; activateEditableComponent(editorState, fallbackComponent, null, { placeCaret: false, }); return { activeElement: fallbackComponent.element, }; } /** * Restore one text selection after the target component has been reactivated. * * @param {Object} editorState Active editor state. * @param {*} selection Saved text selection snapshot. * @returns {void} */ function restoreTextBlockSnapshotSelection(editorState, selection) { const textEditorHost = resolveCurrentTextEditorHost(editorState); if ( selection && editorState._mwpActiveComponentType === 'text' && textEditorHost && typeof textEditorHost.restoreCursorPosition === 'function' ) { textEditorHost.restoreCursorPosition(selection); } } /** * Recreate any post-activation runtime sessions and shared editor wiring. * * @param {Object} editorState Active editor state. * @param {Object} snapshot Restored block snapshot. * @param {Object} activation Resolved activation context. * @param {Object|null} mediaEditor Optional media editor module. * @returns {void} */ function finalizeTextBlockSnapshotActivation(editorState, snapshot, activation, mediaEditor = null) { const fallbackComponent = activation?.component || null; if ( snapshot?.activeComponentType === 'file' && mediaEditor && typeof mediaEditor.startSchemaComponentEditing === 'function' && !editorState._mwpSchemaMediaSession && fallbackComponent ) { editorState._mwpSchemaMediaSession = mediaEditor.startSchemaComponentEditing(editorState, fallbackComponent, { onCancel: () => SFE.closeInPlaceEditor(editorState, true), }); } setupSharedEditorLifecycle(editorState); setupEditableComponentSwitching(editorState); } /** * Run any deferred layout work required after finalizing one restored block. * * @param {Object} editorState Active editor state. * @param {Object} snapshot Restored block snapshot. * @returns {void} */ function finalizeTextBlockSnapshotLayout(editorState, snapshot) { if (snapshot?.activeComponentType === 'file') { requestAnimationFrame(() => { requestAnimationFrame(() => { editorState.updatePositions?.(); }); }); } } /** * Build the text-specific restore adapter consumed by the shared block * session restore pipeline. * * @param {Object} editorState Active editor state. * @param {Object} snapshot Session snapshot to restore. * @param {*} selection Optional text selection snapshot. * @returns {Object} Restore configuration for BlockEditSession. */ function buildTextBlockSessionRestoreConfig(editorState, snapshot, selection = null) { const mediaEditor = SFE.MediaEditor || null; const schemaRuntime = SFE.SchemaRuntime || null; return { editorState, snapshot, selection, beforeRestore: ({ editorState: activeEditorState }) => { prepareTextBlockSnapshotRestore(activeEditorState); }, afterRootReplace: ({ editorState: activeEditorState, snapshot: activeSnapshot }) => { syncTextBlockSnapshotAfterRootReplace(activeEditorState, activeSnapshot, schemaRuntime); }, resolveActivation: ({ editorState: activeEditorState, snapshot: activeSnapshot }) => { return resolveTextBlockSnapshotActivation(activeEditorState, activeSnapshot); }, activate: ({ editorState: activeEditorState, snapshot: activeSnapshot, activation }) => { return activateTextBlockSnapshot(activeEditorState, activeSnapshot, activation); }, restoreSelection: ({ editorState: activeEditorState, selection: selectionToRestore }) => { restoreTextBlockSnapshotSelection(activeEditorState, selectionToRestore); }, afterActivate: ({ editorState: activeEditorState, snapshot: activeSnapshot, activation }) => { finalizeTextBlockSnapshotActivation(activeEditorState, activeSnapshot, activation, mediaEditor); }, afterFinalize: ({ editorState: activeEditorState, snapshot: activeSnapshot }) => { finalizeTextBlockSnapshotLayout(activeEditorState, activeSnapshot); }, }; } /** * Restore one full block-scoped session snapshot into the live editor. * * @param {Object} editorState Active editor state. * @param {Object} snapshot Session snapshot to restore. * @param {*} selection Optional text selection snapshot. * @returns {boolean} Whether restore succeeded. */ function restoreBlockSessionSnapshot(editorState, snapshot, selection = null) { const blockEditSession = editorState?.blockEditSession || null; if ( !editorState?.element || !blockEditSession || typeof blockEditSession.restoreManagedBlockSnapshot !== 'function' ) { return false; } return blockEditSession.restoreManagedBlockSnapshot( buildTextBlockSessionRestoreConfig(editorState, snapshot, selection) ); } /** * Build the text snapshot-host registration descriptor for one active block * edit session. * * @param {Object} editorState Active editor state. * @returns {Object} Snapshot-host registration config. */ function buildTextHistorySnapshotHostConfig(editorState) { return { editorState, scopeId: 'text', attachHistoryApi: true, seedInitialHistory: true, captureSnapshot: ({ editorState: activeEditorState }) => captureBlockSessionSnapshot(activeEditorState), captureSelection: ({ editorState: activeEditorState }) => captureBlockSessionSelection(activeEditorState), restoreSnapshot: ({ editorState: activeEditorState, snapshot, selectionToRestore }) => { restoreBlockSessionSnapshot(activeEditorState, snapshot, selectionToRestore || null); }, }; } /** * Register the active rich-text editor as the block session history host. * * @param {Object} editorState Active editor state. * @param {Object} mwpEditor Active rich-text editor instance. * @returns {void} */ function registerTextHistorySessionHost(editorState, mwpEditor) { const blockEditSession = editorState?.blockEditSession || null; if (!blockEditSession || typeof blockEditSession.registerSnapshotHost !== 'function' || !mwpEditor) { return; } blockEditSession.registerSnapshotHost( mwpEditor, buildTextHistorySnapshotHostConfig(editorState) ); } function cycleEditableComponent(editorState, direction = 1) { if (!editorState || !Array.isArray(editorState.editableComponents)) return false; const components = editorState.editableComponents.filter(component => component?.element); if (components.length < 2) return false; const activeId = editorState.activeComponentId; let currentIndex = components.findIndex(component => component.id === activeId); if (currentIndex < 0) currentIndex = 0; const step = direction < 0 ? -1 : 1; const nextIndex = (currentIndex + step + components.length) % components.length; const nextComponent = components[nextIndex]; if (!nextComponent || nextComponent.id === activeId) return false; activateEditableComponent(editorState, nextComponent, null); editorState._suppressNextComponentClick = true; return true; } function refreshEditableComponents(editorState) { if (!editorState?.element || !editorState?.handler) return false; if (!Array.isArray(editorState.editableComponents)) return false; const previousComponents = editorState.editableComponents; const nextComponents = collectEditableComponents(editorState.element, editorState.handler); previousComponents.forEach(component => { if (!component?.id || !component.element) return; const stillPresent = nextComponents.some(nextComponent => ( nextComponent?.id === component.id && nextComponent.element === component.element )); if (stillPresent) return; stripEditableComponentState(component, editorState); }); nextComponents.forEach(component => applyEditableComponentState(component)); editorState.editableComponents = nextComponents; if (!nextComponents.length) { editorState.activeEditableComponent = null; editorState.activeComponentId = ''; return false; } const activeId = editorState.activeComponentId || editorState.activeEditableComponent?.id || ''; const nextActive = activeId ? nextComponents.find(component => component.id === activeId) || null : null; if (nextActive) { editorState.activeEditableComponent = nextActive; editorState.activeComponentId = nextActive.id; if (editorState._mwpActiveComponentType === 'text') { nextActive.element._mwpEditor = editorState.mwpEditor; nextActive.element.classList.add('mwp-sfe-inline-editor', 'mwp-sfe-component-active'); nextActive.element.dataset.mwpSfeActiveComponent = nextActive.id; nextActive.element.setAttribute('contenteditable', 'true'); nextActive.element.setAttribute('spellcheck', 'true'); } else if (editorState._mwpActiveComponentType === 'file') { nextActive.element.classList.add('mwp-sfe-component-active'); nextActive.element.dataset.mwpSfeActiveComponent = nextActive.id; } return true; } const fallbackComponent = nextComponents.find(component => component.default) || nextComponents[0] || null; if (!fallbackComponent) { editorState.activeEditableComponent = null; editorState.activeComponentId = ''; return false; } activateEditableComponent(editorState, fallbackComponent, null); return true; } function setupEditableComponentSwitching(editorState) { if (!editorState || !Array.isArray(editorState.editableComponents) || !editorState.editableComponents.length) { return; } const switchTarget = editorState.element; if (!switchTarget) return; teardownEditableComponentSwitching(editorState); const getTabModeAction = (component, shiftKey) => { const tabMode = component?.editorOptions?.tabMode; if (!tabMode || typeof tabMode !== 'object') return ''; const action = shiftKey ? tabMode.shiftTab : tabMode.tab; return typeof action === 'string' ? action : ''; }; const switchHandler = (event) => { const targetComponent = getEditableComponentFromTarget(editorState.editableComponents, event.target); if (!targetComponent) { return; } if (targetComponent.id === editorState.activeComponentId) { if (isFileComponent(targetComponent)) { event.preventDefault(); event.stopPropagation(); } return; } event.preventDefault(); event.stopPropagation(); activateEditableComponent(editorState, targetComponent, event); editorState._suppressNextComponentClick = true; }; const clickGuard = (event) => { if (editorState._suppressNextComponentClick) { editorState._suppressNextComponentClick = false; event.preventDefault(); event.stopPropagation(); return; } const targetComponent = getEditableComponentFromTarget(editorState.editableComponents, event.target); if (!targetComponent) { return; } if (isFileComponent(targetComponent) || targetComponent.id !== editorState.activeComponentId) { event.preventDefault(); event.stopPropagation(); } }; const tabHandler = (event) => { if (event.key !== 'Tab') return; if (event.ctrlKey || event.metaKey || event.altKey) return; if (!editorState.actionsContainer || !document.body.contains(editorState.actionsContainer)) { teardownEditableComponentSwitching(editorState); return; } const activeComponent = editorState.activeEditableComponent; if (!activeComponent) return; const tabAction = getTabModeAction(activeComponent, event.shiftKey); if (!tabAction) return; if (tabAction === 'nextComponent' || tabAction === 'previousComponent') { if (cycleEditableComponent(editorState, tabAction === 'previousComponent' ? -1 : 1)) { event.preventDefault(); event.stopPropagation(); } return; } if (tabAction === 'indent' || tabAction === 'outdent') { event.preventDefault(); event.stopPropagation(); const editor = editorState.mwpEditor; const inList = !!(editor && typeof editor.getParentList === 'function' && editor.getParentList()); if (inList) { executeListTabAction(editor, tabAction); } return; } if (tabAction === 'none') { event.preventDefault(); event.stopPropagation(); } }; switchTarget.addEventListener('mousedown', switchHandler, true); switchTarget.addEventListener('click', clickGuard, true); switchTarget.addEventListener('keydown', tabHandler, true); editorState._mwpComponentSwitchTarget = switchTarget; editorState.componentSwitchHandler = switchHandler; editorState.componentClickGuard = clickGuard; editorState.componentTabHandler = tabHandler; } /** * Shared setup for text-based editing */ function setupSharedTextEditing(editorState, editableElement, clickEvent, activeComponent = null, options = {}) { const { positionFloatingElements } = SFE.PositionManager; const { element, handler, actionsContainer } = editorState; if (!actionsContainer) return editorState; const resolvedActiveComponent = activeComponent || editorState.activeEditableComponent || null; const shouldPlaceCaret = options?.placeCaret !== false; // Multi-component sessions need the intended active component registered // before the block session seeds its initial history baseline. Otherwise // undo-to-zero can reactivate the first/default component instead of the // component where editing actually started. if (resolvedActiveComponent?.id) { editorState.activeEditableComponent = resolvedActiveComponent; editorState.activeComponentId = resolvedActiveComponent.id; editorState._mwpActiveComponentType = 'text'; } editableElement.classList.add('mwp-sfe-inline-editor'); let toolbarContainer = editorState.toolbarContainer || null; if (!toolbarContainer) { toolbarContainer = document.createElement('div'); toolbarContainer.className = 'mwp-sfe-inline-toolbar mwp-sfe-inline-editor'; toolbarContainer.setAttribute('data-mwp-sfe-control', 'true'); toolbarContainer.style.pointerEvents = 'auto'; toolbarContainer.style.display = 'none'; document.body.appendChild(toolbarContainer); editorState.toolbarContainer = toolbarContainer; } const componentRuntimeOptions = { ...buildComponentEditorRuntimeOptions( editorState, resolvedActiveComponent ), toolbarContainer, historyApi: getTextSessionHistoryApi(editorState), }; const formats = resolveComponentFormats(editableElement, componentRuntimeOptions); componentRuntimeOptions.formats = formats; let mwpEditor = resolveCurrentTextEditorHost(editorState) || editorState.mwpEditor || null; if (mwpEditor && typeof mwpEditor.reinitialize === 'function') { mwpEditor.reinitialize(editableElement, componentRuntimeOptions); } else { if (mwpEditor && typeof mwpEditor.destroy === 'function') { mwpEditor.destroy(); } mwpEditor = new MWPEditor(editableElement, { formats, ...componentRuntimeOptions, }); } editorState.mwpEditor = mwpEditor; editorState.textEditorHost = mwpEditor; editorState.activeSchemaHost = mwpEditor; editableElement._mwpEditor = mwpEditor; if (editorState.attributeChanges && typeof editorState.attributeChanges === 'object') { mwpEditor.attributeChanges = editorState.attributeChanges; } else { editorState.attributeChanges = mwpEditor.attributeChanges; } registerTextHistorySessionHost(editorState, mwpEditor); toolbarContainer.classList.remove('mwp-sfe-no-position-transition'); actionsContainer.classList.remove('mwp-sfe-no-position-transition'); positionFloatingElements(element, toolbarContainer, actionsContainer, true); showToolbar(toolbarContainer); if (shouldPlaceCaret) { placeCaretInEditableElement(editableElement, clickEvent); } syncInitialTextHistoryBaseline(editorState, mwpEditor); editorState._mwpActiveComponentType = 'text'; setupSharedEditorLifecycle(editorState); return editorState; } /** * Shared plain-text edit setup against the block root element. */ function startRootTextEditing(commonState, clickEvent) { const ElementPrep = SFE.ElementPrep; const { element, handler } = commonState; const contentType = handler.contentType || 'text'; const ctx = SFE.Context; let originalContent; if (ctx.draftEditState && ctx.draftEditState.draftElement === element && ctx.draftEditState.originalElement) { originalContent = ElementPrep.getContent(ctx.draftEditState.originalElement, contentType); } else { originalContent = ElementPrep.getContent(element, contentType); } // Capture a clean DOM snapshot now, before MWPEditor modifies anything. const originalCleanHTML = ElementPrep.getCleanHTML(element); const editorState = { ...commonState, originalContent, originalCleanHTML }; return setupSharedTextEditing(editorState, element, clickEvent); } /** * Content-type-specific: Text Editing * Receives common state, adds text-specific resources, returns complete editor state */ function startTextEditing(commonState, clickEvent) { return startRootTextEditing(commonState, clickEvent); } /** * Multi-component editing (single block root, multiple switchable sub-components). */ function startMultiComponentEditing(commonState, clickEvent) { const overlayManager = SFE.OverlayManager; const { element, handler } = commonState; const editableComponents = collectEditableComponents(element, handler); if (!editableComponents.length) { return startRootTextEditing(commonState, clickEvent); } const initialComponent = resolveInitialEditableComponent( editableComponents, clickEvent, commonState.initialComponentId || '' ); if (!initialComponent || !initialComponent.element) { return startRootTextEditing(commonState, clickEvent); } editableComponents.forEach(component => applyEditableComponentState(component)); const editorState = { ...commonState, editableComponents, activeEditableComponent: null, activeComponentId: '', }; // Narrow the active overlay to the selected component instead of full block root. if (overlayManager && overlayManager.activeTarget === element) { overlayManager.updateActiveElement(initialComponent.element); } setupSharedEditorLifecycle(editorState); setupEditableComponentSwitching(editorState); activateEditableComponent(editorState, initialComponent, clickEvent); return editorState; } SFE.TextEditor = { startTextEditing, startMultiComponentEditing, refreshEditableComponents, activateEditableComponentById, captureBlockSessionSnapshot, captureBlockSessionSelection, restoreBlockSessionSnapshot }; })();