@ledgerhq/lumen-ui-rnative 0.1.22 → 0.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/dist/module/i18n/I18nProvider.js.map +1 -1
  2. package/dist/module/i18n/i18n.js.map +1 -1
  3. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.js.map +1 -1
  4. package/dist/module/lib/Components/BaseInput/BaseInput.js +1 -1
  5. package/dist/module/lib/Components/BaseInput/BaseInput.js.map +1 -1
  6. package/dist/module/lib/Components/BottomSheet/BottomSheet.js.map +1 -1
  7. package/dist/module/lib/Components/BottomSheet/BottomSheet.test.js.map +1 -1
  8. package/dist/module/lib/Components/Card/Card.js +1 -1
  9. package/dist/module/lib/Components/Card/Card.js.map +1 -1
  10. package/dist/module/lib/Components/Checkbox/BaseCheckbox.js.map +1 -1
  11. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.js.map +1 -1
  12. package/dist/module/lib/Components/ListItem/ListItem.js +57 -27
  13. package/dist/module/lib/Components/ListItem/ListItem.js.map +1 -1
  14. package/dist/module/lib/Components/ListItem/ListItem.mdx +15 -7
  15. package/dist/module/lib/Components/ListItem/ListItem.stories.js +497 -283
  16. package/dist/module/lib/Components/ListItem/ListItem.stories.js.map +1 -1
  17. package/dist/module/lib/Components/ListItem/ListItem.test.js +153 -0
  18. package/dist/module/lib/Components/ListItem/ListItem.test.js.map +1 -0
  19. package/dist/module/lib/Components/{TriggerButton/TriggerButton.js → MediaButton/MediaButton.js} +13 -10
  20. package/dist/module/lib/Components/MediaButton/MediaButton.js.map +1 -0
  21. package/{src/lib/Components/TriggerButton/TriggerButton.mdx → dist/module/lib/Components/MediaButton/MediaButton.mdx} +10 -10
  22. package/dist/module/lib/Components/{TriggerButton/TriggerButton.stories.js → MediaButton/MediaButton.stories.js} +18 -18
  23. package/dist/module/lib/Components/MediaButton/MediaButton.stories.js.map +1 -0
  24. package/dist/module/lib/Components/{TriggerButton/TriggerButton.test.js → MediaButton/MediaButton.test.js} +14 -14
  25. package/dist/module/lib/Components/MediaButton/MediaButton.test.js.map +1 -0
  26. package/dist/module/lib/Components/MediaButton/index.js +5 -0
  27. package/dist/module/lib/Components/MediaButton/index.js.map +1 -0
  28. package/dist/module/lib/Components/MediaButton/types.js.map +1 -0
  29. package/dist/module/lib/Components/NavBar/NavBar.js.map +1 -1
  30. package/dist/module/lib/Components/OptionList/OptionList.figma.js +28 -0
  31. package/dist/module/lib/Components/OptionList/OptionList.figma.js.map +1 -0
  32. package/dist/module/lib/Components/OptionList/OptionList.js +452 -0
  33. package/dist/module/lib/Components/OptionList/OptionList.js.map +1 -0
  34. package/dist/module/lib/Components/OptionList/OptionList.mdx +304 -0
  35. package/dist/module/lib/Components/OptionList/OptionList.stories.js +735 -0
  36. package/dist/module/lib/Components/OptionList/OptionList.stories.js.map +1 -0
  37. package/dist/module/lib/Components/OptionList/OptionList.test.js +443 -0
  38. package/dist/module/lib/Components/OptionList/OptionList.test.js.map +1 -0
  39. package/dist/module/lib/Components/OptionList/index.js +5 -0
  40. package/dist/module/lib/Components/OptionList/index.js.map +1 -0
  41. package/dist/module/lib/Components/OptionList/types.js +4 -0
  42. package/dist/module/lib/Components/OptionList/types.js.map +1 -0
  43. package/dist/module/lib/Components/OptionList/useOptionList/useOptionListItems.js +36 -0
  44. package/dist/module/lib/Components/OptionList/useOptionList/useOptionListItems.js.map +1 -0
  45. package/dist/module/lib/Components/OptionList/useOptionList/useOptionListItems.test.js +84 -0
  46. package/dist/module/lib/Components/OptionList/useOptionList/useOptionListItems.test.js.map +1 -0
  47. package/dist/module/lib/Components/SegmentedControl/usePillLayout.js.map +1 -1
  48. package/dist/module/lib/Components/Select/GlobalSelectContext.js.map +1 -1
  49. package/dist/module/lib/Components/Select/Select.js.map +1 -1
  50. package/dist/module/lib/Components/Slot/Slot.js.map +1 -1
  51. package/dist/module/lib/Components/Spinner/Spinner.js.map +1 -1
  52. package/dist/module/lib/Components/Spot/Spot.js.map +1 -1
  53. package/dist/module/lib/Components/TabBar/TabBar.js +4 -4
  54. package/dist/module/lib/Components/TabBar/TabBar.js.map +1 -1
  55. package/dist/module/lib/Components/Tooltip/GlobalTooltipContext.js.map +1 -1
  56. package/dist/module/lib/Components/Tooltip/Tooltip.js.map +1 -1
  57. package/dist/module/lib/Components/Utility/Gradient/LinearGradient/LinearGradient.test.js.map +1 -1
  58. package/dist/module/lib/Components/Utility/Gradient/RadialGradient/RadialGradient.test.js.map +1 -1
  59. package/dist/module/lib/Components/Utility/Pressable/Pressable.test.js.map +1 -1
  60. package/dist/module/lib/Components/index.js +2 -1
  61. package/dist/module/lib/Components/index.js.map +1 -1
  62. package/dist/module/lib/utils/components/InjectStylesIntoChildren.js.map +1 -1
  63. package/dist/module/lib/utils/constants/constants.js.map +1 -1
  64. package/dist/module/lib/utils/react/extractTextFromChildren.js.map +1 -1
  65. package/dist/module/lib/utils/useControllableState/useControllableState.js.map +1 -1
  66. package/dist/module/styles/hooks/useStyleSheet.js.map +1 -1
  67. package/dist/module/styles/hooks/useStyleSheet.test.js.map +1 -1
  68. package/dist/module/styles/lx/createStyledPressable.test.js.map +1 -1
  69. package/dist/module/styles/lx/createStyledText.test.js.map +1 -1
  70. package/dist/module/styles/lx/createStyledView.js.map +1 -1
  71. package/dist/module/styles/lx/createStyledView.test.js.map +1 -1
  72. package/dist/module/styles/provider/LumenStyleSheetProvider.js.map +1 -1
  73. package/dist/module/styles/provider/LumenStyleSheetProvider.test.js.map +1 -1
  74. package/dist/module/utils/icon-template.js +0 -1
  75. package/dist/module/utils/icon-template.js.map +1 -1
  76. package/dist/typescript/src/i18n/I18nProvider.d.ts +1 -1
  77. package/dist/typescript/src/i18n/I18nProvider.d.ts.map +1 -1
  78. package/dist/typescript/src/i18n/i18n.d.ts +1 -1
  79. package/dist/typescript/src/i18n/i18n.d.ts.map +1 -1
  80. package/dist/typescript/src/lib/Animations/Pulse/Pulse.d.ts +1 -1
  81. package/dist/typescript/src/lib/Animations/Pulse/Pulse.d.ts.map +1 -1
  82. package/dist/typescript/src/lib/Animations/Pulse/types.d.ts +2 -2
  83. package/dist/typescript/src/lib/Animations/Pulse/types.d.ts.map +1 -1
  84. package/dist/typescript/src/lib/Animations/Spin/Spin.d.ts +1 -1
  85. package/dist/typescript/src/lib/Animations/Spin/Spin.d.ts.map +1 -1
  86. package/dist/typescript/src/lib/Animations/Spin/types.d.ts +2 -2
  87. package/dist/typescript/src/lib/Animations/Spin/types.d.ts.map +1 -1
  88. package/dist/typescript/src/lib/Animations/types.d.ts +2 -2
  89. package/dist/typescript/src/lib/Animations/types.d.ts.map +1 -1
  90. package/dist/typescript/src/lib/Animations/useTimingConfig.d.ts +1 -1
  91. package/dist/typescript/src/lib/Animations/useTimingConfig.d.ts.map +1 -1
  92. package/dist/typescript/src/lib/Components/AddressInput/types.d.ts +2 -2
  93. package/dist/typescript/src/lib/Components/AddressInput/types.d.ts.map +1 -1
  94. package/dist/typescript/src/lib/Components/AmountDisplay/AmountDisplay.d.ts +1 -1
  95. package/dist/typescript/src/lib/Components/AmountDisplay/AmountDisplay.d.ts.map +1 -1
  96. package/dist/typescript/src/lib/Components/AmountDisplay/types.d.ts +2 -2
  97. package/dist/typescript/src/lib/Components/AmountDisplay/types.d.ts.map +1 -1
  98. package/dist/typescript/src/lib/Components/AmountInput/types.d.ts +2 -2
  99. package/dist/typescript/src/lib/Components/AmountInput/types.d.ts.map +1 -1
  100. package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts +1 -1
  101. package/dist/typescript/src/lib/Components/Avatar/Avatar.d.ts.map +1 -1
  102. package/dist/typescript/src/lib/Components/Avatar/types.d.ts +1 -1
  103. package/dist/typescript/src/lib/Components/Avatar/types.d.ts.map +1 -1
  104. package/dist/typescript/src/lib/Components/Banner/Banner.d.ts +1 -1
  105. package/dist/typescript/src/lib/Components/Banner/Banner.d.ts.map +1 -1
  106. package/dist/typescript/src/lib/Components/Banner/types.d.ts +2 -2
  107. package/dist/typescript/src/lib/Components/Banner/types.d.ts.map +1 -1
  108. package/dist/typescript/src/lib/Components/BaseInput/BaseInput.d.ts.map +1 -1
  109. package/dist/typescript/src/lib/Components/BaseInput/types.d.ts +2 -2
  110. package/dist/typescript/src/lib/Components/BaseInput/types.d.ts.map +1 -1
  111. package/dist/typescript/src/lib/Components/BottomSheet/BottomSheet.d.ts +1 -1
  112. package/dist/typescript/src/lib/Components/BottomSheet/BottomSheet.d.ts.map +1 -1
  113. package/dist/typescript/src/lib/Components/BottomSheet/BottomSheetHeader.d.ts +1 -1
  114. package/dist/typescript/src/lib/Components/BottomSheet/BottomSheetHeader.d.ts.map +1 -1
  115. package/dist/typescript/src/lib/Components/BottomSheet/CustomBackdrop.d.ts +1 -1
  116. package/dist/typescript/src/lib/Components/BottomSheet/CustomBackdrop.d.ts.map +1 -1
  117. package/dist/typescript/src/lib/Components/BottomSheet/CustomHandle.d.ts +2 -2
  118. package/dist/typescript/src/lib/Components/BottomSheet/CustomHandle.d.ts.map +1 -1
  119. package/dist/typescript/src/lib/Components/BottomSheet/Scrollables.d.ts +1 -1
  120. package/dist/typescript/src/lib/Components/BottomSheet/Scrollables.d.ts.map +1 -1
  121. package/dist/typescript/src/lib/Components/BottomSheet/types.d.ts +4 -4
  122. package/dist/typescript/src/lib/Components/BottomSheet/types.d.ts.map +1 -1
  123. package/dist/typescript/src/lib/Components/BottomSheet/useBottomSheetRef.d.ts +1 -1
  124. package/dist/typescript/src/lib/Components/BottomSheet/useBottomSheetRef.d.ts.map +1 -1
  125. package/dist/typescript/src/lib/Components/Button/BaseButton.d.ts +1 -1
  126. package/dist/typescript/src/lib/Components/Button/BaseButton.d.ts.map +1 -1
  127. package/dist/typescript/src/lib/Components/Button/Button.d.ts +1 -1
  128. package/dist/typescript/src/lib/Components/Button/Button.d.ts.map +1 -1
  129. package/dist/typescript/src/lib/Components/Button/types.d.ts +4 -4
  130. package/dist/typescript/src/lib/Components/Button/types.d.ts.map +1 -1
  131. package/dist/typescript/src/lib/Components/Card/Card.d.ts +2 -2
  132. package/dist/typescript/src/lib/Components/Card/Card.d.ts.map +1 -1
  133. package/dist/typescript/src/lib/Components/Card/types.d.ts +3 -3
  134. package/dist/typescript/src/lib/Components/Card/types.d.ts.map +1 -1
  135. package/dist/typescript/src/lib/Components/CardButton/CardButton.d.ts +1 -1
  136. package/dist/typescript/src/lib/Components/CardButton/CardButton.d.ts.map +1 -1
  137. package/dist/typescript/src/lib/Components/CardButton/types.d.ts +3 -3
  138. package/dist/typescript/src/lib/Components/CardButton/types.d.ts.map +1 -1
  139. package/dist/typescript/src/lib/Components/Checkbox/BaseCheckbox.d.ts +2 -2
  140. package/dist/typescript/src/lib/Components/Checkbox/BaseCheckbox.d.ts.map +1 -1
  141. package/dist/typescript/src/lib/Components/Checkbox/Checkbox.d.ts +1 -1
  142. package/dist/typescript/src/lib/Components/Checkbox/Checkbox.d.ts.map +1 -1
  143. package/dist/typescript/src/lib/Components/Checkbox/types.d.ts +1 -1
  144. package/dist/typescript/src/lib/Components/Checkbox/types.d.ts.map +1 -1
  145. package/dist/typescript/src/lib/Components/ContentBanner/ContentBanner.d.ts +1 -1
  146. package/dist/typescript/src/lib/Components/ContentBanner/ContentBanner.d.ts.map +1 -1
  147. package/dist/typescript/src/lib/Components/ContentBanner/types.d.ts +1 -1
  148. package/dist/typescript/src/lib/Components/ContentBanner/types.d.ts.map +1 -1
  149. package/dist/typescript/src/lib/Components/Divider/Divider.d.ts +1 -1
  150. package/dist/typescript/src/lib/Components/Divider/Divider.d.ts.map +1 -1
  151. package/dist/typescript/src/lib/Components/Divider/types.d.ts +1 -1
  152. package/dist/typescript/src/lib/Components/Divider/types.d.ts.map +1 -1
  153. package/dist/typescript/src/lib/Components/DotSymbol/DotSymbol.d.ts +3 -3
  154. package/dist/typescript/src/lib/Components/DotSymbol/DotSymbol.d.ts.map +1 -1
  155. package/dist/typescript/src/lib/Components/DotSymbol/types.d.ts +1 -1
  156. package/dist/typescript/src/lib/Components/DotSymbol/types.d.ts.map +1 -1
  157. package/dist/typescript/src/lib/Components/Icon/Icon.d.ts +1 -1
  158. package/dist/typescript/src/lib/Components/Icon/Icon.d.ts.map +1 -1
  159. package/dist/typescript/src/lib/Components/Icon/createIcon.d.ts +2 -2
  160. package/dist/typescript/src/lib/Components/Icon/createIcon.d.ts.map +1 -1
  161. package/dist/typescript/src/lib/Components/Icon/types.d.ts +4 -4
  162. package/dist/typescript/src/lib/Components/Icon/types.d.ts.map +1 -1
  163. package/dist/typescript/src/lib/Components/IconButton/IconButton.d.ts +1 -1
  164. package/dist/typescript/src/lib/Components/IconButton/IconButton.d.ts.map +1 -1
  165. package/dist/typescript/src/lib/Components/IconButton/types.d.ts +1 -1
  166. package/dist/typescript/src/lib/Components/IconButton/types.d.ts.map +1 -1
  167. package/dist/typescript/src/lib/Components/InteractiveIcon/InteractiveIcon.d.ts +1 -1
  168. package/dist/typescript/src/lib/Components/InteractiveIcon/InteractiveIcon.d.ts.map +1 -1
  169. package/dist/typescript/src/lib/Components/InteractiveIcon/types.d.ts +4 -4
  170. package/dist/typescript/src/lib/Components/InteractiveIcon/types.d.ts.map +1 -1
  171. package/dist/typescript/src/lib/Components/Label/Label.d.ts +1 -1
  172. package/dist/typescript/src/lib/Components/Label/Label.d.ts.map +1 -1
  173. package/dist/typescript/src/lib/Components/Label/types.d.ts +1 -1
  174. package/dist/typescript/src/lib/Components/Label/types.d.ts.map +1 -1
  175. package/dist/typescript/src/lib/Components/Link/Link.d.ts +1 -1
  176. package/dist/typescript/src/lib/Components/Link/Link.d.ts.map +1 -1
  177. package/dist/typescript/src/lib/Components/Link/types.d.ts +4 -4
  178. package/dist/typescript/src/lib/Components/Link/types.d.ts.map +1 -1
  179. package/dist/typescript/src/lib/Components/ListItem/ListItem.d.ts +9 -9
  180. package/dist/typescript/src/lib/Components/ListItem/ListItem.d.ts.map +1 -1
  181. package/dist/typescript/src/lib/Components/ListItem/types.d.ts +12 -8
  182. package/dist/typescript/src/lib/Components/ListItem/types.d.ts.map +1 -1
  183. package/dist/typescript/src/lib/Components/MediaBanner/MediaBanner.d.ts +1 -1
  184. package/dist/typescript/src/lib/Components/MediaBanner/MediaBanner.d.ts.map +1 -1
  185. package/dist/typescript/src/lib/Components/MediaBanner/types.d.ts +2 -2
  186. package/dist/typescript/src/lib/Components/MediaBanner/types.d.ts.map +1 -1
  187. package/dist/typescript/src/lib/Components/MediaButton/MediaButton.d.ts +23 -0
  188. package/dist/typescript/src/lib/Components/MediaButton/MediaButton.d.ts.map +1 -0
  189. package/dist/typescript/src/lib/Components/MediaButton/index.d.ts +3 -0
  190. package/dist/typescript/src/lib/Components/MediaButton/index.d.ts.map +1 -0
  191. package/dist/typescript/src/lib/Components/{TriggerButton → MediaButton}/types.d.ts +12 -7
  192. package/dist/typescript/src/lib/Components/MediaButton/types.d.ts.map +1 -0
  193. package/dist/typescript/src/lib/Components/MediaCard/MediaCard.d.ts +1 -1
  194. package/dist/typescript/src/lib/Components/MediaCard/MediaCard.d.ts.map +1 -1
  195. package/dist/typescript/src/lib/Components/MediaCard/types.d.ts +1 -1
  196. package/dist/typescript/src/lib/Components/MediaCard/types.d.ts.map +1 -1
  197. package/dist/typescript/src/lib/Components/MediaImage/MediaImage.d.ts +1 -1
  198. package/dist/typescript/src/lib/Components/MediaImage/MediaImage.d.ts.map +1 -1
  199. package/dist/typescript/src/lib/Components/MediaImage/types.d.ts +1 -1
  200. package/dist/typescript/src/lib/Components/MediaImage/types.d.ts.map +1 -1
  201. package/dist/typescript/src/lib/Components/NavBar/CoinCapsule.d.ts +1 -1
  202. package/dist/typescript/src/lib/Components/NavBar/CoinCapsule.d.ts.map +1 -1
  203. package/dist/typescript/src/lib/Components/NavBar/NavBar.d.ts +1 -1
  204. package/dist/typescript/src/lib/Components/NavBar/NavBar.d.ts.map +1 -1
  205. package/dist/typescript/src/lib/Components/NavBar/types.d.ts +4 -4
  206. package/dist/typescript/src/lib/Components/NavBar/types.d.ts.map +1 -1
  207. package/dist/typescript/src/lib/Components/OptionList/OptionList.d.ts +12 -0
  208. package/dist/typescript/src/lib/Components/OptionList/OptionList.d.ts.map +1 -0
  209. package/dist/typescript/src/lib/Components/OptionList/OptionList.figma.d.ts +2 -0
  210. package/dist/typescript/src/lib/Components/OptionList/OptionList.figma.d.ts.map +1 -0
  211. package/dist/typescript/src/lib/Components/OptionList/index.d.ts +3 -0
  212. package/dist/typescript/src/lib/Components/OptionList/index.d.ts.map +1 -0
  213. package/dist/typescript/src/lib/Components/OptionList/types.d.ts +97 -0
  214. package/dist/typescript/src/lib/Components/OptionList/types.d.ts.map +1 -0
  215. package/dist/typescript/src/lib/Components/OptionList/useOptionList/useOptionListItems.d.ts +12 -0
  216. package/dist/typescript/src/lib/Components/OptionList/useOptionList/useOptionListItems.d.ts.map +1 -0
  217. package/dist/typescript/src/lib/Components/PageIndicator/PageIndicator.d.ts +1 -1
  218. package/dist/typescript/src/lib/Components/PageIndicator/PageIndicator.d.ts.map +1 -1
  219. package/dist/typescript/src/lib/Components/PageIndicator/types.d.ts +1 -1
  220. package/dist/typescript/src/lib/Components/PageIndicator/types.d.ts.map +1 -1
  221. package/dist/typescript/src/lib/Components/SearchInput/types.d.ts +2 -2
  222. package/dist/typescript/src/lib/Components/SearchInput/types.d.ts.map +1 -1
  223. package/dist/typescript/src/lib/Components/SegmentedControl/types.d.ts +4 -4
  224. package/dist/typescript/src/lib/Components/SegmentedControl/types.d.ts.map +1 -1
  225. package/dist/typescript/src/lib/Components/SegmentedControl/usePillLayout.d.ts +3 -2
  226. package/dist/typescript/src/lib/Components/SegmentedControl/usePillLayout.d.ts.map +1 -1
  227. package/dist/typescript/src/lib/Components/Select/GlobalSelectContext.d.ts +2 -2
  228. package/dist/typescript/src/lib/Components/Select/GlobalSelectContext.d.ts.map +1 -1
  229. package/dist/typescript/src/lib/Components/Select/SelectContext.d.ts +2 -2
  230. package/dist/typescript/src/lib/Components/Select/SelectContext.d.ts.map +1 -1
  231. package/dist/typescript/src/lib/Components/Select/types.d.ts +4 -4
  232. package/dist/typescript/src/lib/Components/Select/types.d.ts.map +1 -1
  233. package/dist/typescript/src/lib/Components/Skeleton/types.d.ts +1 -1
  234. package/dist/typescript/src/lib/Components/Skeleton/types.d.ts.map +1 -1
  235. package/dist/typescript/src/lib/Components/Slot/Slot.d.ts +2 -2
  236. package/dist/typescript/src/lib/Components/Slot/Slot.d.ts.map +1 -1
  237. package/dist/typescript/src/lib/Components/Spinner/Spinner.d.ts +1 -1
  238. package/dist/typescript/src/lib/Components/Spinner/Spinner.d.ts.map +1 -1
  239. package/dist/typescript/src/lib/Components/Spinner/types.d.ts +3 -3
  240. package/dist/typescript/src/lib/Components/Spinner/types.d.ts.map +1 -1
  241. package/dist/typescript/src/lib/Components/Spot/Spot.d.ts +1 -1
  242. package/dist/typescript/src/lib/Components/Spot/Spot.d.ts.map +1 -1
  243. package/dist/typescript/src/lib/Components/Spot/types.d.ts +3 -3
  244. package/dist/typescript/src/lib/Components/Spot/types.d.ts.map +1 -1
  245. package/dist/typescript/src/lib/Components/Stepper/Stepper.d.ts +1 -1
  246. package/dist/typescript/src/lib/Components/Stepper/Stepper.d.ts.map +1 -1
  247. package/dist/typescript/src/lib/Components/Stepper/types.d.ts +1 -1
  248. package/dist/typescript/src/lib/Components/Stepper/types.d.ts.map +1 -1
  249. package/dist/typescript/src/lib/Components/Subheader/Subheader.d.ts +1 -1
  250. package/dist/typescript/src/lib/Components/Subheader/Subheader.d.ts.map +1 -1
  251. package/dist/typescript/src/lib/Components/Subheader/types.d.ts +3 -3
  252. package/dist/typescript/src/lib/Components/Subheader/types.d.ts.map +1 -1
  253. package/dist/typescript/src/lib/Components/Switch/BaseSwitch.d.ts +2 -2
  254. package/dist/typescript/src/lib/Components/Switch/BaseSwitch.d.ts.map +1 -1
  255. package/dist/typescript/src/lib/Components/Switch/Switch.d.ts +1 -1
  256. package/dist/typescript/src/lib/Components/Switch/Switch.d.ts.map +1 -1
  257. package/dist/typescript/src/lib/Components/Switch/types.d.ts +1 -1
  258. package/dist/typescript/src/lib/Components/Switch/types.d.ts.map +1 -1
  259. package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts +1 -1
  260. package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts.map +1 -1
  261. package/dist/typescript/src/lib/Components/TabBar/types.d.ts +4 -4
  262. package/dist/typescript/src/lib/Components/TabBar/types.d.ts.map +1 -1
  263. package/dist/typescript/src/lib/Components/Tag/Tag.d.ts +1 -1
  264. package/dist/typescript/src/lib/Components/Tag/Tag.d.ts.map +1 -1
  265. package/dist/typescript/src/lib/Components/Tag/types.d.ts +3 -3
  266. package/dist/typescript/src/lib/Components/Tag/types.d.ts.map +1 -1
  267. package/dist/typescript/src/lib/Components/TextInput/types.d.ts +2 -2
  268. package/dist/typescript/src/lib/Components/TextInput/types.d.ts.map +1 -1
  269. package/dist/typescript/src/lib/Components/ThemeProvider/ThemeProvider.d.ts +1 -1
  270. package/dist/typescript/src/lib/Components/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  271. package/dist/typescript/src/lib/Components/ThemeProvider/types.d.ts +4 -4
  272. package/dist/typescript/src/lib/Components/ThemeProvider/types.d.ts.map +1 -1
  273. package/dist/typescript/src/lib/Components/Tile/Tile.d.ts +1 -1
  274. package/dist/typescript/src/lib/Components/Tile/Tile.d.ts.map +1 -1
  275. package/dist/typescript/src/lib/Components/Tile/types.d.ts +2 -2
  276. package/dist/typescript/src/lib/Components/Tile/types.d.ts.map +1 -1
  277. package/dist/typescript/src/lib/Components/TileButton/TileButton.d.ts +1 -1
  278. package/dist/typescript/src/lib/Components/TileButton/TileButton.d.ts.map +1 -1
  279. package/dist/typescript/src/lib/Components/TileButton/types.d.ts +4 -4
  280. package/dist/typescript/src/lib/Components/TileButton/types.d.ts.map +1 -1
  281. package/dist/typescript/src/lib/Components/Tooltip/GlobalTooltipContext.d.ts +1 -1
  282. package/dist/typescript/src/lib/Components/Tooltip/GlobalTooltipContext.d.ts.map +1 -1
  283. package/dist/typescript/src/lib/Components/Tooltip/TooltipContext.d.ts +1 -1
  284. package/dist/typescript/src/lib/Components/Tooltip/TooltipContext.d.ts.map +1 -1
  285. package/dist/typescript/src/lib/Components/Tooltip/types.d.ts +2 -2
  286. package/dist/typescript/src/lib/Components/Tooltip/types.d.ts.map +1 -1
  287. package/dist/typescript/src/lib/Components/Utility/Box/types.d.ts +1 -1
  288. package/dist/typescript/src/lib/Components/Utility/Box/types.d.ts.map +1 -1
  289. package/dist/typescript/src/lib/Components/Utility/Gradient/LinearGradient/types.d.ts +3 -3
  290. package/dist/typescript/src/lib/Components/Utility/Gradient/LinearGradient/types.d.ts.map +1 -1
  291. package/dist/typescript/src/lib/Components/Utility/Gradient/RadialGradient/types.d.ts +3 -3
  292. package/dist/typescript/src/lib/Components/Utility/Gradient/RadialGradient/types.d.ts.map +1 -1
  293. package/dist/typescript/src/lib/Components/Utility/Pressable/types.d.ts +1 -1
  294. package/dist/typescript/src/lib/Components/Utility/Pressable/types.d.ts.map +1 -1
  295. package/dist/typescript/src/lib/Components/Utility/Text/types.d.ts +1 -1
  296. package/dist/typescript/src/lib/Components/Utility/Text/types.d.ts.map +1 -1
  297. package/dist/typescript/src/lib/Components/Wrap/Wrap.d.ts +1 -1
  298. package/dist/typescript/src/lib/Components/Wrap/Wrap.d.ts.map +1 -1
  299. package/dist/typescript/src/lib/Components/Wrap/types.d.ts +1 -1
  300. package/dist/typescript/src/lib/Components/Wrap/types.d.ts.map +1 -1
  301. package/dist/typescript/src/lib/Components/index.d.ts +2 -1
  302. package/dist/typescript/src/lib/Components/index.d.ts.map +1 -1
  303. package/dist/typescript/src/lib/types/index.d.ts +1 -1
  304. package/dist/typescript/src/lib/types/index.d.ts.map +1 -1
  305. package/dist/typescript/src/lib/utils/components/InjectStylesIntoChildren.d.ts +2 -2
  306. package/dist/typescript/src/lib/utils/components/InjectStylesIntoChildren.d.ts.map +1 -1
  307. package/dist/typescript/src/lib/utils/constants/constants.d.ts.map +1 -1
  308. package/dist/typescript/src/lib/utils/react/extractTextFromChildren.d.ts +1 -1
  309. package/dist/typescript/src/lib/utils/react/extractTextFromChildren.d.ts.map +1 -1
  310. package/dist/typescript/src/lib/utils/useControllableState/useControllableState.d.ts +1 -1
  311. package/dist/typescript/src/lib/utils/useControllableState/useControllableState.d.ts.map +1 -1
  312. package/dist/typescript/src/styles/hooks/useStyleSheet.d.ts +1 -1
  313. package/dist/typescript/src/styles/hooks/useStyleSheet.d.ts.map +1 -1
  314. package/dist/typescript/src/styles/lx/areLxPropsEqual.d.ts +1 -1
  315. package/dist/typescript/src/styles/lx/areLxPropsEqual.d.ts.map +1 -1
  316. package/dist/typescript/src/styles/lx/createStyledPressable.d.ts +1 -1
  317. package/dist/typescript/src/styles/lx/createStyledPressable.d.ts.map +1 -1
  318. package/dist/typescript/src/styles/lx/createStyledText.d.ts +1 -1
  319. package/dist/typescript/src/styles/lx/createStyledText.d.ts.map +1 -1
  320. package/dist/typescript/src/styles/lx/createStyledView.d.ts +1 -1
  321. package/dist/typescript/src/styles/lx/createStyledView.d.ts.map +1 -1
  322. package/dist/typescript/src/styles/lx/resolveConfig.d.ts +1 -1
  323. package/dist/typescript/src/styles/lx/resolveConfig.d.ts.map +1 -1
  324. package/dist/typescript/src/styles/provider/LumenStyleSheetProvider.d.ts +1 -1
  325. package/dist/typescript/src/styles/provider/LumenStyleSheetProvider.d.ts.map +1 -1
  326. package/dist/typescript/src/styles/provider/types.d.ts +3 -3
  327. package/dist/typescript/src/styles/provider/types.d.ts.map +1 -1
  328. package/dist/typescript/src/styles/theme/createStylesheetTheme.d.ts +1 -1
  329. package/dist/typescript/src/styles/theme/createStylesheetTheme.d.ts.map +1 -1
  330. package/dist/typescript/src/styles/theme/resolvers/resolveFontWeights.d.ts +1 -1
  331. package/dist/typescript/src/styles/theme/resolvers/resolveFontWeights.d.ts.map +1 -1
  332. package/dist/typescript/src/styles/theme/resolvers/resolveNegativeSpacing.d.ts +2 -2
  333. package/dist/typescript/src/styles/theme/resolvers/resolveNegativeSpacing.d.ts.map +1 -1
  334. package/dist/typescript/src/styles/types/factories.types.d.ts +3 -3
  335. package/dist/typescript/src/styles/types/factories.types.d.ts.map +1 -1
  336. package/dist/typescript/src/styles/types/theme.types.d.ts +8 -7
  337. package/dist/typescript/src/styles/types/theme.types.d.ts.map +1 -1
  338. package/dist/typescript/src/utils/icon-template.d.ts +1 -1
  339. package/dist/typescript/src/utils/icon-template.d.ts.map +1 -1
  340. package/package.json +2 -2
  341. package/src/i18n/I18nProvider.tsx +2 -1
  342. package/src/i18n/i18n.ts +2 -5
  343. package/src/lib/Animations/Pulse/Pulse.tsx +2 -2
  344. package/src/lib/Animations/Pulse/types.ts +2 -2
  345. package/src/lib/Animations/Spin/Spin.tsx +2 -2
  346. package/src/lib/Animations/Spin/types.ts +2 -2
  347. package/src/lib/Animations/types.ts +2 -2
  348. package/src/lib/Animations/useTimingConfig.ts +1 -1
  349. package/src/lib/Components/AddressInput/AddressInput.stories.tsx +1 -1
  350. package/src/lib/Components/AddressInput/types.ts +2 -2
  351. package/src/lib/Components/AmountDisplay/AmountDisplay.test.tsx +1 -1
  352. package/src/lib/Components/AmountDisplay/AmountDisplay.tsx +3 -3
  353. package/src/lib/Components/AmountDisplay/types.ts +2 -2
  354. package/src/lib/Components/AmountInput/types.ts +2 -2
  355. package/src/lib/Components/Avatar/Avatar.stories.tsx +1 -1
  356. package/src/lib/Components/Avatar/Avatar.tsx +1 -1
  357. package/src/lib/Components/Avatar/types.ts +1 -1
  358. package/src/lib/Components/Banner/Banner.tsx +3 -3
  359. package/src/lib/Components/Banner/types.ts +2 -2
  360. package/src/lib/Components/BaseInput/BaseInput.tsx +2 -1
  361. package/src/lib/Components/BaseInput/types.ts +5 -5
  362. package/src/lib/Components/BottomSheet/BottomSheet.test.tsx +2 -1
  363. package/src/lib/Components/BottomSheet/BottomSheet.tsx +3 -5
  364. package/src/lib/Components/BottomSheet/BottomSheetHeader.tsx +1 -1
  365. package/src/lib/Components/BottomSheet/CustomBackdrop.tsx +1 -1
  366. package/src/lib/Components/BottomSheet/CustomHandle.tsx +2 -2
  367. package/src/lib/Components/BottomSheet/Scrollables.tsx +2 -2
  368. package/src/lib/Components/BottomSheet/types.ts +4 -4
  369. package/src/lib/Components/BottomSheet/useBottomSheetRef.ts +1 -1
  370. package/src/lib/Components/Button/BaseButton.test.tsx +1 -1
  371. package/src/lib/Components/Button/BaseButton.tsx +3 -3
  372. package/src/lib/Components/Button/Button.tsx +1 -1
  373. package/src/lib/Components/Button/types.ts +4 -4
  374. package/src/lib/Components/Card/Card.test.tsx +1 -1
  375. package/src/lib/Components/Card/Card.tsx +5 -3
  376. package/src/lib/Components/Card/types.ts +3 -3
  377. package/src/lib/Components/CardButton/CardButton.tsx +1 -1
  378. package/src/lib/Components/CardButton/types.ts +3 -3
  379. package/src/lib/Components/Checkbox/BaseCheckbox.tsx +4 -8
  380. package/src/lib/Components/Checkbox/Checkbox.tsx +1 -1
  381. package/src/lib/Components/Checkbox/types.ts +1 -1
  382. package/src/lib/Components/ContentBanner/ContentBanner.tsx +1 -1
  383. package/src/lib/Components/ContentBanner/types.ts +1 -1
  384. package/src/lib/Components/Divider/Divider.tsx +1 -1
  385. package/src/lib/Components/Divider/types.ts +1 -1
  386. package/src/lib/Components/DotSymbol/DotSymbol.tsx +3 -3
  387. package/src/lib/Components/DotSymbol/types.ts +1 -1
  388. package/src/lib/Components/Icon/Icon.tsx +2 -2
  389. package/src/lib/Components/Icon/createIcon.ts +2 -2
  390. package/src/lib/Components/Icon/types.ts +4 -4
  391. package/src/lib/Components/IconButton/IconButton.tsx +1 -1
  392. package/src/lib/Components/IconButton/types.ts +1 -1
  393. package/src/lib/Components/InteractiveIcon/InteractiveIcon.tsx +4 -3
  394. package/src/lib/Components/InteractiveIcon/types.ts +4 -4
  395. package/src/lib/Components/Label/Label.tsx +1 -1
  396. package/src/lib/Components/Label/types.ts +1 -1
  397. package/src/lib/Components/Link/Link.test.tsx +1 -1
  398. package/src/lib/Components/Link/Link.tsx +2 -2
  399. package/src/lib/Components/Link/types.ts +4 -4
  400. package/src/lib/Components/ListItem/ListItem.mdx +15 -7
  401. package/src/lib/Components/ListItem/ListItem.stories.tsx +354 -220
  402. package/src/lib/Components/ListItem/ListItem.test.tsx +152 -0
  403. package/src/lib/Components/ListItem/ListItem.tsx +64 -28
  404. package/src/lib/Components/ListItem/types.ts +12 -9
  405. package/src/lib/Components/MediaBanner/MediaBanner.tsx +1 -1
  406. package/src/lib/Components/MediaBanner/types.ts +2 -2
  407. package/{dist/module/lib/Components/TriggerButton/TriggerButton.mdx → src/lib/Components/MediaButton/MediaButton.mdx} +10 -10
  408. package/src/lib/Components/{TriggerButton/TriggerButton.stories.tsx → MediaButton/MediaButton.stories.tsx} +28 -28
  409. package/src/lib/Components/{TriggerButton/TriggerButton.test.tsx → MediaButton/MediaButton.test.tsx} +24 -23
  410. package/src/lib/Components/{TriggerButton/TriggerButton.tsx → MediaButton/MediaButton.tsx} +28 -22
  411. package/src/lib/Components/MediaButton/index.ts +2 -0
  412. package/src/lib/Components/{TriggerButton → MediaButton}/types.ts +12 -7
  413. package/src/lib/Components/MediaCard/MediaCard.tsx +1 -1
  414. package/src/lib/Components/MediaCard/types.ts +1 -1
  415. package/src/lib/Components/MediaImage/MediaImage.tsx +1 -1
  416. package/src/lib/Components/MediaImage/types.ts +1 -1
  417. package/src/lib/Components/NavBar/CoinCapsule.tsx +1 -1
  418. package/src/lib/Components/NavBar/NavBar.tsx +5 -3
  419. package/src/lib/Components/NavBar/types.ts +4 -4
  420. package/src/lib/Components/OptionList/OptionList.figma.tsx +37 -0
  421. package/src/lib/Components/OptionList/OptionList.mdx +304 -0
  422. package/src/lib/Components/OptionList/OptionList.stories.tsx +755 -0
  423. package/src/lib/Components/OptionList/OptionList.test.tsx +412 -0
  424. package/src/lib/Components/OptionList/OptionList.tsx +532 -0
  425. package/src/lib/Components/OptionList/index.ts +2 -0
  426. package/src/lib/Components/OptionList/types.ts +115 -0
  427. package/src/lib/Components/OptionList/useOptionList/useOptionListItems.test.ts +73 -0
  428. package/src/lib/Components/OptionList/useOptionList/useOptionListItems.ts +49 -0
  429. package/src/lib/Components/PageIndicator/PageIndicator.tsx +1 -1
  430. package/src/lib/Components/PageIndicator/types.ts +1 -1
  431. package/src/lib/Components/SearchInput/SearchInput.stories.tsx +1 -1
  432. package/src/lib/Components/SearchInput/types.ts +2 -2
  433. package/src/lib/Components/SegmentedControl/SegmentedControl.tsx +1 -1
  434. package/src/lib/Components/SegmentedControl/types.ts +4 -4
  435. package/src/lib/Components/SegmentedControl/usePillLayout.ts +2 -2
  436. package/src/lib/Components/Select/GlobalSelectContext.tsx +3 -2
  437. package/src/lib/Components/Select/Select.tsx +1 -1
  438. package/src/lib/Components/Select/SelectContext.tsx +2 -2
  439. package/src/lib/Components/Select/types.ts +4 -4
  440. package/src/lib/Components/Skeleton/Skeleton.stories.tsx +1 -1
  441. package/src/lib/Components/Skeleton/types.ts +1 -1
  442. package/src/lib/Components/Slot/Slot.tsx +4 -5
  443. package/src/lib/Components/Spinner/Spinner.stories.tsx +1 -1
  444. package/src/lib/Components/Spinner/Spinner.tsx +3 -2
  445. package/src/lib/Components/Spinner/types.ts +3 -3
  446. package/src/lib/Components/Spot/Spot.stories.tsx +2 -2
  447. package/src/lib/Components/Spot/Spot.tsx +6 -4
  448. package/src/lib/Components/Spot/types.ts +3 -3
  449. package/src/lib/Components/Stepper/Stepper.stories.tsx +1 -1
  450. package/src/lib/Components/Stepper/Stepper.tsx +1 -1
  451. package/src/lib/Components/Stepper/types.ts +1 -1
  452. package/src/lib/Components/Subheader/Subheader.tsx +1 -1
  453. package/src/lib/Components/Subheader/types.ts +3 -3
  454. package/src/lib/Components/Switch/BaseSwitch.tsx +2 -2
  455. package/src/lib/Components/Switch/Switch.tsx +1 -1
  456. package/src/lib/Components/Switch/types.ts +1 -1
  457. package/src/lib/Components/TabBar/TabBar.tsx +4 -9
  458. package/src/lib/Components/TabBar/types.ts +4 -4
  459. package/src/lib/Components/Tag/Tag.tsx +2 -2
  460. package/src/lib/Components/Tag/types.ts +3 -3
  461. package/src/lib/Components/TextInput/types.ts +2 -2
  462. package/src/lib/Components/ThemeProvider/ThemeProvider.tsx +1 -1
  463. package/src/lib/Components/ThemeProvider/types.ts +4 -4
  464. package/src/lib/Components/Tile/Tile.tsx +2 -2
  465. package/src/lib/Components/Tile/types.ts +2 -2
  466. package/src/lib/Components/TileButton/TileButton.test.tsx +1 -1
  467. package/src/lib/Components/TileButton/TileButton.tsx +3 -3
  468. package/src/lib/Components/TileButton/types.ts +4 -4
  469. package/src/lib/Components/Tooltip/GlobalTooltipContext.tsx +2 -1
  470. package/src/lib/Components/Tooltip/Tooltip.tsx +1 -1
  471. package/src/lib/Components/Tooltip/TooltipContext.tsx +1 -1
  472. package/src/lib/Components/Tooltip/types.ts +2 -2
  473. package/src/lib/Components/Utility/Box/types.ts +1 -1
  474. package/src/lib/Components/Utility/Gradient/LinearGradient/LinearGradient.test.tsx +2 -1
  475. package/src/lib/Components/Utility/Gradient/LinearGradient/types.ts +3 -3
  476. package/src/lib/Components/Utility/Gradient/RadialGradient/RadialGradient.test.tsx +2 -1
  477. package/src/lib/Components/Utility/Gradient/RadialGradient/types.ts +3 -3
  478. package/src/lib/Components/Utility/Pressable/Pressable.test.tsx +2 -1
  479. package/src/lib/Components/Utility/Pressable/types.ts +1 -1
  480. package/src/lib/Components/Utility/Text/Text.stories.tsx +1 -1
  481. package/src/lib/Components/Utility/Text/types.ts +1 -1
  482. package/src/lib/Components/Wrap/Wrap.tsx +1 -1
  483. package/src/lib/Components/Wrap/types.ts +1 -1
  484. package/src/lib/Components/index.ts +2 -1
  485. package/src/lib/types/index.ts +1 -1
  486. package/src/lib/utils/components/InjectStylesIntoChildren.tsx +3 -8
  487. package/src/lib/utils/constants/constants.ts +2 -4
  488. package/src/lib/utils/react/extractTextFromChildren.ts +2 -1
  489. package/src/lib/utils/useControllableState/useControllableState.ts +2 -1
  490. package/src/styles/hooks/useStyleSheet.test.tsx +2 -1
  491. package/src/styles/hooks/useStyleSheet.ts +2 -1
  492. package/src/styles/lx/areLxPropsEqual.ts +1 -1
  493. package/src/styles/lx/createStyledPressable.test.tsx +2 -2
  494. package/src/styles/lx/createStyledPressable.tsx +1 -1
  495. package/src/styles/lx/createStyledText.test.tsx +2 -1
  496. package/src/styles/lx/createStyledText.tsx +1 -1
  497. package/src/styles/lx/createStyledView.test.tsx +2 -1
  498. package/src/styles/lx/createStyledView.tsx +2 -1
  499. package/src/styles/lx/resolveConfig.ts +1 -1
  500. package/src/styles/provider/LumenStyleSheetProvider.test.tsx +2 -1
  501. package/src/styles/provider/LumenStyleSheetProvider.tsx +2 -4
  502. package/src/styles/provider/types.ts +3 -3
  503. package/src/styles/theme/createStylesheetTheme.ts +1 -1
  504. package/src/styles/theme/resolvers/resolveFontWeights.ts +1 -1
  505. package/src/styles/theme/resolvers/resolveNegativeSpacing.test.ts +1 -1
  506. package/src/styles/theme/resolvers/resolveNegativeSpacing.ts +2 -2
  507. package/src/styles/types/factories.types.ts +3 -3
  508. package/src/styles/types/theme.types.ts +10 -8
  509. package/src/utils/icon-template.ts +1 -2
  510. package/dist/module/lib/Components/TriggerButton/TriggerButton.js.map +0 -1
  511. package/dist/module/lib/Components/TriggerButton/TriggerButton.stories.js.map +0 -1
  512. package/dist/module/lib/Components/TriggerButton/TriggerButton.test.js.map +0 -1
  513. package/dist/module/lib/Components/TriggerButton/index.js +0 -5
  514. package/dist/module/lib/Components/TriggerButton/index.js.map +0 -1
  515. package/dist/module/lib/Components/TriggerButton/types.js.map +0 -1
  516. package/dist/typescript/src/lib/Components/TriggerButton/TriggerButton.d.ts +0 -23
  517. package/dist/typescript/src/lib/Components/TriggerButton/TriggerButton.d.ts.map +0 -1
  518. package/dist/typescript/src/lib/Components/TriggerButton/index.d.ts +0 -3
  519. package/dist/typescript/src/lib/Components/TriggerButton/index.d.ts.map +0 -1
  520. package/dist/typescript/src/lib/Components/TriggerButton/types.d.ts.map +0 -1
  521. package/src/lib/Components/TriggerButton/index.ts +0 -2
  522. /package/dist/module/lib/Components/{TriggerButton → MediaButton}/types.js +0 -0
