# slide-open-tooltip

A Tooltip.

# Example

<slide-open-tooltip
    tooltipText="I am a tooltip text bubble!"
    tooltipImage="/images/question-mark.png"
/>

# props

tooltipText (Optional) (String) Text

customTooltipSize (Optional) (Boolean) (Default: false) Sets size of tooltip

isToolTipPosition (Optional) (Boolean) (Default: false) Sets position of the tooltip.

tooltipImage (Optional) (String) image path.

# Source Code

<template>
    <div class="tooltip-wrapper">
        <!--new test -->
        <button
            @click="makeOpen()"
            class="animated-close-button reposition"
            :class="{ tooltipsize: customTooltipSize }"
            :style="
                isGreen
                    ? { background: focusColor }
                    : { background: buttonColor }
            "
        >
            <img
                class="close-icon"
                :class="{ rotate: isActive }"
                :src="tooltipImage"
                alt="close icon"
            />
        </button>
        <transition name="slide-fade">
            <div
                class="tooltip-text-container"
                v-if="showTip"
                :class="{ 'tooltip-position': isToolTipPosition }"
            >
                <p class="tooltip-bubble">{{ tooltipText }}</p>
            </div>
        </transition>
    </div>
</template>
<script>
    export default {
        name: 'ToolTip',
        props: {
            tooltipText: String,
            customTooltipSize: Boolean,
            isToolTipPosition: Boolean,
            tooltipImage: String,
            focusColor: String,
            buttonColor: String
        },
        data() {
            return {
                isActive: false,
                showTip: false,
                customTooltipSize: false,
                show: false
            };
        },
        methods: {
            makeOpen: function() {
                this.isActive = !this.isActive;
                this.isGreen = !this.isGreen;
                this.showTip = !this.showTip;
                this.show = !this.show;
            }
        }
    };
</script>
<style scoped>
    /*custom rezising and bubble positioning for FamilyTipsvue*/
    @media (max-width: 767px) {
        .tooltipsize {
            width: 33px;
            height: 33px;
            padding: 7px;
        }

        .tooltip-position {
            position: relative;
            left: -20px;
            top: -10px;
        }

        .tooltip-bubble {
            padding: 7px;
        }
    }

    .tooltip-wrapper {
        position: absolute;
        display: flex;
        flex-direction: row;
    }

    .tooltip-text-container {
        width: 100%;
    }

    button.animated-close-button.reposition {
        margin: 0;
        position: absolute;
        top: -31px;
        left: -40px;
    }

    .tooltip-bubble {
        background: white;
        border-radius: 4px;
        padding: 14px;
        max-width: 268px;
        width: 40vw;
        position: relative;
        -webkit-box-shadow: 0px 20px 40px 0px rgba(0, 0, 0, 0.15);
        -moz-box-shadow: 0px 20px 40px 0px rgba(0, 0, 0, 0.15);
        box-shadow: 0px 20px 40px 0px rgba(0, 0, 0, 0.15);
        font-size: 18px;
    }

    .tooltip-text-container.tooltip-position {
        position: absolute;
        width: 100%;
        max-width: 500px;
    }

    .slide-fade-enter-active {
        -webkit-transition: all 0.2s ease;
        -moz-transition: all 0.2s ease;
        -o-transition: all 0.2s ease;
        transition: all 0.2s ease;
    }

    .slide-fade-leave-active {
        -webkit-transition: all 0.2s cubic-bezier(0.25, 0.25, 0.335, 0.845);
        -moz-transition: all 0.2s cubic-bezier(0.25, 0.25, 0.335, 0.845);
        -o-transition: all 0.2s cubic-bezier(0.25, 0.25, 0.335, 0.845);
        transition: all 0.2s cubic-bezier(0.25, 0.25, 0.335, 0.845);

        -webkit-transition-timing-function: cubic-bezier(
            0.25,
            0.25,
            0.335,
            0.845
        );
        -moz-transition-timing-function: cubic-bezier(0.25, 0.25, 0.335, 0.845);
        -o-transition-timing-function: cubic-bezier(0.25, 0.25, 0.335, 0.845);
        transition-timing-function: cubic-bezier(0.25, 0.25, 0.335, 0.845);
        /* custom */
    }

    .slide-fade-enter,
    .slide-fade-leave-to {
        transform: translate(-20px, -30px);
        opacity: 0;
    }
</style>