diff --git a/README.md b/README.md
index ba9f3804..a2a17786 100644
--- a/README.md
+++ b/README.md
@@ -263,7 +263,7 @@ Maven
com.agoda.kakao
kakao
- 2.2.0
+ 2.3.0
pom
```
@@ -274,7 +274,7 @@ repositories {
}
dependencies {
- androidTestImplementation 'com.agoda.kakao:kakao:2.2.0'
+ androidTestImplementation 'com.agoda.kakao:kakao:2.3.0'
}
```
diff --git a/buildsystem/dependencies.gradle b/buildsystem/dependencies.gradle
index 9342b968..040666f6 100644
--- a/buildsystem/dependencies.gradle
+++ b/buildsystem/dependencies.gradle
@@ -5,17 +5,17 @@ ext.versions = [
bintray : '1.7.3',
maven : '1.5',
oss : '4.5.4',
- appcompat : '1.0.2',
- recyclerview : '1.0.0',
- annotation : '1.0.0',
- design : '1.0.0',
+ appcompat : '1.1.0',
+ recyclerview : '1.1.0',
+ viewpager2 : '1.0.0',
+ swiperefresh : '1.0.0',
+ annotation : '1.1.0',
+ design : '1.1.0',
espresso : '3.1.1',
espresso_rules : '1.1.1',
espresso_runner: '1.1.1',
- junit : '4.12',
- viewpager2 : '1.0.0'
+ junit : '4.12'
]
-
ext.libraries = [
kotlin : "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin",
kotlin_stdlib : "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlin",
@@ -26,6 +26,8 @@ ext.libraries = [
oss : "org.jfrog.buildinfo:build-info-extractor-gradle:$versions.oss",
appcompat : "androidx.appcompat:appcompat:$versions.appcompat",
recyclerview : "androidx.recyclerview:recyclerview:$versions.recyclerview",
+ viewpager2 : "androidx.viewpager2:viewpager2:$versions.viewpager2",
+ swiperefresh : "androidx.swiperefreshlayout:swiperefreshlayout:$versions.swiperefresh",
annotation : "androidx.annotation:annotation:$versions.annotation",
design : "com.google.android.material:material:$versions.design",
espresso_runner : "androidx.test:runner:$versions.espresso_runner",
@@ -34,10 +36,10 @@ ext.libraries = [
espresso_web : "androidx.test.espresso:espresso-web:$versions.espresso",
espresso_contrib: "androidx.test.espresso:espresso-contrib:$versions.espresso",
espresso_intents: "androidx.test.espresso:espresso-intents:$versions.espresso",
- junit : "junit:junit:$versions.junit",
- viewpager2 : "androidx.viewpager2:viewpager2:$versions.viewpager2"
+ junit : "junit:junit:$versions.junit"
]
+
def alias = System.getenv('BINTRAY_ALIAS')
if (alias == null) {
@@ -49,8 +51,8 @@ ext.kakao = [
artifact : 'kakao',
name : 'kakao',
description : 'Kotlin based DSL for fluent AT with Espresso',
- version : "2.2.0$alias",
- version_desc : "Kakao 2.2.0$alias",
+ version : "2.3.0$alias",
+ version_desc : "Kakao 2.3.0$alias",
site : 'https://github.com/agoda-com/Kakao',
github : 'https://github.com/agoda-com/Kakao.git'
]
diff --git a/docs/kakao/alltypes/index.md b/docs/kakao/alltypes/index.md
index 42d15430..3a9e80b6 100644
--- a/docs/kakao/alltypes/index.md
+++ b/docs/kakao/alltypes/index.md
@@ -18,6 +18,9 @@
| [com.agoda.kakao.intent.BundleBuilder](../com.agoda.kakao.intent/-bundle-builder/index.md) | Class for building Bundle matchers |
| [com.agoda.kakao.check.CheckableActions](../com.agoda.kakao.check/-checkable-actions/index.md) | Provides action for checking views |
| [com.agoda.kakao.check.CheckableAssertions](../com.agoda.kakao.check/-checkable-assertions/index.md) | Provides checkable based assertions for views |
+| [com.agoda.kakao.common.matchers.ChildCountMatcher](../com.agoda.kakao.common.matchers/-child-count-matcher/index.md) | Matches view with size no of children |
+| [com.agoda.kakao.chipgroup.ChipGroupActions](../com.agoda.kakao.chipgroup/-chip-group-actions/index.md) | |
+| [com.agoda.kakao.chipgroup.ChipGroupAssertions](../com.agoda.kakao.chipgroup/-chip-group-assertions/index.md) | Provides assertions for a ChipGroup |
| [com.agoda.kakao.intent.ComponentNameBuilder](../com.agoda.kakao.intent/-component-name-builder/index.md) | Class for building ComponentName matchers |
| [com.agoda.kakao.list.DataBuilder](../com.agoda.kakao.list/-data-builder/index.md) | Class for building data matchers |
| [com.agoda.kakao.delegate.DataInteractionDelegate](../com.agoda.kakao.delegate/-data-interaction-delegate/index.md) | Delegation class for [DataInteraction](#). Wraps all available public calls and intercepts [check](../com.agoda.kakao.delegate/-data-interaction-delegate/check.md) and [perform](../com.agoda.kakao.delegate/-data-interaction-delegate/perform.md). |
@@ -46,12 +49,14 @@
| [com.agoda.kakao.bottomnav.KBottomNavigationView](../com.agoda.kakao.bottomnav/-k-bottom-navigation-view/index.md) | View for acting and asserting on BottomNavigationView |
| [com.agoda.kakao.text.KButton](../com.agoda.kakao.text/-k-button/index.md) | View with BaseActions and TextViewAssertions |
| [com.agoda.kakao.check.KCheckBox](../com.agoda.kakao.check/-k-check-box/index.md) | View with CheckableActions, CheckableAssertions and TextViewAssertions |
+| [com.agoda.kakao.chipgroup.KChipGroup](../com.agoda.kakao.chipgroup/-k-chip-group/index.md) | View with ChipGroupActions and ChipGroupAssertions |
| [com.agoda.kakao.picker.date.KDatePicker](../com.agoda.kakao.picker.date/-k-date-picker/index.md) | View for interact with default date picker |
| [com.agoda.kakao.picker.date.KDatePickerDialog](../com.agoda.kakao.picker.date/-k-date-picker-dialog/index.md) | View for interact with default date picker dialog |
| [com.agoda.kakao.drawer.KDrawerView](../com.agoda.kakao.drawer/-k-drawer-view/index.md) | View with DrawerActions and BaseAssertions |
| [com.agoda.kakao.edit.KEditText](../com.agoda.kakao.edit/-k-edit-text/index.md) | View with EditableActions and TextViewAssertions |
| [com.agoda.kakao.list.KEmptyAdapterItem](../com.agoda.kakao.list/-k-empty-adapter-item/index.md) | Empty implementation of KAdapterItem |
| [com.agoda.kakao.recycler.KEmptyRecyclerItem](../com.agoda.kakao.recycler/-k-empty-recycler-item/index.md) | Empty implementation of KRecyclerItem |
+| [com.agoda.kakao.pager2.KEmptyViewPagerItem](../com.agoda.kakao.pager2/-k-empty-view-pager-item/index.md) | Empty implementation of KViewPagerItem |
| [com.agoda.kakao.image.KImageView](../com.agoda.kakao.image/-k-image-view/index.md) | View with BaseActions and ImageViewAssertions |
| [com.agoda.kakao.intent.KIntent](../com.agoda.kakao.intent/-k-intent/index.md) | This class is intended to be used when you need to check if some intent has been sent or to mock specific intent with result |
| [com.agoda.kakao.navigation.KNavigationView](../com.agoda.kakao.navigation/-k-navigation-view/index.md) | View with NavigationViewActions and NavigationViewAssertions |
@@ -64,6 +69,8 @@
| [com.agoda.kakao.scroll.KScrollView](../com.agoda.kakao.scroll/-k-scroll-view/index.md) | View with ScrollViewActions and BaseAssertions |
| [com.agoda.kakao.progress.KSeekBar](../com.agoda.kakao.progress/-k-seek-bar/index.md) | View with SeekBarActions and ProgressBarAssertions |
| [com.agoda.kakao.text.KSnackbar](../com.agoda.kakao.text/-k-snackbar/index.md) | View with internal TextView and a Button |
+| [com.agoda.kakao.spinner.KSpinner](../com.agoda.kakao.spinner/-k-spinner/index.md) | |
+| [com.agoda.kakao.spinner.KSpinnerItem](../com.agoda.kakao.spinner/-k-spinner-item/index.md) | KTextView implementation of KAdapterItem |
| [com.agoda.kakao.swiperefresh.KSwipeRefreshLayout](../com.agoda.kakao.swiperefresh/-k-swipe-refresh-layout/index.md) | View with SwipeRefreshLayoutActions and SwipeRefreshLayoutAssertions |
| [com.agoda.kakao.common.views.KSwipeView](../com.agoda.kakao.common.views/-k-swipe-view/index.md) | View with SwipeableActions and BaseAssertions |
| [com.agoda.kakao.switch.KSwitch](../com.agoda.kakao.switch/-k-switch/index.md) | View with SwitchableActions, CheckableAssertions and TextViewAssertions |
@@ -74,6 +81,10 @@
| [com.agoda.kakao.picker.time.KTimePickerDialog](../com.agoda.kakao.picker.time/-k-time-picker-dialog/index.md) | View for interact with default date picker dialog |
| [com.agoda.kakao.common.views.KView](../com.agoda.kakao.common.views/-k-view/index.md) | Simple view with BaseActions and BaseAssertions |
| [com.agoda.kakao.pager.KViewPager](../com.agoda.kakao.pager/-k-view-pager/index.md) | View with SwipeableActions and ViewPagerAssertions |
+| [com.agoda.kakao.pager2.KViewPager2](../com.agoda.kakao.pager2/-k-view-pager2/index.md) | View with SwipeableActions and ViewPager2Assertions |
+| [com.agoda.kakao.pager2.KViewPagerItem](../com.agoda.kakao.pager2/-k-view-pager-item/index.md) | Base class for KViewPager2 adapter items |
+| [com.agoda.kakao.pager2.KViewPagerItemType](../com.agoda.kakao.pager2/-k-view-pager-item-type/index.md) | For internal use. Don't use manually. |
+| [com.agoda.kakao.pager2.KViewPagerItemTypeBuilder](../com.agoda.kakao.pager2/-k-view-pager-item-type-builder/index.md) | Class that maps types to providing functions |
| [com.agoda.kakao.web.KWebView](../com.agoda.kakao.web/-k-web-view/index.md) | Class for interacting with WebViews |
| [com.agoda.kakao.common.matchers.NavigationItemMatcher](../com.agoda.kakao.common.matchers/-navigation-item-matcher/index.md) | Matches NavigationView with given item id checked |
| [com.agoda.kakao.navigation.NavigationViewActions](../com.agoda.kakao.navigation/-navigation-view-actions/index.md) | Provides actions for navigation view |
@@ -96,6 +107,11 @@
| [com.agoda.kakao.common.actions.ScrollableActions](../com.agoda.kakao.common.actions/-scrollable-actions/index.md) | Provides scrolling actions for view |
| [com.agoda.kakao.scroll.ScrollViewActions](../com.agoda.kakao.scroll/-scroll-view-actions/index.md) | Provides ScrollableActions implementation for ScrollView |
| [com.agoda.kakao.progress.SeekBarActions](../com.agoda.kakao.progress/-seek-bar-actions/index.md) | Provides action for SeekBar |
+| [com.agoda.kakao.common.matchers.SelectedChipMatcher](../com.agoda.kakao.common.matchers/-selected-chip-matcher/index.md) | Matches checked chip |
+| [com.agoda.kakao.spinner.SpinnerAdapterActions](../com.agoda.kakao.spinner/-spinner-adapter-actions/index.md) | |
+| [com.agoda.kakao.spinner.SpinnerAdapterAssertions](../com.agoda.kakao.spinner/-spinner-adapter-assertions/index.md) | Provides assertions for Spinner adapter |
+| [com.agoda.kakao.common.matchers.SpinnerAdapterSizeMatcher](../com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/index.md) | Matches Spinner with count of children |
+| [com.agoda.kakao.common.matchers.SpinnerPopupMatcher](../com.agoda.kakao.common.matchers/-spinner-popup-matcher/index.md) | Matches Root View is popup window and contains DropDownView |
| [com.agoda.kakao.common.actions.SwipeableActions](../com.agoda.kakao.common.actions/-swipeable-actions/index.md) | Provides swipe actions for views |
| [com.agoda.kakao.swiperefresh.SwipeRefreshLayoutActions](../com.agoda.kakao.swiperefresh/-swipe-refresh-layout-actions/index.md) | Provides actions for SwipeRefreshLayout |
| [com.agoda.kakao.swiperefresh.SwipeRefreshLayoutAssertions](../com.agoda.kakao.swiperefresh/-swipe-refresh-layout-assertions/index.md) | Provides assertion for SwipeRefreshLayout |
@@ -114,6 +130,9 @@
| [com.agoda.kakao.intent.UriBuilder](../com.agoda.kakao.intent/-uri-builder/index.md) | Class for building Uri matchers |
| [com.agoda.kakao.common.builders.ViewBuilder](../com.agoda.kakao.common.builders/-view-builder/index.md) | Class for building view matchers and interactions |
| [com.agoda.kakao.delegate.ViewInteractionDelegate](../com.agoda.kakao.delegate/-view-interaction-delegate/index.md) | Delegation class for [ViewInteraction](#). Wraps all available public calls and intercepts [check](../com.agoda.kakao.delegate/-view-interaction-delegate/check.md) and [perform](../com.agoda.kakao.delegate/-view-interaction-delegate/perform.md). |
+| [com.agoda.kakao.pager2.ViewPager2Actions](../com.agoda.kakao.pager2/-view-pager2-actions/index.md) | Provides ScrollableActions implementation for ViewPager2 |
+| [com.agoda.kakao.pager2.ViewPager2AdapterAssertions](../com.agoda.kakao.pager2/-view-pager2-adapter-assertions/index.md) | Provides assertions for viewpager2 adapter |
+| [com.agoda.kakao.common.matchers.ViewPager2AdapterSizeMatcher](../com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/index.md) | Matches ViewPager2 with count of children |
| [com.agoda.kakao.pager.ViewPagerAssertions](../com.agoda.kakao.pager/-view-pager-assertions/index.md) | Provides assertions for view pagers |
| [com.agoda.kakao.web.WebActions](../com.agoda.kakao.web/-web-actions/index.md) | Provides action for interacting with WebViews |
| [com.agoda.kakao.web.WebAssertions](../com.agoda.kakao.web/-web-assertions/index.md) | Interface that provides assertions for WebViews |
diff --git a/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-actions/index.md b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-actions/index.md
new file mode 100644
index 00000000..6514ccf4
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-actions/index.md
@@ -0,0 +1,37 @@
+[kakao](../../index.md) / [com.agoda.kakao.chipgroup](../index.md) / [ChipGroupActions](./index.md)
+
+# ChipGroupActions
+
+`interface ChipGroupActions : `[`BaseActions`](../../com.agoda.kakao.common.actions/-base-actions/index.md)
+
+### Inherited Properties
+
+| Name | Summary |
+|---|---|
+| [view](../../com.agoda.kakao.common.actions/-base-actions/view.md) | `abstract val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md) |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [selectChip](select-chip.md) | `open fun selectChip(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Select a Chip in a ChipGroup with matching text`open fun selectChip(id: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Select a Chip in a ChipGroup with matching id |
+| [selectChipAt](select-chip-at.md) | `open fun selectChipAt(index: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Select a Chip in a ChipGroup at a particular index |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [act](../../com.agoda.kakao.common.actions/-base-actions/act.md) | `open fun act(function: () -> ViewAction): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs custom action on a view |
+| [click](../../com.agoda.kakao.common.actions/-base-actions/click.md) | `open fun click(location: GeneralLocation = GeneralLocation.VISIBLE_CENTER): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs click on view |
+| [doubleClick](../../com.agoda.kakao.common.actions/-base-actions/double-click.md) | `open fun doubleClick(location: GeneralLocation = GeneralLocation.VISIBLE_CENTER): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs double click on view |
+| [longClick](../../com.agoda.kakao.common.actions/-base-actions/long-click.md) | `open fun longClick(location: GeneralLocation = GeneralLocation.VISIBLE_CENTER): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs long click on view |
+| [onFailure](../../com.agoda.kakao.common.actions/-base-actions/on-failure.md) | `open fun onFailure(function: (error: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`, matcher: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>) -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Adds failure handler to the view |
+| [pressImeAction](../../com.agoda.kakao.common.actions/-base-actions/press-ime-action.md) | `open fun pressImeAction(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Presses IME action, if supported view is in focus |
+| [repeatUntil](../../com.agoda.kakao.common.actions/-base-actions/repeat-until.md) | `open fun repeatUntil(maxAttempts: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` = 1, action: () -> ViewAction, matcher: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Repeats given action on the view until this view will match the given matcher |
+| [scrollTo](../../com.agoda.kakao.common.actions/-base-actions/scroll-to.md) | `open fun scrollTo(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Scrolls to the view, if possible |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [KChipGroup](../-k-chip-group/index.md) | `class KChipGroup : `[`KBaseView`](../../com.agoda.kakao.common.views/-k-base-view/index.md)`<`[`KChipGroup`](../-k-chip-group/index.md)`>, `[`ChipGroupActions`](./index.md)`, `[`ChipGroupAssertions`](../-chip-group-assertions/index.md)
View with ChipGroupActions and ChipGroupAssertions |
diff --git a/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-actions/select-chip-at.md b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-actions/select-chip-at.md
new file mode 100644
index 00000000..51658e98
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-actions/select-chip-at.md
@@ -0,0 +1,11 @@
+[kakao](../../index.md) / [com.agoda.kakao.chipgroup](../index.md) / [ChipGroupActions](index.md) / [selectChipAt](./select-chip-at.md)
+
+# selectChipAt
+
+`open fun selectChipAt(index: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Select a Chip in a ChipGroup at a particular index
+
+### Parameters
+
+`index` - ChipGroup Chip indes
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-actions/select-chip.md b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-actions/select-chip.md
new file mode 100644
index 00000000..16aecdd8
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-actions/select-chip.md
@@ -0,0 +1,17 @@
+[kakao](../../index.md) / [com.agoda.kakao.chipgroup](../index.md) / [ChipGroupActions](index.md) / [selectChip](./select-chip.md)
+
+# selectChip
+
+`open fun selectChip(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Select a Chip in a ChipGroup with matching text
+
+### Parameters
+
+`text` - Text to match`open fun selectChip(@IdRes id: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Select a Chip in a ChipGroup with matching id
+
+### Parameters
+
+`id` - Chip id
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-assertions/has-chip.md b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-assertions/has-chip.md
new file mode 100644
index 00000000..63fd2f89
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-assertions/has-chip.md
@@ -0,0 +1,23 @@
+[kakao](../../index.md) / [com.agoda.kakao.chipgroup](../index.md) / [ChipGroupAssertions](index.md) / [hasChip](./has-chip.md)
+
+# hasChip
+
+`open fun hasChip(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Check for Chip with text
+
+### Parameters
+
+`text` - expected text in chip`open fun hasChip(matcher: Matcher<`[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Check for Chip with matcher
+
+### Parameters
+
+`matcher` - expected matcher for chip`open fun hasChip(@IdRes id: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Check if ChipGroup has a Chip with id
+
+### Parameters
+
+`id` - Chip id
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-assertions/has-size.md b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-assertions/has-size.md
new file mode 100644
index 00000000..5b498952
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-assertions/has-size.md
@@ -0,0 +1,11 @@
+[kakao](../../index.md) / [com.agoda.kakao.chipgroup](../index.md) / [ChipGroupAssertions](index.md) / [hasSize](./has-size.md)
+
+# hasSize
+
+`open fun hasSize(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Check if ChipGroup has size number of chips
+
+### Parameters
+
+`size` - Chip id
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-assertions/index.md b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-assertions/index.md
new file mode 100644
index 00000000..44409c4b
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-assertions/index.md
@@ -0,0 +1,66 @@
+[kakao](../../index.md) / [com.agoda.kakao.chipgroup](../index.md) / [ChipGroupAssertions](./index.md)
+
+# ChipGroupAssertions
+
+`interface ChipGroupAssertions : `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)
+
+Provides assertions for a ChipGroup
+
+### Inherited Properties
+
+| Name | Summary |
+|---|---|
+| [root](../../com.agoda.kakao.common.assertions/-base-assertions/root.md) | `abstract var root: Matcher` |
+| [view](../../com.agoda.kakao.common.assertions/-base-assertions/view.md) | `abstract val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md) |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [hasChip](has-chip.md) | `open fun hasChip(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check for Chip with text`open fun hasChip(matcher: Matcher<`[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check for Chip with matcher`open fun hasChip(id: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if ChipGroup has a Chip with id |
+| [hasSize](has-size.md) | `open fun hasSize(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if ChipGroup has size number of chips |
+| [isChipSelected](is-chip-selected.md) | `open fun isChipSelected(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun isChipSelected(matcher: Matcher<`[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if Chip with matching text in ChipGroup is selected`open fun isChipSelected(id: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if Chip with matching id in ChipGroup is selected |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [assert](../../com.agoda.kakao.common.assertions/-base-assertions/assert.md) | `open fun assert(function: () -> ViewAssertion): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check the view with the given custom assertion |
+| [doesNotExist](../../com.agoda.kakao.common.assertions/-base-assertions/does-not-exist.md) | `open fun doesNotExist(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the matched view does not exist |
+| [hasAnyTag](../../com.agoda.kakao.common.assertions/-base-assertions/has-any-tag.md) | `open fun hasAnyTag(vararg tags: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has at least one of the given tags |
+| [hasBackgroundColor](../../com.agoda.kakao.common.assertions/-base-assertions/has-background-color.md) | `open fun hasBackgroundColor(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun hasBackgroundColor(colorCode: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given background color |
+| [hasDescendant](../../com.agoda.kakao.common.assertions/-base-assertions/has-descendant.md) | `open fun hasDescendant(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given descendant |
+| [hasNotDescendant](../../com.agoda.kakao.common.assertions/-base-assertions/has-not-descendant.md) | `open fun hasNotDescendant(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has not given descendant |
+| [hasNotSibling](../../com.agoda.kakao.common.assertions/-base-assertions/has-not-sibling.md) | `open fun hasNotSibling(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has not given sibling |
+| [hasSibling](../../com.agoda.kakao.common.assertions/-base-assertions/has-sibling.md) | `open fun hasSibling(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given sibling |
+| [hasTag](../../com.agoda.kakao.common.assertions/-base-assertions/has-tag.md) | `open fun hasTag(tag: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given tag |
+| [inRoot](../../com.agoda.kakao.common.assertions/-base-assertions/in-root.md) | `open fun inRoot(function: `[`RootBuilder`](../../com.agoda.kakao.common.builders/-root-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if the view is in given root |
+| [isClickable](../../com.agoda.kakao.common.assertions/-base-assertions/is-clickable.md) | `open fun isClickable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is clickable |
+| [isCompletelyAbove](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-above.md) | `open fun isCompletelyAbove(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely above of the view matching the given matcher. |
+| [isCompletelyBelow](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-below.md) | `open fun isCompletelyBelow(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely below of the view matching the given matcher. |
+| [isCompletelyDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-displayed.md) | `open fun isCompletelyDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is completely displayed |
+| [isCompletelyLeftOf](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-left-of.md) | `open fun isCompletelyLeftOf(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely right of the view matching the given matcher. |
+| [isCompletelyRightOf](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-right-of.md) | `open fun isCompletelyRightOf(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely right of the view matching the given matcher. |
+| [isDisabled](../../com.agoda.kakao.common.assertions/-base-assertions/is-disabled.md) | `open fun isDisabled(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is disabled |
+| [isDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-displayed.md) | `open fun isDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is displayed |
+| [isEnabled](../../com.agoda.kakao.common.assertions/-base-assertions/is-enabled.md) | `open fun isEnabled(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is enabled |
+| [isFocusable](../../com.agoda.kakao.common.assertions/-base-assertions/is-focusable.md) | `open fun isFocusable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is focusable |
+| [isFocused](../../com.agoda.kakao.common.assertions/-base-assertions/is-focused.md) | `open fun isFocused(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is focused |
+| [isGone](../../com.agoda.kakao.common.assertions/-base-assertions/is-gone.md) | `open fun isGone(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has GONE visibility |
+| [isInvisible](../../com.agoda.kakao.common.assertions/-base-assertions/is-invisible.md) | `open fun isInvisible(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has INVISIBLE visibility |
+| [isNotClickable](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-clickable.md) | `open fun isNotClickable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not clickable |
+| [isNotCompletelyDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-completely-displayed.md) | `open fun isNotCompletelyDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not completely displayed |
+| [isNotDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-displayed.md) | `open fun isNotDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not displayed |
+| [isNotFocusable](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-focusable.md) | `open fun isNotFocusable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not focusable |
+| [isNotFocused](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-focused.md) | `open fun isNotFocused(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not focused |
+| [isNotSelected](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-selected.md) | `open fun isNotSelected(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not selected |
+| [isSelected](../../com.agoda.kakao.common.assertions/-base-assertions/is-selected.md) | `open fun isSelected(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is selected |
+| [isVisible](../../com.agoda.kakao.common.assertions/-base-assertions/is-visible.md) | `open fun isVisible(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has VISIBLE visibility |
+| [matches](../../com.agoda.kakao.common.assertions/-base-assertions/matches.md) | `open fun matches(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if the view matches given matcher |
+| [notMatches](../../com.agoda.kakao.common.assertions/-base-assertions/not-matches.md) | `open fun notMatches(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if the view does not match given matcher |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [KChipGroup](../-k-chip-group/index.md) | `class KChipGroup : `[`KBaseView`](../../com.agoda.kakao.common.views/-k-base-view/index.md)`<`[`KChipGroup`](../-k-chip-group/index.md)`>, `[`ChipGroupActions`](../-chip-group-actions/index.md)`, `[`ChipGroupAssertions`](./index.md)
View with ChipGroupActions and ChipGroupAssertions |
diff --git a/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-assertions/is-chip-selected.md b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-assertions/is-chip-selected.md
new file mode 100644
index 00000000..3442bbfd
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.chipgroup/-chip-group-assertions/is-chip-selected.md
@@ -0,0 +1,23 @@
+[kakao](../../index.md) / [com.agoda.kakao.chipgroup](../index.md) / [ChipGroupAssertions](index.md) / [isChipSelected](./is-chip-selected.md)
+
+# isChipSelected
+
+`open fun isChipSelected(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Check if Chip with matching text in ChipGroup is selected
+
+### Parameters
+
+`text` - text in chip`open fun isChipSelected(matcher: Matcher<`[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Check if Chip with matching text in ChipGroup is selected
+
+### Parameters
+
+`matcher` - matcher with text`open fun isChipSelected(@IdRes id: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Check if Chip with matching id in ChipGroup is selected
+
+### Parameters
+
+`id` - Chip id
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.chipgroup/-k-chip-group/-init-.md b/docs/kakao/com.agoda.kakao.chipgroup/-k-chip-group/-init-.md
new file mode 100644
index 00000000..47e6b8aa
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.chipgroup/-k-chip-group/-init-.md
@@ -0,0 +1,7 @@
+[kakao](../../index.md) / [com.agoda.kakao.chipgroup](../index.md) / [KChipGroup](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`KChipGroup(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
+`KChipGroup(parent: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>, function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
+`KChipGroup(parent: DataInteraction, function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.chipgroup/-k-chip-group/index.md b/docs/kakao/com.agoda.kakao.chipgroup/-k-chip-group/index.md
new file mode 100644
index 00000000..848a423c
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.chipgroup/-k-chip-group/index.md
@@ -0,0 +1,38 @@
+[kakao](../../index.md) / [com.agoda.kakao.chipgroup](../index.md) / [KChipGroup](./index.md)
+
+# KChipGroup
+
+`class KChipGroup : `[`KBaseView`](../../com.agoda.kakao.common.views/-k-base-view/index.md)`<`[`KChipGroup`](./index.md)`>, `[`ChipGroupActions`](../-chip-group-actions/index.md)`, `[`ChipGroupAssertions`](../-chip-group-assertions/index.md)
+
+View with ChipGroupActions and ChipGroupAssertions
+
+**See Also**
+
+[ChipGroupActions](../-chip-group-actions/index.md)
+
+[ChipGroupAssertions](../-chip-group-assertions/index.md)
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `KChipGroup(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
`KChipGroup(parent: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>, function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
`KChipGroup(parent: DataInteraction, function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` |
+
+### Inherited Properties
+
+| Name | Summary |
+|---|---|
+| [root](../../com.agoda.kakao.common.views/-k-base-view/root.md) | `open var root: Matcher` |
+| [view](../../com.agoda.kakao.common.views/-k-base-view/view.md) | `open val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md) |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [hasChip](../-chip-group-assertions/has-chip.md) | `open fun hasChip(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check for Chip with text`open fun hasChip(matcher: Matcher<`[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check for Chip with matcher`open fun hasChip(id: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if ChipGroup has a Chip with id |
+| [hasSize](../-chip-group-assertions/has-size.md) | `open fun hasSize(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if ChipGroup has size number of chips |
+| [invoke](../../com.agoda.kakao.common.views/-k-base-view/invoke.md) | `operator fun invoke(function: `[`T`](../../com.agoda.kakao.common.views/-k-base-view/index.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Operator that allows usage of DSL style |
+| [isChipSelected](../-chip-group-assertions/is-chip-selected.md) | `open fun isChipSelected(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun isChipSelected(matcher: Matcher<`[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if Chip with matching text in ChipGroup is selected`open fun isChipSelected(id: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if Chip with matching id in ChipGroup is selected |
+| [perform](../../com.agoda.kakao.common.views/-k-base-view/perform.md) | `infix fun perform(function: `[`T`](../../com.agoda.kakao.common.views/-k-base-view/index.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`T`](../../com.agoda.kakao.common.views/-k-base-view/index.md#T)
Infix function for invoking lambda on your view |
+| [selectChip](../-chip-group-actions/select-chip.md) | `open fun selectChip(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Select a Chip in a ChipGroup with matching text`open fun selectChip(id: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Select a Chip in a ChipGroup with matching id |
+| [selectChipAt](../-chip-group-actions/select-chip-at.md) | `open fun selectChipAt(index: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Select a Chip in a ChipGroup at a particular index |
diff --git a/docs/kakao/com.agoda.kakao.chipgroup/index.md b/docs/kakao/com.agoda.kakao.chipgroup/index.md
new file mode 100644
index 00000000..24b55df7
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.chipgroup/index.md
@@ -0,0 +1,11 @@
+[kakao](../index.md) / [com.agoda.kakao.chipgroup](./index.md)
+
+## Package com.agoda.kakao.chipgroup
+
+### Types
+
+| Name | Summary |
+|---|---|
+| [ChipGroupActions](-chip-group-actions/index.md) | `interface ChipGroupActions : `[`BaseActions`](../com.agoda.kakao.common.actions/-base-actions/index.md) |
+| [ChipGroupAssertions](-chip-group-assertions/index.md) | `interface ChipGroupAssertions : `[`BaseAssertions`](../com.agoda.kakao.common.assertions/-base-assertions/index.md)
Provides assertions for a ChipGroup |
+| [KChipGroup](-k-chip-group/index.md) | `class KChipGroup : `[`KBaseView`](../com.agoda.kakao.common.views/-k-base-view/index.md)`<`[`KChipGroup`](-k-chip-group/index.md)`>, `[`ChipGroupActions`](-chip-group-actions/index.md)`, `[`ChipGroupAssertions`](-chip-group-assertions/index.md)
View with ChipGroupActions and ChipGroupAssertions |
diff --git a/docs/kakao/com.agoda.kakao.common.actions/-base-actions/index.md b/docs/kakao/com.agoda.kakao.common.actions/-base-actions/index.md
index 690422df..00978819 100644
--- a/docs/kakao/com.agoda.kakao.common.actions/-base-actions/index.md
+++ b/docs/kakao/com.agoda.kakao.common.actions/-base-actions/index.md
@@ -43,6 +43,7 @@ Provides a lot of basic action methods, such as click(), scrollTo(), etc.
|---|---|
| [BottomNavigationViewActions](../../com.agoda.kakao.bottomnav/-bottom-navigation-view-actions/index.md) | `interface BottomNavigationViewActions : `[`BaseActions`](./index.md)
Provides actions for BottomNavigationView |
| [CheckableActions](../../com.agoda.kakao.check/-checkable-actions/index.md) | `interface CheckableActions : `[`BaseActions`](./index.md)
Provides action for checking views |
+| [ChipGroupActions](../../com.agoda.kakao.chipgroup/-chip-group-actions/index.md) | `interface ChipGroupActions : `[`BaseActions`](./index.md) |
| [DatePickerAction](../../com.agoda.kakao.picker.date/-date-picker-action/index.md) | `interface DatePickerAction : `[`BaseActions`](./index.md)
Provides actions for date picker |
| [DatePickerAssertion](../../com.agoda.kakao.picker.date/-date-picker-assertion/index.md) | `interface DatePickerAssertion : `[`BaseActions`](./index.md)
Provides assertions for date picker |
| [DrawerActions](../../com.agoda.kakao.drawer/-drawer-actions/index.md) | `interface DrawerActions : `[`BaseActions`](./index.md)
Provides actions for navigation drawer |
@@ -50,6 +51,7 @@ Provides a lot of basic action methods, such as click(), scrollTo(), etc.
| [KAdapterItem](../../com.agoda.kakao.list/-k-adapter-item/index.md) | `open class KAdapterItem : `[`BaseActions`](./index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)`, `[`Interceptable`](../../com.agoda.kakao.intercept/-interceptable/index.md)``
Base class for KAbsListView adapter items |
| [KBaseView](../../com.agoda.kakao.common.views/-k-base-view/index.md) | `open class KBaseView : `[`BaseActions`](./index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)`, `[`Interceptable`](../../com.agoda.kakao.intercept/-interceptable/index.md)``
Base class for all Kakao views |
| [KRecyclerItem](../../com.agoda.kakao.recycler/-k-recycler-item/index.md) | `open class KRecyclerItem : `[`BaseActions`](./index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)`, `[`Interceptable`](../../com.agoda.kakao.intercept/-interceptable/index.md)``
Base class for KRecyclerView adapter items |
+| [KViewPagerItem](../../com.agoda.kakao.pager2/-k-view-pager-item/index.md) | `open class KViewPagerItem : `[`BaseActions`](./index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)`, `[`Interceptable`](../../com.agoda.kakao.intercept/-interceptable/index.md)``
Base class for KViewPager2 adapter items |
| [NavigationViewActions](../../com.agoda.kakao.navigation/-navigation-view-actions/index.md) | `interface NavigationViewActions : `[`BaseActions`](./index.md)
Provides actions for navigation view |
| [ProgressBarActions](../../com.agoda.kakao.progress/-progress-bar-actions/index.md) | `interface ProgressBarActions : `[`BaseActions`](./index.md)
Provides action for ProgressBar |
| [RatingBarActions](../../com.agoda.kakao.rating/-rating-bar-actions/index.md) | `interface RatingBarActions : `[`BaseActions`](./index.md)
Provides action for RatingBar |
diff --git a/docs/kakao/com.agoda.kakao.common.actions/-scrollable-actions/index.md b/docs/kakao/com.agoda.kakao.common.actions/-scrollable-actions/index.md
index 8697a5ab..42c2e82c 100644
--- a/docs/kakao/com.agoda.kakao.common.actions/-scrollable-actions/index.md
+++ b/docs/kakao/com.agoda.kakao.common.actions/-scrollable-actions/index.md
@@ -47,3 +47,4 @@ Important: does not hold any implementation
|---|---|
| [RecyclerActions](../../com.agoda.kakao.recycler/-recycler-actions/index.md) | `interface RecyclerActions : `[`ScrollableActions`](./index.md)`, `[`SwipeableActions`](../-swipeable-actions/index.md)
Provides ScrollableActions implementation for RecyclerView |
| [ScrollViewActions](../../com.agoda.kakao.scroll/-scroll-view-actions/index.md) | `interface ScrollViewActions : `[`ScrollableActions`](./index.md)`, `[`SwipeableActions`](../-swipeable-actions/index.md)
Provides ScrollableActions implementation for ScrollView |
+| [ViewPager2Actions](../../com.agoda.kakao.pager2/-view-pager2-actions/index.md) | `interface ViewPager2Actions : `[`ScrollableActions`](./index.md)`, `[`SwipeableActions`](../-swipeable-actions/index.md)
Provides ScrollableActions implementation for ViewPager2 |
diff --git a/docs/kakao/com.agoda.kakao.common.actions/-swipeable-actions/index.md b/docs/kakao/com.agoda.kakao.common.actions/-swipeable-actions/index.md
index dac002c6..d64a2812 100644
--- a/docs/kakao/com.agoda.kakao.common.actions/-swipeable-actions/index.md
+++ b/docs/kakao/com.agoda.kakao.common.actions/-swipeable-actions/index.md
@@ -40,6 +40,8 @@ Provides swipe actions for views
|---|---|
| [KSwipeView](../../com.agoda.kakao.common.views/-k-swipe-view/index.md) | `class KSwipeView : `[`KBaseView`](../../com.agoda.kakao.common.views/-k-base-view/index.md)`<`[`KSwipeView`](../../com.agoda.kakao.common.views/-k-swipe-view/index.md)`>, `[`SwipeableActions`](./index.md)
View with SwipeableActions and BaseAssertions |
| [KViewPager](../../com.agoda.kakao.pager/-k-view-pager/index.md) | `class KViewPager : `[`KBaseView`](../../com.agoda.kakao.common.views/-k-base-view/index.md)`<`[`KViewPager`](../../com.agoda.kakao.pager/-k-view-pager/index.md)`>, `[`SwipeableActions`](./index.md)`, `[`ViewPagerAssertions`](../../com.agoda.kakao.pager/-view-pager-assertions/index.md)
View with SwipeableActions and ViewPagerAssertions |
+| [KViewPager2](../../com.agoda.kakao.pager2/-k-view-pager2/index.md) | `class KViewPager2 : `[`ViewPager2Actions`](../../com.agoda.kakao.pager2/-view-pager2-actions/index.md)`, `[`ViewPager2AdapterAssertions`](../../com.agoda.kakao.pager2/-view-pager2-adapter-assertions/index.md)`, `[`SwipeableActions`](./index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)
View with SwipeableActions and ViewPager2Assertions |
| [RecyclerActions](../../com.agoda.kakao.recycler/-recycler-actions/index.md) | `interface RecyclerActions : `[`ScrollableActions`](../-scrollable-actions/index.md)`, `[`SwipeableActions`](./index.md)
Provides ScrollableActions implementation for RecyclerView |
| [ScrollViewActions](../../com.agoda.kakao.scroll/-scroll-view-actions/index.md) | `interface ScrollViewActions : `[`ScrollableActions`](../-scrollable-actions/index.md)`, `[`SwipeableActions`](./index.md)
Provides ScrollableActions implementation for ScrollView |
| [SwipeRefreshLayoutActions](../../com.agoda.kakao.swiperefresh/-swipe-refresh-layout-actions/index.md) | `interface SwipeRefreshLayoutActions : `[`SwipeableActions`](./index.md)
Provides actions for SwipeRefreshLayout |
+| [ViewPager2Actions](../../com.agoda.kakao.pager2/-view-pager2-actions/index.md) | `interface ViewPager2Actions : `[`ScrollableActions`](../-scrollable-actions/index.md)`, `[`SwipeableActions`](./index.md)
Provides ScrollableActions implementation for ViewPager2 |
diff --git a/docs/kakao/com.agoda.kakao.common.assertions/-adapter-assertions/index.md b/docs/kakao/com.agoda.kakao.common.assertions/-adapter-assertions/index.md
index aeabe8a7..6bdc3264 100644
--- a/docs/kakao/com.agoda.kakao.common.assertions/-adapter-assertions/index.md
+++ b/docs/kakao/com.agoda.kakao.common.assertions/-adapter-assertions/index.md
@@ -24,3 +24,5 @@ Provides assertions for view with adapters
|---|---|
| [AbsListViewAdapterAssertions](../../com.agoda.kakao.list/-abs-list-view-adapter-assertions/index.md) | `interface AbsListViewAdapterAssertions : `[`AdapterAssertions`](./index.md)
Provides assertions for AbsListView adapter |
| [RecyclerAdapterAssertions](../../com.agoda.kakao.recycler/-recycler-adapter-assertions/index.md) | `interface RecyclerAdapterAssertions : `[`AdapterAssertions`](./index.md)
Provides assertions for recyclerView adapter |
+| [SpinnerAdapterAssertions](../../com.agoda.kakao.spinner/-spinner-adapter-assertions/index.md) | `interface SpinnerAdapterAssertions : `[`AdapterAssertions`](./index.md)
Provides assertions for Spinner adapter |
+| [ViewPager2AdapterAssertions](../../com.agoda.kakao.pager2/-view-pager2-adapter-assertions/index.md) | `interface ViewPager2AdapterAssertions : `[`AdapterAssertions`](./index.md)
Provides assertions for viewpager2 adapter |
diff --git a/docs/kakao/com.agoda.kakao.common.assertions/-base-assertions/index.md b/docs/kakao/com.agoda.kakao.common.assertions/-base-assertions/index.md
index ecc90498..1136de9d 100644
--- a/docs/kakao/com.agoda.kakao.common.assertions/-base-assertions/index.md
+++ b/docs/kakao/com.agoda.kakao.common.assertions/-base-assertions/index.md
@@ -69,6 +69,7 @@ Provides basic assertions that can be performed on any view
|---|---|
| [BottomNavigationViewAssertions](../../com.agoda.kakao.bottomnav/-bottom-navigation-view-assertions/index.md) | `interface BottomNavigationViewAssertions : `[`BaseAssertions`](./index.md)
Provides assertion for BottomNavigationview |
| [CheckableAssertions](../../com.agoda.kakao.check/-checkable-assertions/index.md) | `interface CheckableAssertions : `[`BaseAssertions`](./index.md)
Provides checkable based assertions for views |
+| [ChipGroupAssertions](../../com.agoda.kakao.chipgroup/-chip-group-assertions/index.md) | `interface ChipGroupAssertions : `[`BaseAssertions`](./index.md)
Provides assertions for a ChipGroup |
| [ImageViewAssertions](../../com.agoda.kakao.image/-image-view-assertions/index.md) | `interface ImageViewAssertions : `[`BaseAssertions`](./index.md)
Provides assertion for image views |
| [KAbsListView](../../com.agoda.kakao.list/-k-abs-list-view/index.md) | `class KAbsListView : `[`ScrollViewActions`](../../com.agoda.kakao.scroll/-scroll-view-actions/index.md)`, `[`AbsListViewAdapterActions`](../../com.agoda.kakao.list/-abs-list-view-adapter-actions/index.md)`, `[`BaseAssertions`](./index.md)`, `[`AbsListViewAdapterAssertions`](../../com.agoda.kakao.list/-abs-list-view-adapter-assertions/index.md)
View with ScrollViewActions and BaseAssertions. Gives access to it's children |
| [KAdapterItem](../../com.agoda.kakao.list/-k-adapter-item/index.md) | `open class KAdapterItem : `[`BaseActions`](../../com.agoda.kakao.common.actions/-base-actions/index.md)`, `[`BaseAssertions`](./index.md)`, `[`Interceptable`](../../com.agoda.kakao.intercept/-interceptable/index.md)``
Base class for KAbsListView adapter items |
@@ -76,6 +77,9 @@ Provides basic assertions that can be performed on any view
| [KRecyclerItem](../../com.agoda.kakao.recycler/-k-recycler-item/index.md) | `open class KRecyclerItem : `[`BaseActions`](../../com.agoda.kakao.common.actions/-base-actions/index.md)`, `[`BaseAssertions`](./index.md)`, `[`Interceptable`](../../com.agoda.kakao.intercept/-interceptable/index.md)``
Base class for KRecyclerView adapter items |
| [KRecyclerView](../../com.agoda.kakao.recycler/-k-recycler-view/index.md) | `class KRecyclerView : `[`RecyclerActions`](../../com.agoda.kakao.recycler/-recycler-actions/index.md)`, `[`BaseAssertions`](./index.md)`, `[`RecyclerAdapterAssertions`](../../com.agoda.kakao.recycler/-recycler-adapter-assertions/index.md)
View with RecyclerActions, BaseAssertions and RecyclerAdapterAssertions. Gives access to it's children |
| [KScrollView](../../com.agoda.kakao.scroll/-k-scroll-view/index.md) | `class KScrollView : `[`KBaseView`](../../com.agoda.kakao.common.views/-k-base-view/index.md)`<`[`KScrollView`](../../com.agoda.kakao.scroll/-k-scroll-view/index.md)`>, `[`ScrollViewActions`](../../com.agoda.kakao.scroll/-scroll-view-actions/index.md)`, `[`BaseAssertions`](./index.md)
View with ScrollViewActions and BaseAssertions |
+| [KSpinner](../../com.agoda.kakao.spinner/-k-spinner/index.md) | `class KSpinner : `[`SpinnerAdapterActions`](../../com.agoda.kakao.spinner/-spinner-adapter-actions/index.md)`, `[`SpinnerAdapterAssertions`](../../com.agoda.kakao.spinner/-spinner-adapter-assertions/index.md)`, `[`BaseAssertions`](./index.md) |
+| [KViewPager2](../../com.agoda.kakao.pager2/-k-view-pager2/index.md) | `class KViewPager2 : `[`ViewPager2Actions`](../../com.agoda.kakao.pager2/-view-pager2-actions/index.md)`, `[`ViewPager2AdapterAssertions`](../../com.agoda.kakao.pager2/-view-pager2-adapter-assertions/index.md)`, `[`SwipeableActions`](../../com.agoda.kakao.common.actions/-swipeable-actions/index.md)`, `[`BaseAssertions`](./index.md)
View with SwipeableActions and ViewPager2Assertions |
+| [KViewPagerItem](../../com.agoda.kakao.pager2/-k-view-pager-item/index.md) | `open class KViewPagerItem : `[`BaseActions`](../../com.agoda.kakao.common.actions/-base-actions/index.md)`, `[`BaseAssertions`](./index.md)`, `[`Interceptable`](../../com.agoda.kakao.intercept/-interceptable/index.md)``
Base class for KViewPager2 adapter items |
| [NavigationViewAssertions](../../com.agoda.kakao.navigation/-navigation-view-assertions/index.md) | `interface NavigationViewAssertions : `[`BaseAssertions`](./index.md)
Provides assertions for NavigationView |
| [ProgressBarAssertions](../../com.agoda.kakao.progress/-progress-bar-assertions/index.md) | `interface ProgressBarAssertions : `[`BaseAssertions`](./index.md)
Provides assertions for progress bar |
| [RatingBarAssertions](../../com.agoda.kakao.rating/-rating-bar-assertions/index.md) | `interface RatingBarAssertions : `[`BaseAssertions`](./index.md)
Provides assertions for RatingBar |
diff --git a/docs/kakao/com.agoda.kakao.common.builders/-view-builder/with-index.md b/docs/kakao/com.agoda.kakao.common.builders/-view-builder/with-index.md
index cf060df2..2b2c2b3c 100644
--- a/docs/kakao/com.agoda.kakao.common.builders/-view-builder/with-index.md
+++ b/docs/kakao/com.agoda.kakao.common.builders/-view-builder/with-index.md
@@ -6,34 +6,6 @@
Matches only view at given [index](with-index.md#com.agoda.kakao.common.builders.ViewBuilder$withIndex(kotlin.Int, kotlin.Function1((com.agoda.kakao.common.builders.ViewBuilder, kotlin.Unit)))/index), if there are multiple views that matches
-IMPORTANT: this matcher is single-use only, since it does not reset it's
-index counter due to specific espresso's matching process. Thus only one action
-and/or assertion can be performed on such a [KView](../../com.agoda.kakao.common.views/-k-view/index.md).
-
-If you need to match view with index multiple times, each time you should match
-with new instance of [withIndex](./with-index.md)
-
-Take a look at the example:
-
-```
-class InputScreen : Screen() {
- fun inputLayout(lambda: KEditText.() -> Unit) = KEditText { withIndex(0, { withId(R.id.input_layout) }) }.invoke(lambda)
-}
-
-@Test
-fun test() {
- screen {
- inputLayout {
- replaceText("EXAMPLE")
- }
-
- inputLayout {
- hasAnyText()
- }
- }
-}
-```
-
### Parameters
`index` - Index of the view to match
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-child-count-matcher/-init-.md b/docs/kakao/com.agoda.kakao.common.matchers/-child-count-matcher/-init-.md
new file mode 100644
index 00000000..a2defdc7
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-child-count-matcher/-init-.md
@@ -0,0 +1,8 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [ChildCountMatcher](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`ChildCountMatcher(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)`
+
+Matches view with size no of children
+
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-child-count-matcher/describe-to.md b/docs/kakao/com.agoda.kakao.common.matchers/-child-count-matcher/describe-to.md
new file mode 100644
index 00000000..dd2c2b4b
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-child-count-matcher/describe-to.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [ChildCountMatcher](index.md) / [describeTo](./describe-to.md)
+
+# describeTo
+
+`fun describeTo(description: Description?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-child-count-matcher/index.md b/docs/kakao/com.agoda.kakao.common.matchers/-child-count-matcher/index.md
new file mode 100644
index 00000000..cc5a728a
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-child-count-matcher/index.md
@@ -0,0 +1,20 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [ChildCountMatcher](./index.md)
+
+# ChildCountMatcher
+
+`class ChildCountMatcher : TypeSafeMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>`
+
+Matches view with size no of children
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `ChildCountMatcher(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)`
Matches view with size no of children |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [describeTo](describe-to.md) | `fun describeTo(description: Description?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [matchesSafely](matches-safely.md) | `fun matchesSafely(item: `[`View`](https://developer.android.com/reference/android/view/View.html)`?): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-child-count-matcher/matches-safely.md b/docs/kakao/com.agoda.kakao.common.matchers/-child-count-matcher/matches-safely.md
new file mode 100644
index 00000000..71489055
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-child-count-matcher/matches-safely.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [ChildCountMatcher](index.md) / [matchesSafely](./matches-safely.md)
+
+# matchesSafely
+
+`protected fun matchesSafely(item: `[`View`](https://developer.android.com/reference/android/view/View.html)`?): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-drawable-matcher/-init-.md b/docs/kakao/com.agoda.kakao.common.matchers/-drawable-matcher/-init-.md
index 0b5f9b8f..c2fa9d3d 100644
--- a/docs/kakao/com.agoda.kakao.common.matchers/-drawable-matcher/-init-.md
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-drawable-matcher/-init-.md
@@ -2,7 +2,7 @@
# <init>
-`DrawableMatcher(@DrawableRes resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` = -1, drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`? = null, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null)`
+`DrawableMatcher(@DrawableRes resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` = -1, drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`? = null, @ColorRes tintColorId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`? = null, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null)`
Matches given drawable with current one
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-drawable-matcher/index.md b/docs/kakao/com.agoda.kakao.common.matchers/-drawable-matcher/index.md
index babe9d77..f4cc339b 100644
--- a/docs/kakao/com.agoda.kakao.common.matchers/-drawable-matcher/index.md
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-drawable-matcher/index.md
@@ -18,7 +18,7 @@ Matches given drawable with current one
| Name | Summary |
|---|---|
-| [<init>](-init-.md) | `DrawableMatcher(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` = -1, drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`? = null, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null)`
Matches given drawable with current one |
+| [<init>](-init-.md) | `DrawableMatcher(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` = -1, drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`? = null, tintColorId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`? = null, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null)`
Matches given drawable with current one |
### Functions
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-selected-chip-matcher/-init-.md b/docs/kakao/com.agoda.kakao.common.matchers/-selected-chip-matcher/-init-.md
new file mode 100644
index 00000000..a213a96a
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-selected-chip-matcher/-init-.md
@@ -0,0 +1,12 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SelectedChipMatcher](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`SelectedChipMatcher()`
+
+Matches checked chip
+
+**See Also**
+
+[Chip](#)
+
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-selected-chip-matcher/describe-to.md b/docs/kakao/com.agoda.kakao.common.matchers/-selected-chip-matcher/describe-to.md
new file mode 100644
index 00000000..1dd75f49
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-selected-chip-matcher/describe-to.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SelectedChipMatcher](index.md) / [describeTo](./describe-to.md)
+
+# describeTo
+
+`fun describeTo(description: Description): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-selected-chip-matcher/index.md b/docs/kakao/com.agoda.kakao.common.matchers/-selected-chip-matcher/index.md
new file mode 100644
index 00000000..de1dd18a
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-selected-chip-matcher/index.md
@@ -0,0 +1,24 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SelectedChipMatcher](./index.md)
+
+# SelectedChipMatcher
+
+`class SelectedChipMatcher : BoundedMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`, Chip>`
+
+Matches checked chip
+
+**See Also**
+
+[Chip](#)
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `SelectedChipMatcher()`
Matches checked chip |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [describeTo](describe-to.md) | `fun describeTo(description: Description): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [matchesSafely](matches-safely.md) | `fun matchesSafely(item: Chip?): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-selected-chip-matcher/matches-safely.md b/docs/kakao/com.agoda.kakao.common.matchers/-selected-chip-matcher/matches-safely.md
new file mode 100644
index 00000000..a298c3ff
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-selected-chip-matcher/matches-safely.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SelectedChipMatcher](index.md) / [matchesSafely](./matches-safely.md)
+
+# matchesSafely
+
+`protected fun matchesSafely(item: Chip?): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/-init-.md b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/-init-.md
new file mode 100644
index 00000000..4cf5a224
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/-init-.md
@@ -0,0 +1,11 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SpinnerAdapterSizeMatcher](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`SpinnerAdapterSizeMatcher(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)`
+
+Matches Spinner with count of children
+
+### Parameters
+
+`size` - of children count in Spinner
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/describe-to.md b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/describe-to.md
new file mode 100644
index 00000000..130c52fc
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/describe-to.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SpinnerAdapterSizeMatcher](index.md) / [describeTo](./describe-to.md)
+
+# describeTo
+
+`fun describeTo(description: Description): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/index.md b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/index.md
new file mode 100644
index 00000000..f394999e
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/index.md
@@ -0,0 +1,24 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SpinnerAdapterSizeMatcher](./index.md)
+
+# SpinnerAdapterSizeMatcher
+
+`class SpinnerAdapterSizeMatcher : BoundedMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`, `[`Spinner`](https://developer.android.com/reference/android/widget/Spinner.html)`>`
+
+Matches Spinner with count of children
+
+### Parameters
+
+`size` - of children count in Spinner
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `SpinnerAdapterSizeMatcher(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)`
Matches Spinner with count of children |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [describeTo](describe-to.md) | `fun describeTo(description: Description): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [matchesSafely](matches-safely.md) | `fun matchesSafely(view: `[`Spinner`](https://developer.android.com/reference/android/widget/Spinner.html)`): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/matches-safely.md b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/matches-safely.md
new file mode 100644
index 00000000..d25926f2
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-adapter-size-matcher/matches-safely.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SpinnerAdapterSizeMatcher](index.md) / [matchesSafely](./matches-safely.md)
+
+# matchesSafely
+
+`protected fun matchesSafely(view: `[`Spinner`](https://developer.android.com/reference/android/widget/Spinner.html)`): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/-init-.md b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/-init-.md
new file mode 100644
index 00000000..9d0b4a82
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/-init-.md
@@ -0,0 +1,8 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SpinnerPopupMatcher](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`SpinnerPopupMatcher()`
+
+Matches Root View is popup window and contains DropDownView
+
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/describe-to.md b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/describe-to.md
new file mode 100644
index 00000000..77d5680b
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/describe-to.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SpinnerPopupMatcher](index.md) / [describeTo](./describe-to.md)
+
+# describeTo
+
+`fun describeTo(description: Description?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/dropdown-class-name.md b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/dropdown-class-name.md
new file mode 100644
index 00000000..a982a9a5
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/dropdown-class-name.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SpinnerPopupMatcher](index.md) / [dropdownClassName](./dropdown-class-name.md)
+
+# dropdownClassName
+
+`var dropdownClassName: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/index.md b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/index.md
new file mode 100644
index 00000000..e8dc34a2
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/index.md
@@ -0,0 +1,27 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SpinnerPopupMatcher](./index.md)
+
+# SpinnerPopupMatcher
+
+`class SpinnerPopupMatcher : TypeSafeMatcher`
+
+Matches Root View is popup window and contains DropDownView
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `SpinnerPopupMatcher()`
Matches Root View is popup window and contains DropDownView |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [dropdownClassName](dropdown-class-name.md) | `var dropdownClassName: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
+| [popupClassName](popup-class-name.md) | `var popupClassName: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [describeTo](describe-to.md) | `fun describeTo(description: Description?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [matchesSafely](matches-safely.md) | `fun matchesSafely(item: Root?): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/matches-safely.md b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/matches-safely.md
new file mode 100644
index 00000000..aab940e6
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/matches-safely.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SpinnerPopupMatcher](index.md) / [matchesSafely](./matches-safely.md)
+
+# matchesSafely
+
+`protected fun matchesSafely(item: Root?): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/popup-class-name.md b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/popup-class-name.md
new file mode 100644
index 00000000..4a1bad27
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-spinner-popup-matcher/popup-class-name.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [SpinnerPopupMatcher](index.md) / [popupClassName](./popup-class-name.md)
+
+# popupClassName
+
+`var popupClassName: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/-init-.md b/docs/kakao/com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/-init-.md
new file mode 100644
index 00000000..61c5378f
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/-init-.md
@@ -0,0 +1,11 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [ViewPager2AdapterSizeMatcher](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`ViewPager2AdapterSizeMatcher(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)`
+
+Matches ViewPager2 with count of children
+
+### Parameters
+
+`size` - of children count in ViewPager2
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/describe-to.md b/docs/kakao/com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/describe-to.md
new file mode 100644
index 00000000..9d8e326e
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/describe-to.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [ViewPager2AdapterSizeMatcher](index.md) / [describeTo](./describe-to.md)
+
+# describeTo
+
+`fun describeTo(description: Description): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/index.md b/docs/kakao/com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/index.md
new file mode 100644
index 00000000..5ed8a50f
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/index.md
@@ -0,0 +1,24 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [ViewPager2AdapterSizeMatcher](./index.md)
+
+# ViewPager2AdapterSizeMatcher
+
+`class ViewPager2AdapterSizeMatcher : BoundedMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`, ViewPager2>`
+
+Matches ViewPager2 with count of children
+
+### Parameters
+
+`size` - of children count in ViewPager2
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `ViewPager2AdapterSizeMatcher(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)`
Matches ViewPager2 with count of children |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [describeTo](describe-to.md) | `fun describeTo(description: Description): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [matchesSafely](matches-safely.md) | `fun matchesSafely(view: ViewPager2): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/matches-safely.md b/docs/kakao/com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/matches-safely.md
new file mode 100644
index 00000000..241515ca
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.common.matchers/-view-pager2-adapter-size-matcher/matches-safely.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.common.matchers](../index.md) / [ViewPager2AdapterSizeMatcher](index.md) / [matchesSafely](./matches-safely.md)
+
+# matchesSafely
+
+`protected fun matchesSafely(view: ViewPager2): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.common.matchers/index.md b/docs/kakao/com.agoda.kakao.common.matchers/index.md
index 6dbabd43..89e1a51b 100644
--- a/docs/kakao/com.agoda.kakao.common.matchers/index.md
+++ b/docs/kakao/com.agoda.kakao.common.matchers/index.md
@@ -9,6 +9,7 @@
| [AbsListViewAdapterSizeMatcher](-abs-list-view-adapter-size-matcher/index.md) | `class AbsListViewAdapterSizeMatcher : BoundedMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`, `[`AbsListView`](https://developer.android.com/reference/android/widget/AbsListView.html)`>`
Matches AbsListView with count of children |
| [AnyTextMatcher](-any-text-matcher/index.md) | `class AnyTextMatcher : BoundedMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`, `[`TextView`](https://developer.android.com/reference/android/widget/TextView.html)`>`
Matches TextView views which contains any text |
| [BackgroundColorMatcher](-background-color-matcher/index.md) | `class BackgroundColorMatcher : TypeSafeMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>`
Matches given background color with the current one |
+| [ChildCountMatcher](-child-count-matcher/index.md) | `class ChildCountMatcher : TypeSafeMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>`
Matches view with size no of children |
| [DrawableMatcher](-drawable-matcher/index.md) | `class DrawableMatcher : TypeSafeMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>`
Matches given drawable with current one |
| [FirstViewMatcher](-first-view-matcher/index.md) | `class FirstViewMatcher : BoundedMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`, `[`View`](https://developer.android.com/reference/android/view/View.html)`>`
Matches first view |
| [IndexMatcher](-index-matcher/index.md) | `class IndexMatcher : TypeSafeMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>`
Matches index'th view that matches given matcher |
@@ -19,7 +20,11 @@
| [ProgressMatcher](-progress-matcher/index.md) | `class ProgressMatcher : BoundedMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`, `[`ProgressBar`](https://developer.android.com/reference/android/widget/ProgressBar.html)`>`
Matcher of value progress of given matcher |
| [RatingBarMatcher](-rating-bar-matcher/index.md) | `class RatingBarMatcher : BoundedMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`, `[`RatingBar`](https://developer.android.com/reference/android/widget/RatingBar.html)`>`
Matcher of value rating of given matcher |
| [RecyclerViewAdapterSizeMatcher](-recycler-view-adapter-size-matcher/index.md) | `class RecyclerViewAdapterSizeMatcher : BoundedMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`, RecyclerView>`
Matches RecyclerView with count of children |
+| [SelectedChipMatcher](-selected-chip-matcher/index.md) | `class SelectedChipMatcher : BoundedMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`, Chip>`
Matches checked chip |
+| [SpinnerAdapterSizeMatcher](-spinner-adapter-size-matcher/index.md) | `class SpinnerAdapterSizeMatcher : BoundedMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`, `[`Spinner`](https://developer.android.com/reference/android/widget/Spinner.html)`>`
Matches Spinner with count of children |
+| [SpinnerPopupMatcher](-spinner-popup-matcher/index.md) | `class SpinnerPopupMatcher : TypeSafeMatcher`
Matches Root View is popup window and contains DropDownView |
| [SwipeRefreshLayoutMatcher](-swipe-refresh-layout-matcher/index.md) | `class SwipeRefreshLayoutMatcher : TypeSafeMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>` |
| [TextInputLayoutCounterEnabledMatcher](-text-input-layout-counter-enabled-matcher/index.md) | `class TextInputLayoutCounterEnabledMatcher : TypeSafeMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>` |
| [TextInputLayoutErrorEnabledMatcher](-text-input-layout-error-enabled-matcher/index.md) | `class TextInputLayoutErrorEnabledMatcher : TypeSafeMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>` |
| [TextInputLayoutHintEnabledMatcher](-text-input-layout-hint-enabled-matcher/index.md) | `class TextInputLayoutHintEnabledMatcher : TypeSafeMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>` |
+| [ViewPager2AdapterSizeMatcher](-view-pager2-adapter-size-matcher/index.md) | `class ViewPager2AdapterSizeMatcher : BoundedMatcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`, ViewPager2>`
Matches ViewPager2 with count of children |
diff --git a/docs/kakao/com.agoda.kakao.common.views/-k-base-view/index.md b/docs/kakao/com.agoda.kakao.common.views/-k-base-view/index.md
index 7ec53a1a..6cb79eda 100644
--- a/docs/kakao/com.agoda.kakao.common.views/-k-base-view/index.md
+++ b/docs/kakao/com.agoda.kakao.common.views/-k-base-view/index.md
@@ -90,6 +90,7 @@ actions/assertions interfaces and override necessary constructors
| [KBottomNavigationView](../../com.agoda.kakao.bottomnav/-k-bottom-navigation-view/index.md) | `class KBottomNavigationView : `[`KBaseView`](./index.md)`<`[`KBottomNavigationView`](../../com.agoda.kakao.bottomnav/-k-bottom-navigation-view/index.md)`>, `[`BottomNavigationViewActions`](../../com.agoda.kakao.bottomnav/-bottom-navigation-view-actions/index.md)`, `[`BottomNavigationViewAssertions`](../../com.agoda.kakao.bottomnav/-bottom-navigation-view-assertions/index.md)
View for acting and asserting on BottomNavigationView |
| [KButton](../../com.agoda.kakao.text/-k-button/index.md) | `class KButton : `[`KBaseView`](./index.md)`<`[`KButton`](../../com.agoda.kakao.text/-k-button/index.md)`>, `[`TextViewAssertions`](../../com.agoda.kakao.text/-text-view-assertions/index.md)
View with BaseActions and TextViewAssertions |
| [KCheckBox](../../com.agoda.kakao.check/-k-check-box/index.md) | `class KCheckBox : `[`KBaseView`](./index.md)`<`[`KCheckBox`](../../com.agoda.kakao.check/-k-check-box/index.md)`>, `[`CheckableActions`](../../com.agoda.kakao.check/-checkable-actions/index.md)`, `[`TextViewAssertions`](../../com.agoda.kakao.text/-text-view-assertions/index.md)`, `[`CheckableAssertions`](../../com.agoda.kakao.check/-checkable-assertions/index.md)
View with CheckableActions, CheckableAssertions and TextViewAssertions |
+| [KChipGroup](../../com.agoda.kakao.chipgroup/-k-chip-group/index.md) | `class KChipGroup : `[`KBaseView`](./index.md)`<`[`KChipGroup`](../../com.agoda.kakao.chipgroup/-k-chip-group/index.md)`>, `[`ChipGroupActions`](../../com.agoda.kakao.chipgroup/-chip-group-actions/index.md)`, `[`ChipGroupAssertions`](../../com.agoda.kakao.chipgroup/-chip-group-assertions/index.md)
View with ChipGroupActions and ChipGroupAssertions |
| [KDatePicker](../../com.agoda.kakao.picker.date/-k-date-picker/index.md) | `class KDatePicker : `[`KBaseView`](./index.md)`<`[`KDatePicker`](../../com.agoda.kakao.picker.date/-k-date-picker/index.md)`>, `[`DatePickerAction`](../../com.agoda.kakao.picker.date/-date-picker-action/index.md)`, `[`DatePickerAssertion`](../../com.agoda.kakao.picker.date/-date-picker-assertion/index.md)
View for interact with default date picker |
| [KDatePickerDialog](../../com.agoda.kakao.picker.date/-k-date-picker-dialog/index.md) | `class KDatePickerDialog : `[`KBaseView`](./index.md)`<`[`KDatePickerDialog`](../../com.agoda.kakao.picker.date/-k-date-picker-dialog/index.md)`>`
View for interact with default date picker dialog |
| [KDrawerView](../../com.agoda.kakao.drawer/-k-drawer-view/index.md) | `class KDrawerView : `[`KBaseView`](./index.md)`<`[`KDrawerView`](../../com.agoda.kakao.drawer/-k-drawer-view/index.md)`>, `[`DrawerActions`](../../com.agoda.kakao.drawer/-drawer-actions/index.md)
View with DrawerActions and BaseAssertions |
diff --git a/docs/kakao/com.agoda.kakao.drawer/-k-drawer-view/index.md b/docs/kakao/com.agoda.kakao.drawer/-k-drawer-view/index.md
index 4b46d7ec..8894d24b 100644
--- a/docs/kakao/com.agoda.kakao.drawer/-k-drawer-view/index.md
+++ b/docs/kakao/com.agoda.kakao.drawer/-k-drawer-view/index.md
@@ -10,7 +10,7 @@ View with DrawerActions and BaseAssertions
[DrawerActions](../-drawer-actions/index.md)
-[BaseAssertions](#)
+[com.agoda.kakao.common.assertions.BaseAssertions](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)
### Constructors
diff --git a/docs/kakao/com.agoda.kakao.image/-image-view-assertions/has-drawable-with-tint.md b/docs/kakao/com.agoda.kakao.image/-image-view-assertions/has-drawable-with-tint.md
new file mode 100644
index 00000000..edd5112f
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.image/-image-view-assertions/has-drawable-with-tint.md
@@ -0,0 +1,25 @@
+[kakao](../../index.md) / [com.agoda.kakao.image](../index.md) / [ImageViewAssertions](index.md) / [hasDrawableWithTint](./has-drawable-with-tint.md)
+
+# hasDrawableWithTint
+
+`open fun hasDrawableWithTint(@DrawableRes resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, @ColorRes tintColorId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Checks if the view displays given drawable
+
+### Parameters
+
+`resId` - Drawable resource to be matched
+
+`tintColorId` - Tint color resource id
+
+`toBitmap` - Lambda with custom Drawable -> Bitmap converter (default is null)`open fun hasDrawableWithTint(drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`, @ColorRes tintColorId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Checks if the view displays given drawable
+
+### Parameters
+
+`drawable` - Drawable to be matched
+
+`tintColorId` - Tint color resource id
+
+`toBitmap` - Lambda with custom Drawable -> Bitmap converter (default is null)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.image/-image-view-assertions/index.md b/docs/kakao/com.agoda.kakao.image/-image-view-assertions/index.md
index 48c0fccd..24d25e04 100644
--- a/docs/kakao/com.agoda.kakao.image/-image-view-assertions/index.md
+++ b/docs/kakao/com.agoda.kakao.image/-image-view-assertions/index.md
@@ -18,6 +18,7 @@ Provides assertion for image views
| Name | Summary |
|---|---|
| [hasDrawable](has-drawable.md) | `open fun hasDrawable(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun hasDrawable(drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displays given drawable |
+| [hasDrawableWithTint](has-drawable-with-tint.md) | `open fun hasDrawableWithTint(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, tintColorId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun hasDrawableWithTint(drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`, tintColorId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displays given drawable |
### Inherited Functions
diff --git a/docs/kakao/com.agoda.kakao.image/-k-image-view/index.md b/docs/kakao/com.agoda.kakao.image/-k-image-view/index.md
index 48c7bf4d..f80cc854 100644
--- a/docs/kakao/com.agoda.kakao.image/-k-image-view/index.md
+++ b/docs/kakao/com.agoda.kakao.image/-k-image-view/index.md
@@ -8,7 +8,7 @@ View with BaseActions and ImageViewAssertions
**See Also**
-[BaseActions](#)
+[com.agoda.kakao.common.actions.BaseActions](../../com.agoda.kakao.common.actions/-base-actions/index.md)
[ImageViewAssertions](../-image-view-assertions/index.md)
@@ -30,5 +30,6 @@ View with BaseActions and ImageViewAssertions
| Name | Summary |
|---|---|
| [hasDrawable](../-image-view-assertions/has-drawable.md) | `open fun hasDrawable(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun hasDrawable(drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displays given drawable |
+| [hasDrawableWithTint](../-image-view-assertions/has-drawable-with-tint.md) | `open fun hasDrawableWithTint(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, tintColorId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun hasDrawableWithTint(drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`, tintColorId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, toBitmap: ((drawable: `[`Drawable`](https://developer.android.com/reference/android/graphics/drawable/Drawable.html)`) -> `[`Bitmap`](https://developer.android.com/reference/android/graphics/Bitmap.html)`)? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displays given drawable |
| [invoke](../../com.agoda.kakao.common.views/-k-base-view/invoke.md) | `operator fun invoke(function: `[`T`](../../com.agoda.kakao.common.views/-k-base-view/index.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Operator that allows usage of DSL style |
| [perform](../../com.agoda.kakao.common.views/-k-base-view/perform.md) | `infix fun perform(function: `[`T`](../../com.agoda.kakao.common.views/-k-base-view/index.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`T`](../../com.agoda.kakao.common.views/-k-base-view/index.md#T)
Infix function for invoking lambda on your view |
diff --git a/docs/kakao/com.agoda.kakao.intercept/-interceptable/index.md b/docs/kakao/com.agoda.kakao.intercept/-interceptable/index.md
index eed222fe..44214110 100644
--- a/docs/kakao/com.agoda.kakao.intercept/-interceptable/index.md
+++ b/docs/kakao/com.agoda.kakao.intercept/-interceptable/index.md
@@ -24,4 +24,5 @@
| [KAdapterItem](../../com.agoda.kakao.list/-k-adapter-item/index.md) | `open class KAdapterItem : `[`BaseActions`](../../com.agoda.kakao.common.actions/-base-actions/index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)`, `[`Interceptable`](./index.md)``
Base class for KAbsListView adapter items |
| [KBaseView](../../com.agoda.kakao.common.views/-k-base-view/index.md) | `open class KBaseView : `[`BaseActions`](../../com.agoda.kakao.common.actions/-base-actions/index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)`, `[`Interceptable`](./index.md)``
Base class for all Kakao views |
| [KRecyclerItem](../../com.agoda.kakao.recycler/-k-recycler-item/index.md) | `open class KRecyclerItem : `[`BaseActions`](../../com.agoda.kakao.common.actions/-base-actions/index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)`, `[`Interceptable`](./index.md)``
Base class for KRecyclerView adapter items |
+| [KViewPagerItem](../../com.agoda.kakao.pager2/-k-view-pager-item/index.md) | `open class KViewPagerItem : `[`BaseActions`](../../com.agoda.kakao.common.actions/-base-actions/index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)`, `[`Interceptable`](./index.md)``
Base class for KViewPager2 adapter items |
| [WebElementBuilder](../../com.agoda.kakao.web/-web-element-builder/index.md) | `class WebElementBuilder : `[`Interceptable`](./index.md)`, WebAssertion<*>, Atom<*>>`
Class for building WebView element matchers |
diff --git a/docs/kakao/com.agoda.kakao.list/-k-adapter-item/index.md b/docs/kakao/com.agoda.kakao.list/-k-adapter-item/index.md
index 8383e0d2..0021325a 100644
--- a/docs/kakao/com.agoda.kakao.list/-k-adapter-item/index.md
+++ b/docs/kakao/com.agoda.kakao.list/-k-adapter-item/index.md
@@ -91,3 +91,4 @@ Please extend this class to provide custom recycler view item types
| Name | Summary |
|---|---|
| [KEmptyAdapterItem](../-k-empty-adapter-item/index.md) | `class KEmptyAdapterItem : `[`KAdapterItem`](./index.md)`<`[`KEmptyAdapterItem`](../-k-empty-adapter-item/index.md)`>`
Empty implementation of KAdapterItem |
+| [KSpinnerItem](../../com.agoda.kakao.spinner/-k-spinner-item/index.md) | `class KSpinnerItem : `[`KAdapterItem`](./index.md)`<`[`KTextView`](../../com.agoda.kakao.text/-k-text-view/index.md)`>, `[`TextViewAssertions`](../../com.agoda.kakao.text/-text-view-assertions/index.md)
KTextView implementation of KAdapterItem |
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-empty-view-pager-item/-init-.md b/docs/kakao/com.agoda.kakao.pager2/-k-empty-view-pager-item/-init-.md
new file mode 100644
index 00000000..c5230da5
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-empty-view-pager-item/-init-.md
@@ -0,0 +1,18 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KEmptyViewPagerItem](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`KEmptyViewPagerItem(parent: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>)`
+
+Empty implementation of KViewPagerItem
+
+Use this if you want to perform/assert on the root view of view holder
+
+### Parameters
+
+`parent` - Matcher of the root view of view holder
+
+**See Also**
+
+[KViewPagerItem](../-k-view-pager-item/index.md)
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-empty-view-pager-item/index.md b/docs/kakao/com.agoda.kakao.pager2/-k-empty-view-pager-item/index.md
new file mode 100644
index 00000000..13667b5b
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-empty-view-pager-item/index.md
@@ -0,0 +1,37 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KEmptyViewPagerItem](./index.md)
+
+# KEmptyViewPagerItem
+
+`class KEmptyViewPagerItem : `[`KViewPagerItem`](../-k-view-pager-item/index.md)`<`[`KEmptyViewPagerItem`](./index.md)`>`
+
+Empty implementation of KViewPagerItem
+
+Use this if you want to perform/assert on the root view of view holder
+
+### Parameters
+
+`parent` - Matcher of the root view of view holder
+
+**See Also**
+
+[KViewPagerItem](../-k-view-pager-item/index.md)
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `KEmptyViewPagerItem(parent: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>)`
Empty implementation of KViewPagerItem |
+
+### Inherited Properties
+
+| Name | Summary |
+|---|---|
+| [root](../-k-view-pager-item/root.md) | `open var root: Matcher!` |
+| [view](../-k-view-pager-item/view.md) | `open val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md) |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [invoke](../-k-view-pager-item/invoke.md) | `operator fun invoke(function: `[`T`](../-k-view-pager-item/index.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Operator that allows usage of DSL style |
+| [perform](../-k-view-pager-item/perform.md) | `infix fun perform(function: `[`T`](../-k-view-pager-item/index.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`T`](../-k-view-pager-item/index.md#T)
Infix function for invoking lambda on your view |
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type-builder/-init-.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type-builder/-init-.md
new file mode 100644
index 00000000..a618ffda
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type-builder/-init-.md
@@ -0,0 +1,18 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItemTypeBuilder](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`KViewPagerItemTypeBuilder()`
+
+Class that maps types to providing functions
+
+To be able to support different item types in KViewPager2, this class
+adds support for mapping item type classes to functions that provide them.
+KEmptyViewPagerItem is added by default.
+
+**See Also**
+
+[itemType](item-type.md)
+
+[KEmptyViewPagerItem](../-k-empty-view-pager-item/index.md)
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type-builder/index.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type-builder/index.md
new file mode 100644
index 00000000..4ee136a9
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type-builder/index.md
@@ -0,0 +1,35 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItemTypeBuilder](./index.md)
+
+# KViewPagerItemTypeBuilder
+
+`class KViewPagerItemTypeBuilder`
+
+Class that maps types to providing functions
+
+To be able to support different item types in KViewPager2, this class
+adds support for mapping item type classes to functions that provide them.
+KEmptyViewPagerItem is added by default.
+
+**See Also**
+
+[itemType](item-type.md)
+
+[KEmptyViewPagerItem](../-k-empty-view-pager-item/index.md)
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `KViewPagerItemTypeBuilder()`
Class that maps types to providing functions |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [itemTypes](item-types.md) | `val itemTypes: `[`MutableMap`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html)`<`[`KClass`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html)`>, `[`KViewPagerItemType`](../-k-view-pager-item-type/index.md)`<`[`KViewPagerItem`](../-k-view-pager-item/index.md)`<*>>>` |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [itemType](item-type.md) | `fun > itemType(provideItem: (Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>) -> `[`T`](item-type.md#T)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Adds entry that helps KViewPager2 to automatically build child views |
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type-builder/item-type.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type-builder/item-type.md
new file mode 100644
index 00000000..5c37e61a
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type-builder/item-type.md
@@ -0,0 +1,14 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItemTypeBuilder](index.md) / [itemType](./item-type.md)
+
+# itemType
+
+`inline fun > itemType(noinline provideItem: (Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>) -> `[`T`](item-type.md#T)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Adds entry that helps KViewPager2 to automatically build child views
+
+To make it work, you need to pass here function (lambda, constructor), that takes matcher and returns
+instance of your item type. In this case, matcher actually matches root view of your adapter item.
+
+### Parameters
+
+`provideItem` - Function that takes matcher of item's root view and returns instance of item view
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type-builder/item-types.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type-builder/item-types.md
new file mode 100644
index 00000000..f98bd36f
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type-builder/item-types.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItemTypeBuilder](index.md) / [itemTypes](./item-types.md)
+
+# itemTypes
+
+`val itemTypes: `[`MutableMap`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.html)`<`[`KClass`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html)`>, `[`KViewPagerItemType`](../-k-view-pager-item-type/index.md)`<`[`KViewPagerItem`](../-k-view-pager-item/index.md)`<*>>>`
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type/-init-.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type/-init-.md
new file mode 100644
index 00000000..a195e761
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type/-init-.md
@@ -0,0 +1,10 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItemType](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`KViewPagerItemType(provideItem: (Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>) -> `[`T`](index.md#T)`)`
+
+For internal use. Don't use manually.
+
+Holds type and corresponding provider function
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type/index.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type/index.md
new file mode 100644
index 00000000..95b88b00
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type/index.md
@@ -0,0 +1,21 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItemType](./index.md)
+
+# KViewPagerItemType
+
+`class KViewPagerItemType>`
+
+For internal use. Don't use manually.
+
+Holds type and corresponding provider function
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `KViewPagerItemType(provideItem: (Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>) -> `[`T`](index.md#T)`)`
For internal use. Don't use manually. |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [provideItem](provide-item.md) | `val provideItem: (Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>) -> `[`T`](index.md#T) |
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type/provide-item.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type/provide-item.md
new file mode 100644
index 00000000..0fa9253a
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item-type/provide-item.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItemType](index.md) / [provideItem](./provide-item.md)
+
+# provideItem
+
+`val provideItem: (Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>) -> `[`T`](index.md#T)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/-init-.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/-init-.md
new file mode 100644
index 00000000..319ad27b
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/-init-.md
@@ -0,0 +1,20 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItem](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`KViewPagerItem(matcher: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>)`
+
+Base class for KViewPager2 adapter items
+
+Please extend this class to provide custom view pager 2 view item types
+
+### Parameters
+
+`T` - type of your item. Used to enable invoke() and perform() on descendants
+
+`matcher` - Matcher of root view of adapter item. Can be used as parent for all views inside item.
+
+**See Also**
+
+[KViewPagerItemTypeBuilder](../-k-view-pager-item-type-builder/index.md)
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/index.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/index.md
new file mode 100644
index 00000000..ea2e10a2
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/index.md
@@ -0,0 +1,93 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItem](./index.md)
+
+# KViewPagerItem
+
+`open class KViewPagerItem : `[`BaseActions`](../../com.agoda.kakao.common.actions/-base-actions/index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)`, `[`Interceptable`](../../com.agoda.kakao.intercept/-interceptable/index.md)``
+
+Base class for KViewPager2 adapter items
+
+Please extend this class to provide custom view pager 2 view item types
+
+### Parameters
+
+`T` - type of your item. Used to enable invoke() and perform() on descendants
+
+`matcher` - Matcher of root view of adapter item. Can be used as parent for all views inside item.
+
+**See Also**
+
+[KViewPagerItemTypeBuilder](../-k-view-pager-item-type-builder/index.md)
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `KViewPagerItem(matcher: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>)`
Base class for KViewPager2 adapter items |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [root](root.md) | `open var root: Matcher!` |
+| [view](view.md) | `open val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md) |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [invoke](invoke.md) | `operator fun invoke(function: `[`T`](index.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Operator that allows usage of DSL style |
+| [perform](perform.md) | `infix fun perform(function: `[`T`](index.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`T`](index.md#T)
Infix function for invoking lambda on your view |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [act](../../com.agoda.kakao.common.actions/-base-actions/act.md) | `open fun act(function: () -> ViewAction): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs custom action on a view |
+| [assert](../../com.agoda.kakao.common.assertions/-base-assertions/assert.md) | `open fun assert(function: () -> ViewAssertion): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check the view with the given custom assertion |
+| [click](../../com.agoda.kakao.common.actions/-base-actions/click.md) | `open fun click(location: GeneralLocation = GeneralLocation.VISIBLE_CENTER): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs click on view |
+| [doesNotExist](../../com.agoda.kakao.common.assertions/-base-assertions/does-not-exist.md) | `open fun doesNotExist(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the matched view does not exist |
+| [doubleClick](../../com.agoda.kakao.common.actions/-base-actions/double-click.md) | `open fun doubleClick(location: GeneralLocation = GeneralLocation.VISIBLE_CENTER): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs double click on view |
+| [hasAnyTag](../../com.agoda.kakao.common.assertions/-base-assertions/has-any-tag.md) | `open fun hasAnyTag(vararg tags: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has at least one of the given tags |
+| [hasBackgroundColor](../../com.agoda.kakao.common.assertions/-base-assertions/has-background-color.md) | `open fun hasBackgroundColor(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun hasBackgroundColor(colorCode: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given background color |
+| [hasDescendant](../../com.agoda.kakao.common.assertions/-base-assertions/has-descendant.md) | `open fun hasDescendant(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given descendant |
+| [hasNotDescendant](../../com.agoda.kakao.common.assertions/-base-assertions/has-not-descendant.md) | `open fun hasNotDescendant(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has not given descendant |
+| [hasNotSibling](../../com.agoda.kakao.common.assertions/-base-assertions/has-not-sibling.md) | `open fun hasNotSibling(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has not given sibling |
+| [hasSibling](../../com.agoda.kakao.common.assertions/-base-assertions/has-sibling.md) | `open fun hasSibling(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given sibling |
+| [hasTag](../../com.agoda.kakao.common.assertions/-base-assertions/has-tag.md) | `open fun hasTag(tag: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given tag |
+| [inRoot](../../com.agoda.kakao.common.assertions/-base-assertions/in-root.md) | `open fun inRoot(function: `[`RootBuilder`](../../com.agoda.kakao.common.builders/-root-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if the view is in given root |
+| [intercept](../../com.agoda.kakao.intercept/-interceptable/intercept.md) | `open fun intercept(builder: `[`Interceptor.Builder`](../../com.agoda.kakao.intercept/-interceptor/-builder/index.md)`<`[`INTERACTION`](../../com.agoda.kakao.intercept/-interceptable/index.md#INTERACTION)`, `[`ASSERTION`](../../com.agoda.kakao.intercept/-interceptable/index.md#ASSERTION)`, `[`ACTION`](../../com.agoda.kakao.intercept/-interceptable/index.md#ACTION)`>.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Sets the interceptors for the instance. Interceptors will be invoked on the interaction with the KView. |
+| [isClickable](../../com.agoda.kakao.common.assertions/-base-assertions/is-clickable.md) | `open fun isClickable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is clickable |
+| [isCompletelyAbove](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-above.md) | `open fun isCompletelyAbove(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely above of the view matching the given matcher. |
+| [isCompletelyBelow](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-below.md) | `open fun isCompletelyBelow(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely below of the view matching the given matcher. |
+| [isCompletelyDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-displayed.md) | `open fun isCompletelyDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is completely displayed |
+| [isCompletelyLeftOf](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-left-of.md) | `open fun isCompletelyLeftOf(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely right of the view matching the given matcher. |
+| [isCompletelyRightOf](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-right-of.md) | `open fun isCompletelyRightOf(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely right of the view matching the given matcher. |
+| [isDisabled](../../com.agoda.kakao.common.assertions/-base-assertions/is-disabled.md) | `open fun isDisabled(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is disabled |
+| [isDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-displayed.md) | `open fun isDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is displayed |
+| [isEnabled](../../com.agoda.kakao.common.assertions/-base-assertions/is-enabled.md) | `open fun isEnabled(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is enabled |
+| [isFocusable](../../com.agoda.kakao.common.assertions/-base-assertions/is-focusable.md) | `open fun isFocusable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is focusable |
+| [isFocused](../../com.agoda.kakao.common.assertions/-base-assertions/is-focused.md) | `open fun isFocused(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is focused |
+| [isGone](../../com.agoda.kakao.common.assertions/-base-assertions/is-gone.md) | `open fun isGone(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has GONE visibility |
+| [isInvisible](../../com.agoda.kakao.common.assertions/-base-assertions/is-invisible.md) | `open fun isInvisible(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has INVISIBLE visibility |
+| [isNotClickable](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-clickable.md) | `open fun isNotClickable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not clickable |
+| [isNotCompletelyDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-completely-displayed.md) | `open fun isNotCompletelyDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not completely displayed |
+| [isNotDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-displayed.md) | `open fun isNotDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not displayed |
+| [isNotFocusable](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-focusable.md) | `open fun isNotFocusable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not focusable |
+| [isNotFocused](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-focused.md) | `open fun isNotFocused(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not focused |
+| [isNotSelected](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-selected.md) | `open fun isNotSelected(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not selected |
+| [isSelected](../../com.agoda.kakao.common.assertions/-base-assertions/is-selected.md) | `open fun isSelected(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is selected |
+| [isVisible](../../com.agoda.kakao.common.assertions/-base-assertions/is-visible.md) | `open fun isVisible(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has VISIBLE visibility |
+| [longClick](../../com.agoda.kakao.common.actions/-base-actions/long-click.md) | `open fun longClick(location: GeneralLocation = GeneralLocation.VISIBLE_CENTER): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs long click on view |
+| [matches](../../com.agoda.kakao.common.assertions/-base-assertions/matches.md) | `open fun matches(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if the view matches given matcher |
+| [notMatches](../../com.agoda.kakao.common.assertions/-base-assertions/not-matches.md) | `open fun notMatches(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if the view does not match given matcher |
+| [onFailure](../../com.agoda.kakao.common.actions/-base-actions/on-failure.md) | `open fun onFailure(function: (error: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`, matcher: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>) -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Adds failure handler to the view |
+| [pressImeAction](../../com.agoda.kakao.common.actions/-base-actions/press-ime-action.md) | `open fun pressImeAction(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Presses IME action, if supported view is in focus |
+| [repeatUntil](../../com.agoda.kakao.common.actions/-base-actions/repeat-until.md) | `open fun repeatUntil(maxAttempts: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` = 1, action: () -> ViewAction, matcher: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Repeats given action on the view until this view will match the given matcher |
+| [reset](../../com.agoda.kakao.intercept/-interceptable/reset.md) | `open fun reset(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Removes the interceptors from the instance. |
+| [scrollTo](../../com.agoda.kakao.common.actions/-base-actions/scroll-to.md) | `open fun scrollTo(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Scrolls to the view, if possible |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [KEmptyViewPagerItem](../-k-empty-view-pager-item/index.md) | `class KEmptyViewPagerItem : `[`KViewPagerItem`](./index.md)`<`[`KEmptyViewPagerItem`](../-k-empty-view-pager-item/index.md)`>`
Empty implementation of KViewPagerItem |
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/invoke.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/invoke.md
new file mode 100644
index 00000000..b7438405
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/invoke.md
@@ -0,0 +1,11 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItem](index.md) / [invoke](./invoke.md)
+
+# invoke
+
+`operator fun invoke(function: `[`T`](index.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Operator that allows usage of DSL style
+
+### Parameters
+
+`function` - Tail lambda with receiver which is your view
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/perform.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/perform.md
new file mode 100644
index 00000000..a4ecd9af
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/perform.md
@@ -0,0 +1,19 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItem](index.md) / [perform](./perform.md)
+
+# perform
+
+`infix fun perform(function: `[`T`](index.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`T`](index.md#T)
+
+Infix function for invoking lambda on your view
+
+Sometimes instance of view is a result of a function or constructor.
+In this specific case you can't call invoke() since it will be considered as
+tail lambda of your fun/constructor. In such cases please use this function.
+
+### Parameters
+
+`function` - Tail lambda with receiver which is your view
+
+**Return**
+This object
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/root.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/root.md
new file mode 100644
index 00000000..696c5b1d
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/root.md
@@ -0,0 +1,8 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItem](index.md) / [root](./root.md)
+
+# root
+
+`open var root: Matcher!`
+
+Overrides [BaseAssertions.root](../../com.agoda.kakao.common.assertions/-base-assertions/root.md)
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/view.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/view.md
new file mode 100644
index 00000000..90d08b87
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager-item/view.md
@@ -0,0 +1,12 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPagerItem](index.md) / [view](./view.md)
+
+# view
+
+`open val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md)
+
+Overrides [BaseActions.view](../../com.agoda.kakao.common.actions/-base-actions/view.md)
+
+Overrides [BaseAssertions.view](../../com.agoda.kakao.common.assertions/-base-assertions/view.md)
+
+Overrides [Interceptable.view](../../com.agoda.kakao.intercept/-interceptable/view.md)
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/-init-.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/-init-.md
new file mode 100644
index 00000000..b5abd247
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/-init-.md
@@ -0,0 +1,50 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPager2](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`KViewPager2(builder: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, itemTypeBuilder: `[`KViewPagerItemTypeBuilder`](../-k-view-pager-item-type-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
+
+Constructs view class with view interaction from given ViewBuilder
+
+### Parameters
+
+`builder` - ViewBuilder which will result in view's interaction
+
+`itemTypeBuilder` - Lambda with receiver where you pass your item providers
+
+**See Also**
+
+[ViewBuilder](../../com.agoda.kakao.common.builders/-view-builder/index.md)
+
+`KViewPager2(parent: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>, builder: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, itemTypeBuilder: `[`KViewPagerItemTypeBuilder`](../-k-view-pager-item-type-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
+
+Constructs view class with parent and view interaction from given ViewBuilder
+
+### Parameters
+
+`parent` - Matcher that will be used as parent in isDescendantOfA() matcher
+
+`builder` - ViewBuilder which will result in view's interaction
+
+`itemTypeBuilder` - Lambda with receiver where you pass your item providers
+
+**See Also**
+
+[ViewBuilder](../../com.agoda.kakao.common.builders/-view-builder/index.md)
+
+`KViewPager2(parent: DataInteraction, builder: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, itemTypeBuilder: `[`KViewPagerItemTypeBuilder`](../-k-view-pager-item-type-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
+
+Constructs view class with parent and view interaction from given ViewBuilder
+
+### Parameters
+
+`parent` - DataInteraction that will be used as parent to ViewBuilder
+
+`builder` - ViewBuilder which will result in view's interaction
+
+`itemTypeBuilder` - Lambda with receiver where you pass your item providers
+
+**See Also**
+
+[ViewBuilder](../../com.agoda.kakao.common.builders/-view-builder/index.md)
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/child-at.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/child-at.md
new file mode 100644
index 00000000..871a1a35
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/child-at.md
@@ -0,0 +1,15 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPager2](index.md) / [childAt](./child-at.md)
+
+# childAt
+
+`inline fun > childAt(position: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, function: `[`T`](child-at.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Performs given actions/assertion on child at given position
+
+### Parameters
+
+`T` - Type of item at given position. Must be registered via constructor.
+
+`position` - Position of item in adapter
+
+`function` - Tail lambda which receiver will be matched item with given type T
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/index.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/index.md
new file mode 100644
index 00000000..89d08614
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/index.md
@@ -0,0 +1,77 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPager2](./index.md)
+
+# KViewPager2
+
+`class KViewPager2 : `[`ViewPager2Actions`](../-view-pager2-actions/index.md)`, `[`ViewPager2AdapterAssertions`](../-view-pager2-adapter-assertions/index.md)`, `[`SwipeableActions`](../../com.agoda.kakao.common.actions/-swipeable-actions/index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)
+
+View with SwipeableActions and ViewPager2Assertions
+
+**See Also**
+
+[SwipeableActions](../../com.agoda.kakao.common.actions/-swipeable-actions/index.md)
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `KViewPager2(builder: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, itemTypeBuilder: `[`KViewPagerItemTypeBuilder`](../-k-view-pager-item-type-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
Constructs view class with view interaction from given ViewBuilder`KViewPager2(parent: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>, builder: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, itemTypeBuilder: `[`KViewPagerItemTypeBuilder`](../-k-view-pager-item-type-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
`KViewPager2(parent: DataInteraction, builder: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, itemTypeBuilder: `[`KViewPagerItemTypeBuilder`](../-k-view-pager-item-type-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
Constructs view class with parent and view interaction from given ViewBuilder |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [itemTypes](item-types.md) | `val itemTypes: `[`Map`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html)`<`[`KClass`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html)`>, `[`KViewPagerItemType`](../-k-view-pager-item-type/index.md)`<`[`KViewPagerItem`](../-k-view-pager-item/index.md)`<*>>>` |
+| [matcher](matcher.md) | `val matcher: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>` |
+| [root](root.md) | `var root: Matcher` |
+| [view](view.md) | `val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md) |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [childAt](child-at.md) | `fun > childAt(position: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, function: `[`T`](child-at.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs given actions/assertion on child at given position |
+| [invoke](invoke.md) | `operator fun invoke(function: `[`KViewPager2`](./index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Operator that allows usage of DSL style |
+| [perform](perform.md) | `infix fun perform(function: `[`KViewPager2`](./index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`KViewPager2`](./index.md)
Infix function for invoking lambda on your view |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [assert](../../com.agoda.kakao.common.assertions/-base-assertions/assert.md) | `open fun assert(function: () -> ViewAssertion): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check the view with the given custom assertion |
+| [doesNotExist](../../com.agoda.kakao.common.assertions/-base-assertions/does-not-exist.md) | `open fun doesNotExist(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the matched view does not exist |
+| [getSize](../-view-pager2-actions/get-size.md) | `open fun getSize(): `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
Returns the size of ViewPager2 |
+| [hasAnyTag](../../com.agoda.kakao.common.assertions/-base-assertions/has-any-tag.md) | `open fun hasAnyTag(vararg tags: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has at least one of the given tags |
+| [hasBackgroundColor](../../com.agoda.kakao.common.assertions/-base-assertions/has-background-color.md) | `open fun hasBackgroundColor(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun hasBackgroundColor(colorCode: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given background color |
+| [hasDescendant](../../com.agoda.kakao.common.assertions/-base-assertions/has-descendant.md) | `open fun hasDescendant(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given descendant |
+| [hasNotDescendant](../../com.agoda.kakao.common.assertions/-base-assertions/has-not-descendant.md) | `open fun hasNotDescendant(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has not given descendant |
+| [hasNotSibling](../../com.agoda.kakao.common.assertions/-base-assertions/has-not-sibling.md) | `open fun hasNotSibling(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has not given sibling |
+| [hasSibling](../../com.agoda.kakao.common.assertions/-base-assertions/has-sibling.md) | `open fun hasSibling(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given sibling |
+| [hasSize](../-view-pager2-adapter-assertions/has-size.md) | `open fun hasSize(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check size of view pager 2 view |
+| [hasTag](../../com.agoda.kakao.common.assertions/-base-assertions/has-tag.md) | `open fun hasTag(tag: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given tag |
+| [inRoot](../../com.agoda.kakao.common.assertions/-base-assertions/in-root.md) | `open fun inRoot(function: `[`RootBuilder`](../../com.agoda.kakao.common.builders/-root-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if the view is in given root |
+| [isClickable](../../com.agoda.kakao.common.assertions/-base-assertions/is-clickable.md) | `open fun isClickable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is clickable |
+| [isCompletelyAbove](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-above.md) | `open fun isCompletelyAbove(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely above of the view matching the given matcher. |
+| [isCompletelyBelow](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-below.md) | `open fun isCompletelyBelow(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely below of the view matching the given matcher. |
+| [isCompletelyDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-displayed.md) | `open fun isCompletelyDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is completely displayed |
+| [isCompletelyLeftOf](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-left-of.md) | `open fun isCompletelyLeftOf(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely right of the view matching the given matcher. |
+| [isCompletelyRightOf](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-right-of.md) | `open fun isCompletelyRightOf(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely right of the view matching the given matcher. |
+| [isDisabled](../../com.agoda.kakao.common.assertions/-base-assertions/is-disabled.md) | `open fun isDisabled(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is disabled |
+| [isDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-displayed.md) | `open fun isDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is displayed |
+| [isEnabled](../../com.agoda.kakao.common.assertions/-base-assertions/is-enabled.md) | `open fun isEnabled(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is enabled |
+| [isFocusable](../../com.agoda.kakao.common.assertions/-base-assertions/is-focusable.md) | `open fun isFocusable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is focusable |
+| [isFocused](../../com.agoda.kakao.common.assertions/-base-assertions/is-focused.md) | `open fun isFocused(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is focused |
+| [isGone](../../com.agoda.kakao.common.assertions/-base-assertions/is-gone.md) | `open fun isGone(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has GONE visibility |
+| [isInvisible](../../com.agoda.kakao.common.assertions/-base-assertions/is-invisible.md) | `open fun isInvisible(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has INVISIBLE visibility |
+| [isNotClickable](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-clickable.md) | `open fun isNotClickable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not clickable |
+| [isNotCompletelyDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-completely-displayed.md) | `open fun isNotCompletelyDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not completely displayed |
+| [isNotDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-displayed.md) | `open fun isNotDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not displayed |
+| [isNotFocusable](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-focusable.md) | `open fun isNotFocusable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not focusable |
+| [isNotFocused](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-focused.md) | `open fun isNotFocused(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not focused |
+| [isNotSelected](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-selected.md) | `open fun isNotSelected(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not selected |
+| [isSelected](../../com.agoda.kakao.common.assertions/-base-assertions/is-selected.md) | `open fun isSelected(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is selected |
+| [isVisible](../../com.agoda.kakao.common.assertions/-base-assertions/is-visible.md) | `open fun isVisible(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has VISIBLE visibility |
+| [matches](../../com.agoda.kakao.common.assertions/-base-assertions/matches.md) | `open fun matches(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if the view matches given matcher |
+| [notMatches](../../com.agoda.kakao.common.assertions/-base-assertions/not-matches.md) | `open fun notMatches(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if the view does not match given matcher |
+| [scrollTo](../-view-pager2-actions/scroll-to.md) | `open fun scrollTo(position: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Scrolls to the specific position of the view |
+| [scrollToEnd](../-view-pager2-actions/scroll-to-end.md) | `open fun scrollToEnd(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Scrolls to the last position of the view |
+| [scrollToStart](../-view-pager2-actions/scroll-to-start.md) | `open fun scrollToStart(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Scrolls to the starting position of the view |
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/invoke.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/invoke.md
new file mode 100644
index 00000000..86ee4494
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/invoke.md
@@ -0,0 +1,11 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPager2](index.md) / [invoke](./invoke.md)
+
+# invoke
+
+`operator fun invoke(function: `[`KViewPager2`](index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Operator that allows usage of DSL style
+
+### Parameters
+
+`function` - Tail lambda with receiver which is your view
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/item-types.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/item-types.md
new file mode 100644
index 00000000..062eb97b
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/item-types.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPager2](index.md) / [itemTypes](./item-types.md)
+
+# itemTypes
+
+`val itemTypes: `[`Map`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html)`<`[`KClass`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html)`>, `[`KViewPagerItemType`](../-k-view-pager-item-type/index.md)`<`[`KViewPagerItem`](../-k-view-pager-item/index.md)`<*>>>`
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/matcher.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/matcher.md
new file mode 100644
index 00000000..dcc13e42
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/matcher.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPager2](index.md) / [matcher](./matcher.md)
+
+# matcher
+
+`val matcher: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>`
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/perform.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/perform.md
new file mode 100644
index 00000000..673bd35c
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/perform.md
@@ -0,0 +1,19 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPager2](index.md) / [perform](./perform.md)
+
+# perform
+
+`infix fun perform(function: `[`KViewPager2`](index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`KViewPager2`](index.md)
+
+Infix function for invoking lambda on your view
+
+Sometimes instance of view is a result of a function or constructor.
+In this specific case you can't call invoke() since it will be considered as
+tail lambda of your fun/constructor. In such cases please use this function.
+
+### Parameters
+
+`function` - Tail lambda with receiver which is your view
+
+**Return**
+This object
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/root.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/root.md
new file mode 100644
index 00000000..fc2c53d1
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/root.md
@@ -0,0 +1,8 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPager2](index.md) / [root](./root.md)
+
+# root
+
+`var root: Matcher`
+
+Overrides [BaseAssertions.root](../../com.agoda.kakao.common.assertions/-base-assertions/root.md)
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/view.md b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/view.md
new file mode 100644
index 00000000..64ccd71a
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-k-view-pager2/view.md
@@ -0,0 +1,12 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [KViewPager2](index.md) / [view](./view.md)
+
+# view
+
+`val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md)
+
+Overrides [BaseActions.view](../../com.agoda.kakao.common.actions/-base-actions/view.md)
+
+Overrides [AdapterAssertions.view](../../com.agoda.kakao.common.assertions/-adapter-assertions/view.md)
+
+Overrides [BaseAssertions.view](../../com.agoda.kakao.common.assertions/-base-assertions/view.md)
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/get-size.md b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/get-size.md
new file mode 100644
index 00000000..908ac3c6
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/get-size.md
@@ -0,0 +1,15 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [ViewPager2Actions](index.md) / [getSize](./get-size.md)
+
+# getSize
+
+`open fun getSize(): `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
+
+Returns the size of ViewPager2
+
+**Return**
+size of adapter
+
+**See Also**
+
+[ViewPager2](#)
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/index.md b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/index.md
new file mode 100644
index 00000000..d2686f4e
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/index.md
@@ -0,0 +1,39 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [ViewPager2Actions](./index.md)
+
+# ViewPager2Actions
+
+`interface ViewPager2Actions : `[`ScrollableActions`](../../com.agoda.kakao.common.actions/-scrollable-actions/index.md)`, `[`SwipeableActions`](../../com.agoda.kakao.common.actions/-swipeable-actions/index.md)
+
+Provides ScrollableActions implementation for ViewPager2
+
+**See Also**
+
+[ScrollableActions](../../com.agoda.kakao.common.actions/-scrollable-actions/index.md)
+
+[SwipeableActions](../../com.agoda.kakao.common.actions/-swipeable-actions/index.md)
+
+[ViewPager2](#)
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [getSize](get-size.md) | `open fun getSize(): `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
Returns the size of ViewPager2 |
+| [scrollTo](scroll-to.md) | `open fun scrollTo(position: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Scrolls to the specific position of the view |
+| [scrollToEnd](scroll-to-end.md) | `open fun scrollToEnd(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Scrolls to the last position of the view |
+| [scrollToStart](scroll-to-start.md) | `open fun scrollToStart(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Scrolls to the starting position of the view |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [swipeDown](../../com.agoda.kakao.common.actions/-swipeable-actions/swipe-down.md) | `open fun swipeDown(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Swipes down on the view |
+| [swipeLeft](../../com.agoda.kakao.common.actions/-swipeable-actions/swipe-left.md) | `open fun swipeLeft(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Swipes left on the view |
+| [swipeRight](../../com.agoda.kakao.common.actions/-swipeable-actions/swipe-right.md) | `open fun swipeRight(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Swipes right on the view |
+| [swipeUp](../../com.agoda.kakao.common.actions/-swipeable-actions/swipe-up.md) | `open fun swipeUp(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Swipes up on the view |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [KViewPager2](../-k-view-pager2/index.md) | `class KViewPager2 : `[`ViewPager2Actions`](./index.md)`, `[`ViewPager2AdapterAssertions`](../-view-pager2-adapter-assertions/index.md)`, `[`SwipeableActions`](../../com.agoda.kakao.common.actions/-swipeable-actions/index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)
View with SwipeableActions and ViewPager2Assertions |
diff --git a/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/scroll-to-end.md b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/scroll-to-end.md
new file mode 100644
index 00000000..d09cded3
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/scroll-to-end.md
@@ -0,0 +1,10 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [ViewPager2Actions](index.md) / [scrollToEnd](./scroll-to-end.md)
+
+# scrollToEnd
+
+`open fun scrollToEnd(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Overrides [ScrollableActions.scrollToEnd](../../com.agoda.kakao.common.actions/-scrollable-actions/scroll-to-end.md)
+
+Scrolls to the last position of the view
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/scroll-to-start.md b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/scroll-to-start.md
new file mode 100644
index 00000000..c1d81980
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/scroll-to-start.md
@@ -0,0 +1,10 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [ViewPager2Actions](index.md) / [scrollToStart](./scroll-to-start.md)
+
+# scrollToStart
+
+`open fun scrollToStart(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Overrides [ScrollableActions.scrollToStart](../../com.agoda.kakao.common.actions/-scrollable-actions/scroll-to-start.md)
+
+Scrolls to the starting position of the view
+
diff --git a/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/scroll-to.md b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/scroll-to.md
new file mode 100644
index 00000000..27a3fa24
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-actions/scroll-to.md
@@ -0,0 +1,13 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [ViewPager2Actions](index.md) / [scrollTo](./scroll-to.md)
+
+# scrollTo
+
+`open fun scrollTo(position: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Overrides [ScrollableActions.scrollTo](../../com.agoda.kakao.common.actions/-scrollable-actions/scroll-to.md)
+
+Scrolls to the specific position of the view
+
+### Parameters
+
+`position` - Scrolling destination
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.pager2/-view-pager2-adapter-assertions/has-size.md b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-adapter-assertions/has-size.md
new file mode 100644
index 00000000..5785b70b
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-adapter-assertions/has-size.md
@@ -0,0 +1,11 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [ViewPager2AdapterAssertions](index.md) / [hasSize](./has-size.md)
+
+# hasSize
+
+`open fun hasSize(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Check size of view pager 2 view
+
+### Parameters
+
+`size` - expected child count size in view pager 2 view
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.pager2/-view-pager2-adapter-assertions/index.md b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-adapter-assertions/index.md
new file mode 100644
index 00000000..bb263602
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/-view-pager2-adapter-assertions/index.md
@@ -0,0 +1,25 @@
+[kakao](../../index.md) / [com.agoda.kakao.pager2](../index.md) / [ViewPager2AdapterAssertions](./index.md)
+
+# ViewPager2AdapterAssertions
+
+`interface ViewPager2AdapterAssertions : `[`AdapterAssertions`](../../com.agoda.kakao.common.assertions/-adapter-assertions/index.md)
+
+Provides assertions for viewpager2 adapter
+
+### Inherited Properties
+
+| Name | Summary |
+|---|---|
+| [view](../../com.agoda.kakao.common.assertions/-adapter-assertions/view.md) | `abstract val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md) |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [hasSize](has-size.md) | `open fun hasSize(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check size of view pager 2 view |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [KViewPager2](../-k-view-pager2/index.md) | `class KViewPager2 : `[`ViewPager2Actions`](../-view-pager2-actions/index.md)`, `[`ViewPager2AdapterAssertions`](./index.md)`, `[`SwipeableActions`](../../com.agoda.kakao.common.actions/-swipeable-actions/index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)
View with SwipeableActions and ViewPager2Assertions |
diff --git a/docs/kakao/com.agoda.kakao.pager2/index.md b/docs/kakao/com.agoda.kakao.pager2/index.md
new file mode 100644
index 00000000..e99f5831
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.pager2/index.md
@@ -0,0 +1,15 @@
+[kakao](../index.md) / [com.agoda.kakao.pager2](./index.md)
+
+## Package com.agoda.kakao.pager2
+
+### Types
+
+| Name | Summary |
+|---|---|
+| [KEmptyViewPagerItem](-k-empty-view-pager-item/index.md) | `class KEmptyViewPagerItem : `[`KViewPagerItem`](-k-view-pager-item/index.md)`<`[`KEmptyViewPagerItem`](-k-empty-view-pager-item/index.md)`>`
Empty implementation of KViewPagerItem |
+| [KViewPager2](-k-view-pager2/index.md) | `class KViewPager2 : `[`ViewPager2Actions`](-view-pager2-actions/index.md)`, `[`ViewPager2AdapterAssertions`](-view-pager2-adapter-assertions/index.md)`, `[`SwipeableActions`](../com.agoda.kakao.common.actions/-swipeable-actions/index.md)`, `[`BaseAssertions`](../com.agoda.kakao.common.assertions/-base-assertions/index.md)
View with SwipeableActions and ViewPager2Assertions |
+| [KViewPagerItem](-k-view-pager-item/index.md) | `open class KViewPagerItem : `[`BaseActions`](../com.agoda.kakao.common.actions/-base-actions/index.md)`, `[`BaseAssertions`](../com.agoda.kakao.common.assertions/-base-assertions/index.md)`, `[`Interceptable`](../com.agoda.kakao.intercept/-interceptable/index.md)``
Base class for KViewPager2 adapter items |
+| [KViewPagerItemType](-k-view-pager-item-type/index.md) | `class KViewPagerItemType>`
For internal use. Don't use manually. |
+| [KViewPagerItemTypeBuilder](-k-view-pager-item-type-builder/index.md) | `class KViewPagerItemTypeBuilder`
Class that maps types to providing functions |
+| [ViewPager2Actions](-view-pager2-actions/index.md) | `interface ViewPager2Actions : `[`ScrollableActions`](../com.agoda.kakao.common.actions/-scrollable-actions/index.md)`, `[`SwipeableActions`](../com.agoda.kakao.common.actions/-swipeable-actions/index.md)
Provides ScrollableActions implementation for ViewPager2 |
+| [ViewPager2AdapterAssertions](-view-pager2-adapter-assertions/index.md) | `interface ViewPager2AdapterAssertions : `[`AdapterAssertions`](../com.agoda.kakao.common.assertions/-adapter-assertions/index.md)
Provides assertions for viewpager2 adapter |
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner-item/-init-.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner-item/-init-.md
new file mode 100644
index 00000000..096904fd
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner-item/-init-.md
@@ -0,0 +1,18 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinnerItem](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`KSpinnerItem(parent: DataInteraction)`
+
+KTextView implementation of KAdapterItem
+
+Use this if you want to perform/assert on the root view of adapter item
+
+### Parameters
+
+`parent` - Matcher of the root view of adapter item
+
+**See Also**
+
+[KAdapterItem](../../com.agoda.kakao.list/-k-adapter-item/index.md)
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner-item/index.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner-item/index.md
new file mode 100644
index 00000000..5c525559
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner-item/index.md
@@ -0,0 +1,46 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinnerItem](./index.md)
+
+# KSpinnerItem
+
+`class KSpinnerItem : `[`KAdapterItem`](../../com.agoda.kakao.list/-k-adapter-item/index.md)`<`[`KTextView`](../../com.agoda.kakao.text/-k-text-view/index.md)`>, `[`TextViewAssertions`](../../com.agoda.kakao.text/-text-view-assertions/index.md)
+
+KTextView implementation of KAdapterItem
+
+Use this if you want to perform/assert on the root view of adapter item
+
+### Parameters
+
+`parent` - Matcher of the root view of adapter item
+
+**See Also**
+
+[KAdapterItem](../../com.agoda.kakao.list/-k-adapter-item/index.md)
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `KSpinnerItem(parent: DataInteraction)`
KTextView implementation of KAdapterItem |
+
+### Inherited Properties
+
+| Name | Summary |
+|---|---|
+| [root](../../com.agoda.kakao.list/-k-adapter-item/root.md) | `open var root: Matcher!` |
+| [view](../../com.agoda.kakao.list/-k-adapter-item/view.md) | `open val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md) |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [containsText](../../com.agoda.kakao.text/-text-view-assertions/contains-text.md) | `open fun containsText(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view contains given text |
+| [hasAnyText](../../com.agoda.kakao.text/-text-view-assertions/has-any-text.md) | `open fun hasAnyText(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has any text |
+| [hasContentDescription](../../com.agoda.kakao.text/-text-view-assertions/has-content-description.md) | `open fun hasContentDescription(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given content description |
+| [hasEmptyText](../../com.agoda.kakao.text/-text-view-assertions/has-empty-text.md) | `open fun hasEmptyText(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view have not any text |
+| [hasHint](../../com.agoda.kakao.text/-text-view-assertions/has-hint.md) | `open fun hasHint(hint: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun hasHint(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given hint |
+| [hasNoText](../../com.agoda.kakao.text/-text-view-assertions/has-no-text.md) | `open fun hasNoText(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun hasNoText(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view does not have a given text |
+| [hasText](../../com.agoda.kakao.text/-text-view-assertions/has-text.md) | `open fun hasText(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun hasText(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given text`open fun hasText(matcher: Matcher<`[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`>): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has text that matches given matcher |
+| [hasTextColor](../../com.agoda.kakao.text/-text-view-assertions/has-text-color.md) | `open fun hasTextColor(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given text color |
+| [invoke](../../com.agoda.kakao.list/-k-adapter-item/invoke.md) | `operator fun invoke(function: `[`T`](../../com.agoda.kakao.list/-k-adapter-item/index.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Operator that allows usage of DSL style |
+| [perform](../../com.agoda.kakao.list/-k-adapter-item/perform.md) | `infix fun perform(function: `[`T`](../../com.agoda.kakao.list/-k-adapter-item/index.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`T`](../../com.agoda.kakao.list/-k-adapter-item/index.md#T)
Infix function for invoking lambda on your view |
+| [startsWithText](../../com.agoda.kakao.text/-text-view-assertions/starts-with-text.md) | `open fun startsWithText(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view text start with given substring |
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/-init-.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/-init-.md
new file mode 100644
index 00000000..9e86e705
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/-init-.md
@@ -0,0 +1,50 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [<init>](./-init-.md)
+
+# <init>
+
+`KSpinner(builder: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, itemTypeBuilder: `[`KAdapterItemTypeBuilder`](../../com.agoda.kakao.list/-k-adapter-item-type-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
+
+Constructs view class with view interaction from given ViewBuilder
+
+### Parameters
+
+`builder` - ViewBuilder which will result in view's interaction
+
+`itemTypeBuilder` - Lambda with receiver where you pass your item providers
+
+**See Also**
+
+[ViewBuilder](../../com.agoda.kakao.common.builders/-view-builder/index.md)
+
+`KSpinner(parent: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>, builder: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, itemTypeBuilder: `[`KAdapterItemTypeBuilder`](../../com.agoda.kakao.list/-k-adapter-item-type-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
+
+Constructs view class with parent and view interaction from given ViewBuilder
+
+### Parameters
+
+`parent` - Matcher that will be used as parent in isDescendantOfA() matcher
+
+`builder` - ViewBuilder which will result in view's interaction
+
+`itemTypeBuilder` - Lambda with receiver where you pass your item providers
+
+**See Also**
+
+[ViewBuilder](../../com.agoda.kakao.common.builders/-view-builder/index.md)
+
+`KSpinner(parent: DataInteraction, builder: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, itemTypeBuilder: `[`KAdapterItemTypeBuilder`](../../com.agoda.kakao.list/-k-adapter-item-type-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
+
+Constructs view class with parent and view interaction from given ViewBuilder
+
+### Parameters
+
+`parent` - DataInteraction that will be used as parent to ViewBuilder
+
+`builder` - ViewBuilder which will result in view's interaction
+
+`itemTypeBuilder` - Lambda with receiver where you pass your item providers
+
+**See Also**
+
+[ViewBuilder](../../com.agoda.kakao.common.builders/-view-builder/index.md)
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/child-at.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/child-at.md
new file mode 100644
index 00000000..5e9511ec
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/child-at.md
@@ -0,0 +1,15 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [childAt](./child-at.md)
+
+# childAt
+
+`inline fun > childAt(position: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, function: `[`T`](child-at.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Performs given actions/assertion on child at given position
+
+### Parameters
+
+`T` - Type of item at given position. Must be registered via constructor.
+
+`position` - Position of item in adapter
+
+`function` - Tail lambda which receiver will be matched item with given type T
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/child-with.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/child-with.md
new file mode 100644
index 00000000..bacf058c
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/child-with.md
@@ -0,0 +1,17 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [childWith](./child-with.md)
+
+# childWith
+
+`inline fun > childWith(childMatcher: `[`DataBuilder`](../../com.agoda.kakao.list/-data-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`T`](child-with.md#T)
+
+Performs given actions/assertion on child that matches given matcher
+
+### Parameters
+
+`T` - Type of item at given position. Must be registered via constructor.
+
+`childMatcher` - Matcher for item in adapter
+
+**Return**
+Item with type T. To make actions/assertions on it immediately, use perform() infix function.
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/children.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/children.md
new file mode 100644
index 00000000..7a45d4b1
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/children.md
@@ -0,0 +1,13 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [children](./children.md)
+
+# children
+
+`inline fun > children(function: `[`T`](children.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Performs given actions/assertion on all children in adapter
+
+### Parameters
+
+`T` - Type of all items. Must be registered via constructor.
+
+`function` - Tail lambda which receiver will be matched item with given type T
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/close.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/close.md
new file mode 100644
index 00000000..891d2d1e
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/close.md
@@ -0,0 +1,10 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [close](./close.md)
+
+# close
+
+`fun close(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Overrides [SpinnerAdapterActions.close](../-spinner-adapter-actions/close.md)
+
+Closes the spinner
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/empty-child-at.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/empty-child-at.md
new file mode 100644
index 00000000..d5beb833
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/empty-child-at.md
@@ -0,0 +1,20 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [emptyChildAt](./empty-child-at.md)
+
+# emptyChildAt
+
+`fun emptyChildAt(position: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, tail: `[`KSpinnerItem`](../-k-spinner-item/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Calls childAt() on your view with base child
+
+Calls childAt() on your Spinner and casts received item to KSpinnerItem
+
+### Parameters
+
+`position` - Position of child in adapter
+
+`tail` - Lambda with KSpinnerItem receiver
+
+**See Also**
+
+[KSpinnerItem](../-k-spinner-item/index.md)
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/empty-child-with.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/empty-child-with.md
new file mode 100644
index 00000000..f54a709a
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/empty-child-with.md
@@ -0,0 +1,21 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [emptyChildWith](./empty-child-with.md)
+
+# emptyChildWith
+
+`fun emptyChildWith(builder: `[`DataBuilder`](../../com.agoda.kakao.list/-data-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`KSpinnerItem`](../-k-spinner-item/index.md)
+
+Calls childWith() on your view with base child
+
+Calls childWith() on your Spinner and casts received item to KSpinnerItem
+
+### Parameters
+
+`builder` - Data builder that will match the child view
+
+**Return**
+Matched KSpinnerItem
+
+**See Also**
+
+[KSpinnerItem](../-k-spinner-item/index.md)
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/empty-first-child.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/empty-first-child.md
new file mode 100644
index 00000000..cf1cd5cd
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/empty-first-child.md
@@ -0,0 +1,18 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [emptyFirstChild](./empty-first-child.md)
+
+# emptyFirstChild
+
+`fun emptyFirstChild(tail: `[`KSpinnerItem`](../-k-spinner-item/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Calls firstChild() on your view with base child
+
+Calls firstChild() on your Spinner and casts received item to KSpinnerItem
+
+### Parameters
+
+`tail` - Lambda with KSpinnerItem receiver
+
+**See Also**
+
+[KSpinnerItem](../-k-spinner-item/index.md)
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/empty-last-child.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/empty-last-child.md
new file mode 100644
index 00000000..c1c0e81f
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/empty-last-child.md
@@ -0,0 +1,18 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [emptyLastChild](./empty-last-child.md)
+
+# emptyLastChild
+
+`fun emptyLastChild(tail: `[`KSpinnerItem`](../-k-spinner-item/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Calls lastChild() on your view with base child
+
+Calls lastChild() on your Spinner and casts received item to KSpinnerItem
+
+### Parameters
+
+`tail` - Lambda with KSpinnerItem receiver
+
+**See Also**
+
+[KSpinnerItem](../-k-spinner-item/index.md)
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/first-child.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/first-child.md
new file mode 100644
index 00000000..205da7c8
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/first-child.md
@@ -0,0 +1,13 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [firstChild](./first-child.md)
+
+# firstChild
+
+`inline fun > firstChild(function: `[`T`](first-child.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Performs given actions/assertion on first child in adapter
+
+### Parameters
+
+`T` - Type of item at first position. Must be registered via constructor.
+
+`function` - Tail lambda which receiver will be matched item with given type T
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/index.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/index.md
new file mode 100644
index 00000000..e1832345
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/index.md
@@ -0,0 +1,80 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](./index.md)
+
+# KSpinner
+
+`class KSpinner : `[`SpinnerAdapterActions`](../-spinner-adapter-actions/index.md)`, `[`SpinnerAdapterAssertions`](../-spinner-adapter-assertions/index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md)
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [<init>](-init-.md) | `KSpinner(builder: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, itemTypeBuilder: `[`KAdapterItemTypeBuilder`](../../com.agoda.kakao.list/-k-adapter-item-type-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
Constructs view class with view interaction from given ViewBuilder`KSpinner(parent: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>, builder: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, itemTypeBuilder: `[`KAdapterItemTypeBuilder`](../../com.agoda.kakao.list/-k-adapter-item-type-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
`KSpinner(parent: DataInteraction, builder: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`, itemTypeBuilder: `[`KAdapterItemTypeBuilder`](../../com.agoda.kakao.list/-k-adapter-item-type-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)`
Constructs view class with parent and view interaction from given ViewBuilder |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [itemTypes](item-types.md) | `val itemTypes: `[`Map`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html)`<`[`KClass`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html)`>, `[`KAdapterItemType`](../../com.agoda.kakao.list/-k-adapter-item-type/index.md)`<`[`KAdapterItem`](../../com.agoda.kakao.list/-k-adapter-item/index.md)`<*>>>` |
+| [matcher](matcher.md) | `val matcher: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>` |
+| [popupView](popup-view.md) | `var popupView: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md)`?` |
+| [root](root.md) | `var root: Matcher` |
+| [view](view.md) | `val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md) |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [childAt](child-at.md) | `fun > childAt(position: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, function: `[`T`](child-at.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs given actions/assertion on child at given position |
+| [children](children.md) | `fun > children(function: `[`T`](children.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs given actions/assertion on all children in adapter |
+| [childWith](child-with.md) | `fun > childWith(childMatcher: `[`DataBuilder`](../../com.agoda.kakao.list/-data-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`T`](child-with.md#T)
Performs given actions/assertion on child that matches given matcher |
+| [close](close.md) | `fun close(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Closes the spinner |
+| [emptyChildAt](empty-child-at.md) | `fun emptyChildAt(position: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, tail: `[`KSpinnerItem`](../-k-spinner-item/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Calls childAt() on your view with base child |
+| [emptyChildWith](empty-child-with.md) | `fun emptyChildWith(builder: `[`DataBuilder`](../../com.agoda.kakao.list/-data-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`KSpinnerItem`](../-k-spinner-item/index.md)
Calls childWith() on your view with base child |
+| [emptyFirstChild](empty-first-child.md) | `fun emptyFirstChild(tail: `[`KSpinnerItem`](../-k-spinner-item/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Calls firstChild() on your view with base child |
+| [emptyLastChild](empty-last-child.md) | `fun emptyLastChild(tail: `[`KSpinnerItem`](../-k-spinner-item/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Calls lastChild() on your view with base child |
+| [firstChild](first-child.md) | `fun > firstChild(function: `[`T`](first-child.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs given actions/assertion on first child in adapter |
+| [invoke](invoke.md) | `operator fun invoke(function: `[`KSpinner`](./index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Operator that allows usage of DSL style |
+| [lastChild](last-child.md) | `fun > lastChild(function: `[`T`](last-child.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Performs given actions/assertion on last child in adapter |
+| [open](open.md) | `fun open(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Opens the spinner to display it's items |
+| [perform](perform.md) | `infix fun perform(function: `[`KSpinner`](./index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`KSpinner`](./index.md)
Infix function for invoking lambda on your view |
+
+### Inherited Functions
+
+| Name | Summary |
+|---|---|
+| [assert](../../com.agoda.kakao.common.assertions/-base-assertions/assert.md) | `open fun assert(function: () -> ViewAssertion): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check the view with the given custom assertion |
+| [doesNotExist](../../com.agoda.kakao.common.assertions/-base-assertions/does-not-exist.md) | `open fun doesNotExist(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the matched view does not exist |
+| [getSize](../-spinner-adapter-actions/get-size.md) | `open fun getSize(): `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
Returns the size of the spinner |
+| [hasAnyTag](../../com.agoda.kakao.common.assertions/-base-assertions/has-any-tag.md) | `open fun hasAnyTag(vararg tags: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has at least one of the given tags |
+| [hasBackgroundColor](../../com.agoda.kakao.common.assertions/-base-assertions/has-background-color.md) | `open fun hasBackgroundColor(resId: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
`open fun hasBackgroundColor(colorCode: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given background color |
+| [hasDescendant](../../com.agoda.kakao.common.assertions/-base-assertions/has-descendant.md) | `open fun hasDescendant(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given descendant |
+| [hasNotDescendant](../../com.agoda.kakao.common.assertions/-base-assertions/has-not-descendant.md) | `open fun hasNotDescendant(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has not given descendant |
+| [hasNotSibling](../../com.agoda.kakao.common.assertions/-base-assertions/has-not-sibling.md) | `open fun hasNotSibling(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has not given sibling |
+| [hasSibling](../../com.agoda.kakao.common.assertions/-base-assertions/has-sibling.md) | `open fun hasSibling(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given sibling |
+| [hasSize](../-spinner-adapter-assertions/has-size.md) | `open fun hasSize(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check size of Spinner |
+| [hasTag](../../com.agoda.kakao.common.assertions/-base-assertions/has-tag.md) | `open fun hasTag(tag: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has given tag |
+| [hasText](../-spinner-adapter-assertions/has-text.md) | `open fun hasText(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check selected text |
+| [inRoot](../../com.agoda.kakao.common.assertions/-base-assertions/in-root.md) | `open fun inRoot(function: `[`RootBuilder`](../../com.agoda.kakao.common.builders/-root-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if the view is in given root |
+| [isClickable](../../com.agoda.kakao.common.assertions/-base-assertions/is-clickable.md) | `open fun isClickable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is clickable |
+| [isCompletelyAbove](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-above.md) | `open fun isCompletelyAbove(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely above of the view matching the given matcher. |
+| [isCompletelyBelow](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-below.md) | `open fun isCompletelyBelow(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely below of the view matching the given matcher. |
+| [isCompletelyDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-displayed.md) | `open fun isCompletelyDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is completely displayed |
+| [isCompletelyLeftOf](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-left-of.md) | `open fun isCompletelyLeftOf(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely right of the view matching the given matcher. |
+| [isCompletelyRightOf](../../com.agoda.kakao.common.assertions/-base-assertions/is-completely-right-of.md) | `open fun isCompletelyRightOf(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view displayed is completely right of the view matching the given matcher. |
+| [isDisabled](../../com.agoda.kakao.common.assertions/-base-assertions/is-disabled.md) | `open fun isDisabled(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is disabled |
+| [isDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-displayed.md) | `open fun isDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is displayed |
+| [isEnabled](../../com.agoda.kakao.common.assertions/-base-assertions/is-enabled.md) | `open fun isEnabled(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is enabled |
+| [isFocusable](../../com.agoda.kakao.common.assertions/-base-assertions/is-focusable.md) | `open fun isFocusable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is focusable |
+| [isFocused](../../com.agoda.kakao.common.assertions/-base-assertions/is-focused.md) | `open fun isFocused(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is focused |
+| [isGone](../../com.agoda.kakao.common.assertions/-base-assertions/is-gone.md) | `open fun isGone(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has GONE visibility |
+| [isInvisible](../../com.agoda.kakao.common.assertions/-base-assertions/is-invisible.md) | `open fun isInvisible(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has INVISIBLE visibility |
+| [isNotClickable](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-clickable.md) | `open fun isNotClickable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not clickable |
+| [isNotCompletelyDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-completely-displayed.md) | `open fun isNotCompletelyDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not completely displayed |
+| [isNotDisplayed](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-displayed.md) | `open fun isNotDisplayed(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not displayed |
+| [isNotFocusable](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-focusable.md) | `open fun isNotFocusable(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not focusable |
+| [isNotFocused](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-focused.md) | `open fun isNotFocused(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not focused |
+| [isNotSelected](../../com.agoda.kakao.common.assertions/-base-assertions/is-not-selected.md) | `open fun isNotSelected(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is not selected |
+| [isSelected](../../com.agoda.kakao.common.assertions/-base-assertions/is-selected.md) | `open fun isSelected(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view is selected |
+| [isVisible](../../com.agoda.kakao.common.assertions/-base-assertions/is-visible.md) | `open fun isVisible(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Checks if the view has VISIBLE visibility |
+| [matches](../../com.agoda.kakao.common.assertions/-base-assertions/matches.md) | `open fun matches(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if the view matches given matcher |
+| [notMatches](../../com.agoda.kakao.common.assertions/-base-assertions/not-matches.md) | `open fun notMatches(function: `[`ViewBuilder`](../../com.agoda.kakao.common.builders/-view-builder/index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check if the view does not match given matcher |
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/invoke.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/invoke.md
new file mode 100644
index 00000000..d45c4ff8
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/invoke.md
@@ -0,0 +1,11 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [invoke](./invoke.md)
+
+# invoke
+
+`operator fun invoke(function: `[`KSpinner`](index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Operator that allows usage of DSL style
+
+### Parameters
+
+`function` - Tail lambda with receiver which is your view
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/item-types.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/item-types.md
new file mode 100644
index 00000000..dffaa498
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/item-types.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [itemTypes](./item-types.md)
+
+# itemTypes
+
+`val itemTypes: `[`Map`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html)`<`[`KClass`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html)`>, `[`KAdapterItemType`](../../com.agoda.kakao.list/-k-adapter-item-type/index.md)`<`[`KAdapterItem`](../../com.agoda.kakao.list/-k-adapter-item/index.md)`<*>>>`
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/last-child.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/last-child.md
new file mode 100644
index 00000000..9ad0f34a
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/last-child.md
@@ -0,0 +1,13 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [lastChild](./last-child.md)
+
+# lastChild
+
+`inline fun > lastChild(function: `[`T`](last-child.md#T)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Performs given actions/assertion on last child in adapter
+
+### Parameters
+
+`T` - Type of item at last position. Must be registered via constructor.
+
+`function` - Tail lambda which receiver will be matched item with given type T
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/matcher.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/matcher.md
new file mode 100644
index 00000000..c6141ce8
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/matcher.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [matcher](./matcher.md)
+
+# matcher
+
+`val matcher: Matcher<`[`View`](https://developer.android.com/reference/android/view/View.html)`>`
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/open.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/open.md
new file mode 100644
index 00000000..171fced6
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/open.md
@@ -0,0 +1,10 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [open](./open.md)
+
+# open
+
+`fun open(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Overrides [SpinnerAdapterActions.open](../-spinner-adapter-actions/open.md)
+
+Opens the spinner to display it's items
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/perform.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/perform.md
new file mode 100644
index 00000000..2df662e2
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/perform.md
@@ -0,0 +1,19 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [perform](./perform.md)
+
+# perform
+
+`infix fun perform(function: `[`KSpinner`](index.md)`.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`KSpinner`](index.md)
+
+Infix function for invoking lambda on your view
+
+Sometimes instance of view is a result of a function or constructor.
+In this specific case you can't call invoke() since it will be considered as
+tail lambda of your fun/constructor. In such cases please use this function.
+
+### Parameters
+
+`function` - Tail lambda with receiver which is your view
+
+**Return**
+This object
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/popup-view.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/popup-view.md
new file mode 100644
index 00000000..c10ed196
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/popup-view.md
@@ -0,0 +1,8 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [popupView](./popup-view.md)
+
+# popupView
+
+`var popupView: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md)`?`
+
+Overrides [SpinnerAdapterActions.popupView](../-spinner-adapter-actions/popup-view.md)
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/root.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/root.md
new file mode 100644
index 00000000..44a79e75
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/root.md
@@ -0,0 +1,8 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [root](./root.md)
+
+# root
+
+`var root: Matcher`
+
+Overrides [BaseAssertions.root](../../com.agoda.kakao.common.assertions/-base-assertions/root.md)
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-k-spinner/view.md b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/view.md
new file mode 100644
index 00000000..90f43aae
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-k-spinner/view.md
@@ -0,0 +1,12 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [KSpinner](index.md) / [view](./view.md)
+
+# view
+
+`val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md)
+
+Overrides [SpinnerAdapterActions.view](../-spinner-adapter-actions/view.md)
+
+Overrides [AdapterAssertions.view](../../com.agoda.kakao.common.assertions/-adapter-assertions/view.md)
+
+Overrides [BaseAssertions.view](../../com.agoda.kakao.common.assertions/-base-assertions/view.md)
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/close.md b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/close.md
new file mode 100644
index 00000000..f0f25054
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/close.md
@@ -0,0 +1,8 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [SpinnerAdapterActions](index.md) / [close](./close.md)
+
+# close
+
+`abstract fun close(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Closes the spinner
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/get-size.md b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/get-size.md
new file mode 100644
index 00000000..3ccd4ce7
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/get-size.md
@@ -0,0 +1,17 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [SpinnerAdapterActions](index.md) / [getSize](./get-size.md)
+
+# getSize
+
+`open fun getSize(): `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
+
+Returns the size of the spinner
+
+**Return**
+size of adapter
+
+**See Also**
+
+[Spinner](#)
+
+[AdapterView](https://developer.android.com/reference/android/widget/AdapterView.html)
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/index.md b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/index.md
new file mode 100644
index 00000000..e44246e6
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/index.md
@@ -0,0 +1,26 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [SpinnerAdapterActions](./index.md)
+
+# SpinnerAdapterActions
+
+`interface SpinnerAdapterActions`
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [popupView](popup-view.md) | `abstract var popupView: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md)`?` |
+| [view](view.md) | `abstract val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md) |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [close](close.md) | `abstract fun close(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Closes the spinner |
+| [getSize](get-size.md) | `open fun getSize(): `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
Returns the size of the spinner |
+| [open](open.md) | `abstract fun open(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Opens the spinner to display it's items |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [KSpinner](../-k-spinner/index.md) | `class KSpinner : `[`SpinnerAdapterActions`](./index.md)`, `[`SpinnerAdapterAssertions`](../-spinner-adapter-assertions/index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md) |
diff --git a/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/open.md b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/open.md
new file mode 100644
index 00000000..bd7be818
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/open.md
@@ -0,0 +1,8 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [SpinnerAdapterActions](index.md) / [open](./open.md)
+
+# open
+
+`abstract fun open(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Opens the spinner to display it's items
+
diff --git a/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/popup-view.md b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/popup-view.md
new file mode 100644
index 00000000..af1ac579
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/popup-view.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [SpinnerAdapterActions](index.md) / [popupView](./popup-view.md)
+
+# popupView
+
+`abstract var popupView: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md)`?`
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/view.md b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/view.md
new file mode 100644
index 00000000..b3c64099
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-actions/view.md
@@ -0,0 +1,5 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [SpinnerAdapterActions](index.md) / [view](./view.md)
+
+# view
+
+`abstract val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md)
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-assertions/has-size.md b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-assertions/has-size.md
new file mode 100644
index 00000000..44085c6e
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-assertions/has-size.md
@@ -0,0 +1,11 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [SpinnerAdapterAssertions](index.md) / [hasSize](./has-size.md)
+
+# hasSize
+
+`open fun hasSize(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Check size of Spinner
+
+### Parameters
+
+`size` - expected child count size in Spinner
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-assertions/has-text.md b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-assertions/has-text.md
new file mode 100644
index 00000000..4cf85111
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-assertions/has-text.md
@@ -0,0 +1,11 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [SpinnerAdapterAssertions](index.md) / [hasText](./has-text.md)
+
+# hasText
+
+`open fun hasText(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+Check selected text
+
+### Parameters
+
+`text` - expected selected text in Spinner
\ No newline at end of file
diff --git a/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-assertions/index.md b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-assertions/index.md
new file mode 100644
index 00000000..37353c83
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/-spinner-adapter-assertions/index.md
@@ -0,0 +1,26 @@
+[kakao](../../index.md) / [com.agoda.kakao.spinner](../index.md) / [SpinnerAdapterAssertions](./index.md)
+
+# SpinnerAdapterAssertions
+
+`interface SpinnerAdapterAssertions : `[`AdapterAssertions`](../../com.agoda.kakao.common.assertions/-adapter-assertions/index.md)
+
+Provides assertions for Spinner adapter
+
+### Inherited Properties
+
+| Name | Summary |
+|---|---|
+| [view](../../com.agoda.kakao.common.assertions/-adapter-assertions/view.md) | `abstract val view: `[`ViewInteractionDelegate`](../../com.agoda.kakao.delegate/-view-interaction-delegate/index.md) |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [hasSize](has-size.md) | `open fun hasSize(size: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check size of Spinner |
+| [hasText](has-text.md) | `open fun hasText(text: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
Check selected text |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [KSpinner](../-k-spinner/index.md) | `class KSpinner : `[`SpinnerAdapterActions`](../-spinner-adapter-actions/index.md)`, `[`SpinnerAdapterAssertions`](./index.md)`, `[`BaseAssertions`](../../com.agoda.kakao.common.assertions/-base-assertions/index.md) |
diff --git a/docs/kakao/com.agoda.kakao.spinner/index.md b/docs/kakao/com.agoda.kakao.spinner/index.md
new file mode 100644
index 00000000..9c4d5b83
--- /dev/null
+++ b/docs/kakao/com.agoda.kakao.spinner/index.md
@@ -0,0 +1,12 @@
+[kakao](../index.md) / [com.agoda.kakao.spinner](./index.md)
+
+## Package com.agoda.kakao.spinner
+
+### Types
+
+| Name | Summary |
+|---|---|
+| [KSpinner](-k-spinner/index.md) | `class KSpinner : `[`SpinnerAdapterActions`](-spinner-adapter-actions/index.md)`, `[`SpinnerAdapterAssertions`](-spinner-adapter-assertions/index.md)`, `[`BaseAssertions`](../com.agoda.kakao.common.assertions/-base-assertions/index.md) |
+| [KSpinnerItem](-k-spinner-item/index.md) | `class KSpinnerItem : `[`KAdapterItem`](../com.agoda.kakao.list/-k-adapter-item/index.md)`<`[`KTextView`](../com.agoda.kakao.text/-k-text-view/index.md)`>, `[`TextViewAssertions`](../com.agoda.kakao.text/-text-view-assertions/index.md)
KTextView implementation of KAdapterItem |
+| [SpinnerAdapterActions](-spinner-adapter-actions/index.md) | `interface SpinnerAdapterActions` |
+| [SpinnerAdapterAssertions](-spinner-adapter-assertions/index.md) | `interface SpinnerAdapterAssertions : `[`AdapterAssertions`](../com.agoda.kakao.common.assertions/-adapter-assertions/index.md)
Provides assertions for Spinner adapter |
diff --git a/docs/kakao/com.agoda.kakao.text/-k-button/index.md b/docs/kakao/com.agoda.kakao.text/-k-button/index.md
index 0c6e93c8..8e570ccb 100644
--- a/docs/kakao/com.agoda.kakao.text/-k-button/index.md
+++ b/docs/kakao/com.agoda.kakao.text/-k-button/index.md
@@ -8,7 +8,7 @@ View with BaseActions and TextViewAssertions
**See Also**
-[BaseActions](#)
+[com.agoda.kakao.common.actions.BaseActions](../../com.agoda.kakao.common.actions/-base-actions/index.md)
[TextViewAssertions](../-text-view-assertions/index.md)
diff --git a/docs/kakao/com.agoda.kakao.text/-k-text-view/index.md b/docs/kakao/com.agoda.kakao.text/-k-text-view/index.md
index 9bafbd53..7b1f0c29 100644
--- a/docs/kakao/com.agoda.kakao.text/-k-text-view/index.md
+++ b/docs/kakao/com.agoda.kakao.text/-k-text-view/index.md
@@ -8,7 +8,7 @@ View with BaseActions and TextViewAssertions
**See Also**
-[BaseActions](#)
+[com.agoda.kakao.common.actions.BaseActions](../../com.agoda.kakao.common.actions/-base-actions/index.md)
[TextViewActions](../-text-view-actions/index.md)
diff --git a/docs/kakao/com.agoda.kakao.text/-text-view-assertions/index.md b/docs/kakao/com.agoda.kakao.text/-text-view-assertions/index.md
index 50eb7563..e45a34d7 100644
--- a/docs/kakao/com.agoda.kakao.text/-text-view-assertions/index.md
+++ b/docs/kakao/com.agoda.kakao.text/-text-view-assertions/index.md
@@ -72,5 +72,6 @@ Provides text based assertions for views
| [KButton](../-k-button/index.md) | `class KButton : `[`KBaseView`](../../com.agoda.kakao.common.views/-k-base-view/index.md)`<`[`KButton`](../-k-button/index.md)`>, `[`TextViewAssertions`](./index.md)
View with BaseActions and TextViewAssertions |
| [KCheckBox](../../com.agoda.kakao.check/-k-check-box/index.md) | `class KCheckBox : `[`KBaseView`](../../com.agoda.kakao.common.views/-k-base-view/index.md)`<`[`KCheckBox`](../../com.agoda.kakao.check/-k-check-box/index.md)`>, `[`CheckableActions`](../../com.agoda.kakao.check/-checkable-actions/index.md)`, `[`TextViewAssertions`](./index.md)`, `[`CheckableAssertions`](../../com.agoda.kakao.check/-checkable-assertions/index.md)
View with CheckableActions, CheckableAssertions and TextViewAssertions |
| [KEditText](../../com.agoda.kakao.edit/-k-edit-text/index.md) | `class KEditText : `[`KBaseView`](../../com.agoda.kakao.common.views/-k-base-view/index.md)`<`[`KEditText`](../../com.agoda.kakao.edit/-k-edit-text/index.md)`>, `[`EditableActions`](../../com.agoda.kakao.edit/-editable-actions/index.md)`, `[`TextViewAssertions`](./index.md)
View with EditableActions and TextViewAssertions |
+| [KSpinnerItem](../../com.agoda.kakao.spinner/-k-spinner-item/index.md) | `class KSpinnerItem : `[`KAdapterItem`](../../com.agoda.kakao.list/-k-adapter-item/index.md)`<`[`KTextView`](../-k-text-view/index.md)`>, `[`TextViewAssertions`](./index.md)
KTextView implementation of KAdapterItem |
| [KSwitch](../../com.agoda.kakao.switch/-k-switch/index.md) | `class KSwitch : `[`KBaseView`](../../com.agoda.kakao.common.views/-k-base-view/index.md)`<`[`KSwitch`](../../com.agoda.kakao.switch/-k-switch/index.md)`>, `[`SwitchableActions`](../../com.agoda.kakao.switch/-switchable-actions/index.md)`, `[`TextViewAssertions`](./index.md)`, `[`CheckableAssertions`](../../com.agoda.kakao.check/-checkable-assertions/index.md)
View with SwitchableActions, CheckableAssertions and TextViewAssertions |
| [KTextView](../-k-text-view/index.md) | `class KTextView : `[`KBaseView`](../../com.agoda.kakao.common.views/-k-base-view/index.md)`<`[`KTextView`](../-k-text-view/index.md)`>, `[`TextViewActions`](../-text-view-actions/index.md)`, `[`TextViewAssertions`](./index.md)
View with BaseActions and TextViewAssertions |
diff --git a/docs/kakao/index.md b/docs/kakao/index.md
index 5bfb662b..74ade488 100644
--- a/docs/kakao/index.md
+++ b/docs/kakao/index.md
@@ -7,6 +7,7 @@
| [com.agoda.kakao](com.agoda.kakao/index.md) | |
| [com.agoda.kakao.bottomnav](com.agoda.kakao.bottomnav/index.md) | |
| [com.agoda.kakao.check](com.agoda.kakao.check/index.md) | |
+| [com.agoda.kakao.chipgroup](com.agoda.kakao.chipgroup/index.md) | |
| [com.agoda.kakao.common](com.agoda.kakao.common/index.md) | |
| [com.agoda.kakao.common.actions](com.agoda.kakao.common.actions/index.md) | |
| [com.agoda.kakao.common.assertions](com.agoda.kakao.common.assertions/index.md) | |
@@ -23,6 +24,7 @@
| [com.agoda.kakao.list](com.agoda.kakao.list/index.md) | |
| [com.agoda.kakao.navigation](com.agoda.kakao.navigation/index.md) | |
| [com.agoda.kakao.pager](com.agoda.kakao.pager/index.md) | |
+| [com.agoda.kakao.pager2](com.agoda.kakao.pager2/index.md) | |
| [com.agoda.kakao.picker.date](com.agoda.kakao.picker.date/index.md) | |
| [com.agoda.kakao.picker.time](com.agoda.kakao.picker.time/index.md) | |
| [com.agoda.kakao.progress](com.agoda.kakao.progress/index.md) | |
@@ -30,6 +32,7 @@
| [com.agoda.kakao.recycler](com.agoda.kakao.recycler/index.md) | |
| [com.agoda.kakao.screen](com.agoda.kakao.screen/index.md) | |
| [com.agoda.kakao.scroll](com.agoda.kakao.scroll/index.md) | |
+| [com.agoda.kakao.spinner](com.agoda.kakao.spinner/index.md) | |
| [com.agoda.kakao.swiperefresh](com.agoda.kakao.swiperefresh/index.md) | |
| [com.agoda.kakao.switch](com.agoda.kakao.switch/index.md) | |
| [com.agoda.kakao.tabs](com.agoda.kakao.tabs/index.md) | |
diff --git a/docs/kakao/package-list b/docs/kakao/package-list
index aad4360f..ae1e1908 100644
--- a/docs/kakao/package-list
+++ b/docs/kakao/package-list
@@ -4,6 +4,7 @@ $dokka.linkExtension:md
com.agoda.kakao
com.agoda.kakao.bottomnav
com.agoda.kakao.check
+com.agoda.kakao.chipgroup
com.agoda.kakao.common
com.agoda.kakao.common.actions
com.agoda.kakao.common.assertions
@@ -20,6 +21,7 @@ com.agoda.kakao.intercept
com.agoda.kakao.list
com.agoda.kakao.navigation
com.agoda.kakao.pager
+com.agoda.kakao.pager2
com.agoda.kakao.picker.date
com.agoda.kakao.picker.time
com.agoda.kakao.progress
@@ -27,6 +29,7 @@ com.agoda.kakao.rating
com.agoda.kakao.recycler
com.agoda.kakao.screen
com.agoda.kakao.scroll
+com.agoda.kakao.spinner
com.agoda.kakao.swiperefresh
com.agoda.kakao.switch
com.agoda.kakao.tabs
diff --git a/kakao/build.gradle b/kakao/build.gradle
index b7544aeb..9f684021 100644
--- a/kakao/build.gradle
+++ b/kakao/build.gradle
@@ -29,12 +29,13 @@ dependencies {
implementation libraries.kotlin_stdlib
implementation libraries.appcompat
implementation libraries.recyclerview
+ implementation libraries.viewpager2
+ implementation libraries.swiperefresh
implementation libraries.design
implementation libraries.espresso_core
implementation libraries.espresso_web
implementation libraries.espresso_intents
implementation libraries.espresso_contrib
- implementation libraries.viewpager2
}
apply plugin: 'com.github.dcendents.android-maven'
diff --git a/kakao/src/main/kotlin/com/agoda/kakao/common/matchers/SpinnerPopupMatcher.kt b/kakao/src/main/kotlin/com/agoda/kakao/common/matchers/SpinnerPopupMatcher.kt
index cee38070..0af0509c 100644
--- a/kakao/src/main/kotlin/com/agoda/kakao/common/matchers/SpinnerPopupMatcher.kt
+++ b/kakao/src/main/kotlin/com/agoda/kakao/common/matchers/SpinnerPopupMatcher.kt
@@ -1,10 +1,12 @@
package com.agoda.kakao.common.matchers
-import android.os.Build
import androidx.test.espresso.Root
-import androidx.test.espresso.matcher.RootMatchers
-import androidx.test.espresso.matcher.ViewMatchers
-import org.hamcrest.CoreMatchers
+import androidx.test.espresso.matcher.RootMatchers.withDecorView
+import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
+import androidx.test.espresso.matcher.ViewMatchers.withClassName
+import org.hamcrest.CoreMatchers.allOf
+import org.hamcrest.CoreMatchers.anyOf
+import org.hamcrest.CoreMatchers.equalTo
import org.hamcrest.Description
import org.hamcrest.TypeSafeMatcher
@@ -13,34 +15,37 @@ import org.hamcrest.TypeSafeMatcher
*
*/
class SpinnerPopupMatcher : TypeSafeMatcher() {
+ var popupClassName = arrayOf(
+ "android.widget.PopupWindow\$PopupViewContainer",
+ "android.widget.PopupWindow\$PopupDecorView"
+ )
- var popupClassName = ""
- var dropdownClassName = ""
+ var dropdownClassName = arrayOf(
+ "androidx.appcompat.widget.DropDownListView",
+ "android.widget.ListPopupWindow\$DropDownListView",
+ "android.widget.DropDownListView"
+ )
override fun describeTo(description: Description?) {
description?.appendText(
- "with decor view of type $popupClassName and Descendant $dropdownClassName"
+ "with decor view of any type in $popupClassName and descendant of any type in $dropdownClassName"
)
}
override fun matchesSafely(item: Root?): Boolean {
- val sdkVersion = Build.VERSION.SDK_INT
-
- popupClassName = when (sdkVersion) {
- in 17..21 -> "android.widget.PopupWindow\$PopupViewContainer"
- else -> "android.widget.PopupWindow\$PopupDecorView"
- }
-
- dropdownClassName = when (sdkVersion) {
- in 17..21 -> "androidx.appcompat.widget.DropDownListView"
- in 22..23 -> "android.widget.ListPopupWindow\$DropDownListView"
- else -> "android.widget.DropDownListView"
- }
-
- return RootMatchers.withDecorView(
- CoreMatchers.allOf(
- ViewMatchers.withClassName(CoreMatchers.`is`(popupClassName)),
- ViewMatchers.hasDescendant(ViewMatchers.withClassName(CoreMatchers.`is`(dropdownClassName)))
+ return withDecorView(
+ allOf(
+ withClassName(anyOf(
+ equalTo(popupClassName[0]),
+ equalTo(popupClassName[1])
+ )),
+ hasDescendant(withClassName(
+ anyOf(
+ equalTo(dropdownClassName[0]),
+ equalTo(dropdownClassName[1]),
+ equalTo(dropdownClassName[2])
+ )
+ ))
)
).matches(item)
}