-----------------------------------------------------------------------------
{-# LANGUAGE OverloadedStrings #-}
-----------------------------------------------------------------------------
-- |
-- Module      :  Miso.Native.X.Element.Viewpager.Property
-- Copyright   :  (C) 2016-2026 David M. Johnson
-- License     :  BSD3-style (see the file LICENSE)
-- Maintainer  :  David M. Johnson <code@dmj.io>
-- Stability   :  experimental
-- Portability :  non-portable
----------------------------------------------------------------------------
module Miso.Native.X.Element.Viewpager.Property
  ( -- *** Property
    androidAlwaysOverscroll_
  , androidForceCanScroll_
  , bounces_
  , enableScroll_
  , initialSelectIndex_
  , iosGestureDirection_
  , iosGestureOffset_
  , iosRecognizedGestureClass_
  , iosRecognizedViewTag_
  , keepItemView_
  ) where
-----------------------------------------------------------------------------
import           Miso.String (MisoString)
import           Miso.Types (Attribute)
import           Miso.Property
-----------------------------------------------------------------------------
-- | https://lynxjs.org/api/elements/built-in/viewpager.html#android-always-overscroll
--
-- *Android* only. Controls the bounce effect at the edges.
--
-- Default Value: 'False'
--
androidAlwaysOverscroll_ :: Bool -> Attribute model action
androidAlwaysOverscroll_ :: forall model action. Bool -> Attribute model action
androidAlwaysOverscroll_ = MisoString -> Bool -> Attribute model action
forall model action. MisoString -> Bool -> Attribute model action
boolProp MisoString
"android-always-overscroll"
-----------------------------------------------------------------------------
-- | https://lynxjs.org/api/elements/built-in/viewpager.html#android-force-can-scroll
--
-- *Android* only. Prevents gesture pass-through to the parent.
--
-- Default Value: 'False'
--
androidForceCanScroll_ :: Bool -> Attribute model action
androidForceCanScroll_ :: forall model action. Bool -> Attribute model action
androidForceCanScroll_ = MisoString -> Bool -> Attribute model action
forall model action. MisoString -> Bool -> Attribute model action
boolProp MisoString
"android-force-can-scroll"
-----------------------------------------------------------------------------
-- | https://lynxjs.org/api/elements/built-in/viewpager.html#bounces
--
-- *iOS \/ Desktop \/ Harmony* only. Enables the spring effect.
--
-- Default Value: 'True'
--
bounces_ :: Bool -> Attribute model action
bounces_ :: forall model action. Bool -> Attribute model action
bounces_ = MisoString -> Bool -> Attribute model action
forall model action. MisoString -> Bool -> Attribute model action
boolProp MisoString
"bounces"
-----------------------------------------------------------------------------
-- | https://lynxjs.org/api/elements/built-in/viewpager.html#enable-scroll
--
-- Activates horizontal scroll gestures.
--
-- Default Value: 'True'
--
enableScroll_ :: Bool -> Attribute model action
enableScroll_ :: forall model action. Bool -> Attribute model action
enableScroll_ = MisoString -> Bool -> Attribute model action
forall model action. MisoString -> Bool -> Attribute model action
boolProp MisoString
"enable-scroll"
-----------------------------------------------------------------------------
-- | https://lynxjs.org/api/elements/built-in/viewpager.html#initial-select-index
--
-- Selects the specified page on initialization.
--
-- Default Value: 0
--
initialSelectIndex_ :: Int -> Attribute model action
initialSelectIndex_ :: forall model action. Int -> Attribute model action
initialSelectIndex_ = MisoString -> Int -> Attribute model action
forall model action. MisoString -> Int -> Attribute model action
intProp MisoString
"initial-select-index"
-----------------------------------------------------------------------------
-- | https://lynxjs.org/api/elements/built-in/viewpager.html#ios-gesture-direction
--
-- *iOS* only. Allows the outer container to respond when at the edges.
--
-- Default Value: 'False'
--
iosGestureDirection_ :: Bool -> Attribute model action
iosGestureDirection_ :: forall model action. Bool -> Attribute model action
iosGestureDirection_ = MisoString -> Bool -> Attribute model action
forall model action. MisoString -> Bool -> Attribute model action
boolProp MisoString
"ios-gesture-direction"
-----------------------------------------------------------------------------
-- | https://lynxjs.org/api/elements/built-in/viewpager.html#ios-gesture-offset
--
-- *iOS* only. Edge zone distance where the back gesture takes priority.
--
-- Default Value: 0
--
iosGestureOffset_ :: Int -> Attribute model action
iosGestureOffset_ :: forall model action. Int -> Attribute model action
iosGestureOffset_ = MisoString -> Int -> Attribute model action
forall model action. MisoString -> Int -> Attribute model action
intProp MisoString
"ios-gesture-offset"
-----------------------------------------------------------------------------
-- | https://lynxjs.org/api/elements/built-in/viewpager.html#ios-recognized-gesture-class
--
-- *iOS* only. @UIGestureRecognizer@ class name for simultaneous recognition.
--
iosRecognizedGestureClass_ :: MisoString -> Attribute model action
iosRecognizedGestureClass_ :: forall model action. MisoString -> Attribute model action
iosRecognizedGestureClass_ = MisoString -> MisoString -> Attribute model action
forall model action.
MisoString -> MisoString -> Attribute model action
textProp MisoString
"ios-recognized-gesture-class"
-----------------------------------------------------------------------------
-- | https://lynxjs.org/api/elements/built-in/viewpager.html#ios-recognized-view-tag
--
-- *iOS* only. @UIView@ tag identifying the gesture recognizer source.
--
-- Default Value: 0
--
iosRecognizedViewTag_ :: Int -> Attribute model action
iosRecognizedViewTag_ :: forall model action. Int -> Attribute model action
iosRecognizedViewTag_ = MisoString -> Int -> Attribute model action
forall model action. MisoString -> Int -> Attribute model action
intProp MisoString
"ios-recognized-view-tag"
-----------------------------------------------------------------------------
-- | https://lynxjs.org/api/elements/built-in/viewpager.html#keep-item-view
--
-- Enables lazy-load mode with early exposure.
--
-- Default Value: 'False'
--
keepItemView_ :: Bool -> Attribute model action
keepItemView_ :: forall model action. Bool -> Attribute model action
keepItemView_ = MisoString -> Bool -> Attribute model action
forall model action. MisoString -> Bool -> Attribute model action
boolProp MisoString
"keep-item-view"
-----------------------------------------------------------------------------