/*!
 * Copyright (c) 2017 Edelweiss72 GmbH - All Rights Reserved
 * Unauthorized usage or distribution of this file, via any medium is strictly prohibited
 * Proprietary and confidential
 *
 * @author Wladimir Eberts <w.eberts@edelweiss72.de>
 */

.mod-form:not(.no-js):not(.no-label-float) {
    .m-field.can-float:not(.no-label-float) {
        > .m-inner {
            position: relative;

            > .m-label {
                margin: 0;
                z-index: 1;
                overflow: hidden;
                white-space: nowrap;
                pointer-events: none;
                display: inline-block;
                text-overflow: ellipsis;
                transform-origin: top left;
                transition: max-width 0.25s ease-out, transform 0.25s ease-out;
                max-width: calc(100% - #{2 * (max(0, $form-input-padding-horizontal - $form-input-border-width) + $form-input-border-width)});
                @include absolute(calc(#{0.5em * $form-line-height * $form-label-scale + 0.5 * em($form-label-gap)} + #{max(0, $form-input-padding-vertical - $form-input-border-width) + $form-input-border-width}), max(0, $form-input-padding-horizontal - $form-input-border-width) + $form-input-border-width);

                @include if-parent('.m-field.is-filled, .m-field.is-placeholder, .m-field.is-focus') {
                    transform: translateY(-0.5em * $form-line-height * $form-label-scale - 0.5 * em($form-label-gap)) scale($form-label-scale);
                    max-width: calc(#{100% * (1 / $form-label-scale)} - #{2 * (max(0, $form-input-padding-horizontal - $form-input-border-width) + $form-input-border-width)});
                }

                @include if-parent('.m-field.is-error') {
                    color: $form-color-error;
                }
            }

            > .m-item {
                > .m-input:not(.m-input-radio):not(.m-input-checkbox) {
                    > input,
                    > select,
                    > textarea,
                    > .select2-container--form .select2-selection__rendered {
                        padding-top: calc(#{1em * $form-line-height * $form-label-scale + em($form-label-gap)} + #{max(0, $form-input-padding-vertical - $form-input-border-width)});
                    }

                    > textarea {
                        min-height: calc(#{1em * $form-line-height + 1em * $form-line-height * $form-label-scale + em($form-label-gap)} + #{2 * ($form-input-padding-vertical + $form-input-border-width) + 1px});
                    }
                }
            }
        }
    }
}
