// Name:            Slideshow
// Description:     Component to create slideshows
//
// Component:       `ui-slideshow`
//
// Sub-objects:     `ui-slideshow-items`
//
// States:          `ui-active`
//
// ========================================================================


/* ========================================================================
   Component: Slideshow
 ========================================================================== */

/*
 * 1. Prevent tab highlighting on iOS.
 */

.ui-slideshow {
    /* 1 */
    -webkit-tap-highlight-color: transparent;
    .hook-slideshow;
}


/* Items
 ========================================================================== */

/*
 * 1. Create position and stacking context
 * 2. Reset list
 * 3. Clip child elements
 * 4. Prevent displaying the callout information on iOS.
 */

.ui-slideshow-items {
    /* 1 */
    position: relative;
    z-index: 0;
    /* 2 */
    margin: 0;
    padding: 0;
    list-style: none;
    /* 3 */
    overflow: hidden;
    /* 4 */
    -webkit-touch-callout: none;
}


/* Item
 ========================================================================== */

/*
 * 1. Position items above each other
 * 2. Take the full width
 * 3. Clip child elements, e.g. for `ui-cover`
 * 4. Optimize animation
 * 5. Disable horizontal panning gestures in IE11 and Edge
 */

.ui-slideshow-items > * {
    /* 1 */
    position: absolute;
    top: 0;
    left: 0;
    /* 2 */
    right: 0;
    bottom: 0;
    /* 3 */
    overflow: hidden;
    /* 4 */
    will-change: transform, opacity;
    /* 5 */
    touch-action: pan-y;
}

/*
 * Hide not active items
 */

.ui-slideshow-items > :not(.ui-active) { display: none; }


// Hooks
// ========================================================================

.hook-slideshow-misc;

.hook-slideshow() {}
.hook-slideshow-misc() {}