@@ -0,0 +1,412 @@
1
+ import { describe, it, expect, jest } from '@jest/globals';
2
+ import { ledgerLiveThemes } from '@ledgerhq/lumen-design-core';
3
+ import { render, fireEvent } from '@testing-library/react-native';
4
+ import { Text } from 'react-native';
5
+ import { ThemeProvider } from '../ThemeProvider/ThemeProvider';
6
+ import {
7
+ OptionList,
8
+ OptionListContent,
9
+ OptionListItem,
10
+ OptionListItemContent,
11
+ OptionListItemContentRow,
12
+ OptionListItemLeading,
13
+ OptionListItemText,
14
+ OptionListItemDescription,
15
+ OptionListEmptyState,
16
+ OptionListTrigger,
17
+ } from './OptionList';
18
+ import type { OptionListItemData } from './types';
19
+
20
+ const TestWrapper = ({ children }: { children: React.ReactNode }) => (
21
+ <ThemeProvider themes={ledgerLiveThemes} colorScheme='dark' locale='en'>
22
+ {children}
23
+ </ThemeProvider>
24
+ );
25
+
26
+ const ITEMS: OptionListItemData[] = [
27
+ { value: 'a', label: 'Alpha' },
28
+ { value: 'b', label: 'Beta' },
29
+ { value: 'c', label: 'Gamma' },
30
+ ];
31
+
32
+ const GROUPED_ITEMS: OptionListItemData[] = [
33
+ { value: 'apple', label: 'Apple', group: 'Fruits' },
34
+ { value: 'banana', label: 'Banana', group: 'Fruits' },
35
+ { value: 'carrot', label: 'Carrot', group: 'Vegetables' },
36
+ ];
37
+
38
+ const renderOptionList = ({
39
+ items = ITEMS,
40
+ value,
41
+ defaultValue,
42
+ onValueChange,
43
+ disabled,
44
+ }: {
45
+ items?: OptionListItemData[];
46
+ value?: string | null;
47
+ defaultValue?: string | null;
48
+ onValueChange?: (v: string | null) => void;
49
+ disabled?: boolean;
50
+ } = {}) =>
51
+ render(
52
+ <TestWrapper>
53
+ <OptionList
54
+ items={items}
55
+ value={value}
56
+ defaultValue={defaultValue}
57
+ onValueChange={onValueChange}
58
+ disabled={disabled}
59
+ >
60
+ <OptionListContent
61
+ renderItem={(item) => (
62
+ <OptionListItem value={item.value} disabled={item.disabled}>
63
+ <OptionListItemContent>
64
+ <OptionListItemText>{item.label}</OptionListItemText>
65
+ </OptionListItemContent>
66
+ </OptionListItem>
67
+ )}
68
+ />
69
+ </OptionList>
70
+ </TestWrapper>,
71
+ );
72
+
73
+ describe('OptionList', () => {
74
+ it('renders all items', () => {
75
+ const { getByText } = renderOptionList();
76
+
77
+ expect(getByText('Alpha')).toBeTruthy();
78
+ expect(getByText('Beta')).toBeTruthy();
79
+ expect(getByText('Gamma')).toBeTruthy();
80
+ });
81
+
82
+ it('calls onValueChange when an item is pressed', () => {
83
+ const onValueChange = jest.fn();
84
+ const { getByText } = renderOptionList({ onValueChange });
85
+
86
+ fireEvent.press(getByText('Beta'));
87
+
88
+ expect(onValueChange).toHaveBeenCalledWith('b');
89
+ });
90
+
91
+ it('marks the selected item with accessibilityState', () => {
92
+ const { getAllByRole } = renderOptionList({ value: 'a' });
93
+
94
+ const items = getAllByRole('radio');
95
+ const selectedItem = items.find(
96
+ (i) => i.props.accessibilityState?.selected === true,
97
+ );
98
+
99
+ expect(selectedItem).toBeTruthy();
100
+ });
101
+
102
+ it('updates selection on press (uncontrolled)', () => {
103
+ const onValueChange = jest.fn();
104
+ const { getByText } = renderOptionList({
105
+ defaultValue: 'a',
106
+ onValueChange,
107
+ });
108
+
109
+ fireEvent.press(getByText('Gamma'));
110
+
111
+ expect(onValueChange).toHaveBeenCalledWith('c');
112
+ });
113
+
114
+ it('does not fire onValueChange when disabled item is pressed', () => {
115
+ const onValueChange = jest.fn();
116
+ const items: OptionListItemData[] = [
117
+ { value: 'a', label: 'Enabled' },
118
+ { value: 'b', label: 'Disabled', disabled: true },
119
+ ];
120
+
121
+ const { getByText } = renderOptionList({ items, onValueChange });
122
+
123
+ fireEvent.press(getByText('Disabled'));
124
+
125
+ expect(onValueChange).not.toHaveBeenCalled();
126
+ });
127
+
128
+ it('renders group labels for grouped items', () => {
129
+ const { getByText } = renderOptionList({ items: GROUPED_ITEMS });
130
+
131
+ expect(getByText('Fruits')).toBeTruthy();
132
+ expect(getByText('Vegetables')).toBeTruthy();
133
+ expect(getByText('Apple')).toBeTruthy();
134
+ expect(getByText('Carrot')).toBeTruthy();
135
+ });
136
+
137
+ it('passes selected state to renderItem', () => {
138
+ const renderItem = jest.fn(
139
+ (item: OptionListItemData, selected: boolean) => (
140
+ <Text testID={`item-${item.value}`}>
141
+ {item.label} {selected ? 'selected' : ''}
142
+ </Text>
143
+ ),
144
+ );
145
+
146
+ render(
147
+ <TestWrapper>
148
+ <OptionList
149
+ items={[
150
+ { value: 'a', label: 'A' },
151
+ { value: 'b', label: 'B', disabled: true },
152
+ ]}
153
+ value='a'
154
+ >
155
+ <OptionListContent renderItem={renderItem} />
156
+ </OptionList>
157
+ </TestWrapper>,
158
+ );
159
+
160
+ expect(renderItem).toHaveBeenCalledWith(
161
+ expect.objectContaining({ value: 'a' }),
162
+ true,
163
+ );
164
+ expect(renderItem).toHaveBeenCalledWith(
165
+ expect.objectContaining({ value: 'b' }),
166
+ false,
167
+ );
168
+ });
169
+
170
+ it('renders description sub-component', () => {
171
+ const { getByText } = render(
172
+ <TestWrapper>
173
+ <OptionList items={ITEMS} value={null}>
174
+ <OptionListContent
175
+ renderItem={(item) => (
176
+ <OptionListItem value={item.value}>
177
+ <OptionListItemContent>
178
+ <OptionListItemText>{item.label}</OptionListItemText>
179
+ <OptionListItemDescription>
180
+ Description for {item.label}
181
+ </OptionListItemDescription>
182
+ </OptionListItemContent>
183
+ </OptionListItem>
184
+ )}
185
+ />
186
+ </OptionList>
187
+ </TestWrapper>,
188
+ );
189
+
190
+ expect(getByText('Description for Alpha')).toBeTruthy();
191
+ });
192
+
193
+ describe('OptionList-level disabled', () => {
194
+ it('prevents all items from being pressed when OptionList is disabled', () => {
195
+ const onValueChange = jest.fn();
196
+ const { getByText } = renderOptionList({
197
+ disabled: true,
198
+ onValueChange,
199
+ });
200
+
201
+ fireEvent.press(getByText('Alpha'));
202
+ fireEvent.press(getByText('Beta'));
203
+
204
+ expect(onValueChange).not.toHaveBeenCalled();
205
+ });
206
+
207
+ it('sets disabled accessibilityState on all items', () => {
208
+ const { getAllByRole } = renderOptionList({ disabled: true });
209
+
210
+ const items = getAllByRole('radio');
211
+ for (const item of items) {
212
+ expect(item.props.accessibilityState?.disabled).toBe(true);
213
+ }
214
+ });
215
+ });
216
+
217
+ describe('OptionListItemLeading', () => {
218
+ it('renders leading content beside item text', () => {
219
+ const { getByTestId, getByText } = render(
220
+ <TestWrapper>
221
+ <OptionList items={ITEMS} value={null}>
222
+ <OptionListContent
223
+ renderItem={(item) => (
224
+ <OptionListItem value={item.value}>
225
+ <OptionListItemLeading>
226
+ <Text testID={`leading-${item.value}`}>icon</Text>
227
+ </OptionListItemLeading>
228
+ <OptionListItemContent>
229
+ <OptionListItemText>{item.label}</OptionListItemText>
230
+ </OptionListItemContent>
231
+ </OptionListItem>
232
+ )}
233
+ />
234
+ </OptionList>
235
+ </TestWrapper>,
236
+ );
237
+
238
+ expect(getByTestId('leading-a')).toBeTruthy();
239
+ expect(getByText('Alpha')).toBeTruthy();
240
+ });
241
+ });
242
+
243
+ describe('OptionListItemContentRow', () => {
244
+ it('renders children in a row layout', () => {
245
+ const singleItem: OptionListItemData[] = [{ value: 'a', label: 'Alpha' }];
246
+
247
+ const { getByText } = render(
248
+ <TestWrapper>
249
+ <OptionList items={singleItem} value={null}>
250
+ <OptionListContent
251
+ renderItem={(item) => (
252
+ <OptionListItem value={item.value}>
253
+ <OptionListItemContent>
254
+ <OptionListItemContentRow>
255
+ <OptionListItemText>{item.label}</OptionListItemText>
256
+ <Text>tag</Text>
257
+ </OptionListItemContentRow>
258
+ </OptionListItemContent>
259
+ </OptionListItem>
260
+ )}
261
+ />
262
+ </OptionList>
263
+ </TestWrapper>,
264
+ );
265
+
266
+ expect(getByText('Alpha')).toBeTruthy();
267
+ expect(getByText('tag')).toBeTruthy();
268
+ });
269
+ });
270
+
271
+ describe('OptionListEmptyState', () => {
272
+ it('renders title when item list is empty', () => {
273
+ const { getByText } = render(
274
+ <TestWrapper>
275
+ <OptionList items={[]} value={null}>
276
+ <OptionListContent renderItem={() => null} />
277
+ <OptionListEmptyState title='No results' />
278
+ </OptionList>
279
+ </TestWrapper>,
280
+ );
281
+
282
+ expect(getByText('No results')).toBeTruthy();
283
+ });
284
+
285
+ it('renders description when provided', () => {
286
+ const { getByText } = render(
287
+ <TestWrapper>
288
+ <OptionList items={[]} value={null}>
289
+ <OptionListContent renderItem={() => null} />
290
+ <OptionListEmptyState
291
+ title='No results'
292
+ description='Try a different search'
293
+ />
294
+ </OptionList>
295
+ </TestWrapper>,
296
+ );
297
+
298
+ expect(getByText('No results')).toBeTruthy();
299
+ expect(getByText('Try a different search')).toBeTruthy();
300
+ });
301
+
302
+ it('does not render when items are present', () => {
303
+ const { queryByText } = render(
304
+ <TestWrapper>
305
+ <OptionList items={ITEMS} value={null}>
306
+ <OptionListContent
307
+ renderItem={(item) => (
308
+ <OptionListItem value={item.value}>
309
+ <OptionListItemContent>
310
+ <OptionListItemText>{item.label}</OptionListItemText>
311
+ </OptionListItemContent>
312
+ </OptionListItem>
313
+ )}
314
+ />
315
+ <OptionListEmptyState title='No results' />
316
+ </OptionList>
317
+ </TestWrapper>,
318
+ );
319
+
320
+ expect(queryByText('No results')).toBeNull();
321
+ });
322
+ });
323
+
324
+ describe('OptionListTrigger', () => {
325
+ it('calls onPress when pressed', () => {
326
+ const onPress = jest.fn();
327
+ const { getByRole } = render(
328
+ <TestWrapper>
329
+ <OptionList items={ITEMS} value={null}>
330
+ <OptionListTrigger label='Choose' onPress={onPress} />
331
+ </OptionList>
332
+ </TestWrapper>,
333
+ );
334
+
335
+ fireEvent.press(getByRole('button'));
336
+
337
+ expect(onPress).toHaveBeenCalledTimes(1);
338
+ });
339
+
340
+ it('renders the label text', () => {
341
+ const { getByText } = render(
342
+ <TestWrapper>
343
+ <OptionList items={ITEMS} value={null}>
344
+ <OptionListTrigger label='Pick a value' onPress={jest.fn()} />
345
+ </OptionList>
346
+ </TestWrapper>,
347
+ );
348
+
349
+ expect(getByText('Pick a value')).toBeTruthy();
350
+ });
351
+
352
+ it('renders children as selected value content', () => {
353
+ const { getByText } = render(
354
+ <TestWrapper>
355
+ <OptionList items={ITEMS} value='a'>
356
+ <OptionListTrigger label='Currency' onPress={jest.fn()}>
357
+ <Text>Alpha</Text>
358
+ </OptionListTrigger>
359
+ </OptionList>
360
+ </TestWrapper>,
361
+ );
362
+
363
+ expect(getByText('Alpha')).toBeTruthy();
364
+ expect(getByText('Currency')).toBeTruthy();
365
+ });
366
+
367
+ it('does not call onPress when disabled', () => {
368
+ const onPress = jest.fn();
369
+ const { getByRole } = render(
370
+ <TestWrapper>
371
+ <OptionList items={ITEMS} value={null}>
372
+ <OptionListTrigger label='Choose' onPress={onPress} disabled />
373
+ </OptionList>
374
+ </TestWrapper>,
375
+ );
376
+
377
+ fireEvent.press(getByRole('button'));
378
+
379
+ expect(onPress).not.toHaveBeenCalled();
380
+ });
381
+
382
+ it('inherits disabled from OptionList', () => {
383
+ const onPress = jest.fn();
384
+ const { getByRole } = render(
385
+ <TestWrapper>
386
+ <OptionList items={ITEMS} value={null} disabled>
387
+ <OptionListTrigger label='Choose' onPress={onPress} />
388
+ </OptionList>
389
+ </TestWrapper>,
390
+ );
391
+
392
+ fireEvent.press(getByRole('button'));
393
+
394
+ expect(onPress).not.toHaveBeenCalled();
395
+ });
396
+
397
+ it('renders without a label', () => {
398
+ const { getByRole, queryByText } = render(
399
+ <TestWrapper>
400
+ <OptionList items={ITEMS} value={null}>
401
+ <OptionListTrigger onPress={jest.fn()}>
402
+ <Text>Selected value</Text>
403
+ </OptionListTrigger>
404
+ </OptionList>
405
+ </TestWrapper>,
406
+ );
407
+
408
+ expect(getByRole('button')).toBeTruthy();
409
+ expect(queryByText('Selected value')).toBeTruthy();
410
+ });
411
+ });
412
+ });