.#{$prefix}form-trigger-wrap {
    display: table;
    // fill body width
    width: 100%;
    // expand to fill body height when the field's main element has a height
    height: 100%;

    @if $include-ff {
        // https://sencha.jira.com/browse/EXTJS-13752
        // in firefox a wrapping label which causes the field's outer element to expand in
        // height will also cause the triggerWrap to grow vertically due to the height:100%
        // set above.  inline-flex elements are not affected by this bug, but table (and
        // inline-table) are.
        .#{$prefix}gecko & {
            display: -moz-inline-box; // ff < 28
            display: inline-flex;
            vertical-align: top;
        }
    }
}

.#{$prefix}form-text-wrap {
    display: table-cell;
    overflow: hidden;
    height: 100%;
    position: relative;

    @if $include-ff {
        // EXTJS-13752
        .#{$prefix}gecko & {
            display: block;
            -moz-box-flex: 1; // ff < 28
            flex: 1;
        }
    }

    .#{$prefix}placeholder-label {
        position: absolute;
        top: 0;
        left: 0;
        cursor: text;
        white-space: nowrap;
        overflow: hidden;
    }
}

// The extjs-text-field mixin sets min/max-width to give the body its default width.
// Fields with grow configured need no min/max-width since their body width is set by autoSize()
.#{$prefix}form-item-body.#{$prefix}form-text-grow {
    min-width: inherit;
    max-width: inherit;
}

.#{$prefix}form-text {
    border: 0;
    margin: 0;
    @include border-radius(0);
    display: block;
    background: repeat-x 0 0;
    width: 100%;
    height: 100%;
    @if $include-webkit {
        .#{$prefix}webkit & {
            // webkit adds a mysterious extra 3px of space under the textarea when it
            // is height:100% of its parent
            height: calc(100% + 3px);
        }
    }
}

.#{$prefix}form-trigger {
    display: table-cell;
    vertical-align: top;
    cursor: pointer;
    overflow: hidden;
    background-repeat: no-repeat;
    text-align: center;
    line-height: 0;
    // since horizontally aligned spinner triggers are display inline-block, triggers
    // require white-space:nowrap to prevent the triggers from wrapping when the field
    // becomes too narrow
    white-space: nowrap;
    .#{$prefix}item-disabled & {
        cursor: default;
    }
    &.#{$prefix}form-trigger-cmp {
        // neutral theme may set background and/or border on normal triggers.
        // remove them for component triggers.
        background: none;
        border: 0;
    }
    
    // This is to increase specificity in RTL mode for the above rule
    @if $include-rtl {
        &.#{$prefix}form-trigger-cmp.#{$prefix}rtl {
            background: none;
            border: 0;
        }
    }

    @if $include-ff {
        // EXTJS-13752
        .#{$prefix}gecko & {
            display: block;
        }
    }
}
