/**
 * @class Ext.field.trigger.Trigger
 */
 
/**
 * @var {number}
 * Trigger width
 */
$trigger-width: dynamic(22px);
 
/**
 * @var {number}
 * Trigger width in the {@link Global_CSS#$enable-big big} sizing scheme
 */
$trigger-width-big: dynamic(30px);
 
/**
 * @var {color}
 * Trigger background-color
 */
$trigger-background-color: dynamic(null);
 
/**
 * @var {color}
 * Trigger background-color when hovered
 */
$trigger-hovered-background-color: dynamic(null);
 
/**
 * @var {color}
 * Trigger background-color when pressed
 */
$trigger-pressed-background-color: dynamic(null);
 
/**
 * @var {string}
 * Trigger icon
 */
$trigger-icon: dynamic($fa-var-caret-down);
 
/**
 * @var {color}
 * Trigger icon color
 */
$trigger-icon-color: dynamic($neutral-dark-color);
 
/**
 * @var {color}
 * Trigger icon color when hovered
 */
$trigger-hovered-icon-color: dynamic(mix(#000, $trigger-icon-color, 8%));
 
/**
 * @var {color}
 * Trigger icon color when pressed
 */
$trigger-pressed-icon-color: dynamic(mix(#000, $trigger-icon-color, 15%));
 
/**
 * @var {color}
 * Trigger icon background-color
 */
$trigger-icon-background-color: dynamic(null);
 
/**
 * @var {color}
 * Trigger icon background-color when hovered
 */
$trigger-hovered-icon-background-color: dynamic(null);
 
/**
 * @var {color}
 * Trigger icon background-color when pressed
 */
$trigger-pressed-icon-background-color: dynamic(null);
 
/**
 * @var {number/list}
 * Trigger icon border-radius
 */
$trigger-icon-border-radius: dynamic(null);
 
/**
 * @var {number}
 * Trigger icon size
 */
$trigger-icon-size: dynamic(16px);
 
/**
 * @var {number}
 * Trigger icon size in the {@link Global_CSS#$enable-big big} sizing scheme
 */
$trigger-icon-size-big: dynamic(20px);
 
/**
 * @var {number}
 * Trigger icon font-size
 */
$trigger-icon-font-size: dynamic(null);
 
/**
 * @var {number}
 * Trigger icon font-size in the {@link Global_CSS#$enable-big big} sizing scheme
 */
$trigger-icon-font-size-big: dynamic(null);
 
/**
 * @var {map}
 * Parameters for the "alt" textfield trigger UI.
 */
$trigger-alt-ui: dynamic((
    width: 40px, 
    width-big: 45px, 
    icon-color: rgba(255, 255, 255, .6), 
    hovered-icon-color: rgba(255, 255, 255, .6), 
    pressed-icon-color: rgba(255, 255, 255, .6) 
));
 
/**
 * @var {map}
 * Parameters for the "faded" textfield trigger UI.
 */
$trigger-faded-ui: dynamic((
    width: 40px, 
    width-big: 45px, 
    icon-color: rgba(0, 0, 0, .4), 
    hovered-icon-color: rgba(0, 0, 0, .4), 
    pressed-icon-color: rgba(0, 0, 0, .4) 
));
 
/**
 * @var {map}
 * Parameters for the "solo" textfield trigger UI.
 */
$trigger-solo-ui: dynamic((
    width: 40px, 
    width-big: 40px, 
    icon-color: rgba(0, 0, 0, .4), 
    hovered-icon-color: rgba(0, 0, 0, .4), 
    pressed-icon-color: rgba(0, 0, 0, .4) 
));
 
/**
 * Creates a visual theme for a Trigger.
 *
 * @param {string} $ui
 * The name of the UI being created. Can not included spaces or special punctuation
 * (used in CSS class names).
 *
 * @param {String} [$xtype=trigger] (protected) The {@link Ext.Class#xtype} to use
 * in CSS selectors.  For use by UI mixins of derived classes.
 *
 * @param {number} $width
 * Trigger width
 *
 * @param {number} $width-big
 * Trigger width in the {@link Global_CSS#$enable-big big} sizing scheme
 *
 * @param {color} $background-color
 * Trigger background-color
 *
 * @param {color} $hovered-background-color
 * Trigger background-color when hovered
 *
 * @param {color} $pressed-background-color
 * Trigger background-color when pressed
 *
 * @param {string} $icon
 * Trigger icon
 *
 * @param {color} $icon-color
 * Trigger icon color
 *
 * @param {color} $hovered-icon-color
 * Trigger icon color when hovered
 *
 * @param {color} $pressed-icon-color
 * Trigger icon color when pressed
 *
 * @param {color} $icon-background-color
 * Trigger icon background-color
 *
 * @param {color} $hovered-icon-background-color
 * Trigger icon background-color when hovered
 *
 * @param {color} $pressed-icon-background-color
 * Trigger icon background-color when pressed
 *
 * @param {number/list} $icon-border-radius
 * Trigger icon border-radius
 *
 * @param {number} $icon-size
 * Trigger icon size
 *
 * @param {number} $icon-size-big
 * Trigger icon size in the {@link Global_CSS#$enable-big big} sizing scheme
 *
 * @param {number} $icon-font-size
 * Trigger icon font-size
 *
 * @param {number} $icon-font-size-big
 * Trigger icon font-size in the {@link Global_CSS#$enable-big big} sizing scheme
 */
@mixin trigger-ui(
    $ui: null,
    $xtype: trigger,
    $width: null,
    $width-big: null,
    $background-color: null,
    $hovered-background-color: null,
    $pressed-background-color: null,
    $icon: null,
    $icon-color: null,
    $hovered-icon-color: null,
    $pressed-icon-color: null,
    $icon-background-color: null,
    $hovered-icon-background-color: null,
    $pressed-icon-background-color: null,
    $icon-border-radius: null,
    $icon-size: null,
    $icon-size-big: null,
    $icon-font-size: null,
    $icon-font-size-big: null
) {
    $ui-suffix: ui-suffix($ui);
 
    .#{$prefix}#{$xtype}#{$ui-suffix} {
        width: $width;
        background-color: $background-color;
 
        @if $enable-big {
            .#{$prefix}big & {
                width: $width-big;
            }
        }
 
        .#{$prefix}icon-el {
            background-color: $icon-background-color;
            border-radius: $icon-border-radius;
 
            @include icon( 
                $icon: $icon, 
                $color: $icon-color, 
                $size: $icon-size, 
                $size-big: $icon-size-big, 
                $font-size: $icon-font-size, 
                $font-size-big: $icon-font-size-big 
            );
        }
 
        &.#{$prefix}interactive {
            &:hover {
                background-color: $hovered-background-color;
 
                .#{$prefix}icon-el {
                    color: $hovered-icon-color;
                    background-color: $hovered-icon-background-color;
                }
            }
 
            &:active {
                background-color: $pressed-background-color;
 
                .#{$prefix}icon-el {
                    color: $pressed-icon-color;
                    background-color: $pressed-icon-background-color;
                }
            }
        }
    }
}
 
 
// Non-UI variables - these variables do not correspond to a UI mixin parameter 
 
/**
 * @var {'horizontal'/'vertical'}
 * The alignment of {@link #grouped} triggers
 */
$trigger-grouped-align: dynamic(vertical);
 
/**
 * @var {'horizontal'/'vertical'}
 * The alignment of {@link #grouped} triggers in the {@link Global_CSS#$enable-big big} sizing scheme
 */
$trigger-grouped-align-big: dynamic(horizontal);