@ledgerhq/lumen-ui-rnative 0.1.16 → 0.1.18

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 (259) hide show
  1. package/dist/module/lib/Components/AddressInput/AddressInput.js +3 -5
  2. package/dist/module/lib/Components/AddressInput/AddressInput.js.map +1 -1
  3. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.js +2 -1
  4. package/dist/module/lib/Components/AmountDisplay/AmountDisplay.js.map +1 -1
  5. package/dist/module/lib/Components/AmountInput/AmountInput.js +0 -1
  6. package/dist/module/lib/Components/AmountInput/AmountInput.js.map +1 -1
  7. package/dist/module/lib/Components/Banner/Banner.js +0 -1
  8. package/dist/module/lib/Components/Banner/Banner.js.map +1 -1
  9. package/dist/module/lib/Components/BaseInput/BaseInput.js +3 -5
  10. package/dist/module/lib/Components/BaseInput/BaseInput.js.map +1 -1
  11. package/dist/module/lib/Components/BottomSheet/BottomSheet.js +2 -3
  12. package/dist/module/lib/Components/BottomSheet/BottomSheet.js.map +1 -1
  13. package/dist/module/lib/Components/BottomSheet/BottomSheet.test.js +2 -6
  14. package/dist/module/lib/Components/BottomSheet/BottomSheet.test.js.map +1 -1
  15. package/dist/module/lib/Components/BottomSheet/BottomSheetHeader.js +0 -1
  16. package/dist/module/lib/Components/BottomSheet/BottomSheetHeader.js.map +1 -1
  17. package/dist/module/lib/Components/BottomSheet/CustomBackdrop.js +0 -1
  18. package/dist/module/lib/Components/BottomSheet/CustomBackdrop.js.map +1 -1
  19. package/dist/module/lib/Components/BottomSheet/CustomHandle.js +0 -1
  20. package/dist/module/lib/Components/BottomSheet/CustomHandle.js.map +1 -1
  21. package/dist/module/lib/Components/BottomSheet/Scrollables.js +0 -5
  22. package/dist/module/lib/Components/BottomSheet/Scrollables.js.map +1 -1
  23. package/dist/module/lib/Components/Button/BaseButton.js +0 -1
  24. package/dist/module/lib/Components/Button/BaseButton.js.map +1 -1
  25. package/dist/module/lib/Components/Button/Button.js +0 -1
  26. package/dist/module/lib/Components/Button/Button.js.map +1 -1
  27. package/dist/module/lib/Components/Card/Card.js +1 -11
  28. package/dist/module/lib/Components/Card/Card.js.map +1 -1
  29. package/dist/module/lib/Components/CardButton/CardButton.js +0 -1
  30. package/dist/module/lib/Components/CardButton/CardButton.js.map +1 -1
  31. package/dist/module/lib/Components/Checkbox/BaseCheckbox.js +0 -3
  32. package/dist/module/lib/Components/Checkbox/BaseCheckbox.js.map +1 -1
  33. package/dist/module/lib/Components/Checkbox/Checkbox.js +0 -1
  34. package/dist/module/lib/Components/Checkbox/Checkbox.js.map +1 -1
  35. package/dist/module/lib/Components/ContentBanner/ContentBanner.js +3 -8
  36. package/dist/module/lib/Components/ContentBanner/ContentBanner.js.map +1 -1
  37. package/dist/module/lib/Components/Divider/Divider.js +0 -1
  38. package/dist/module/lib/Components/Divider/Divider.js.map +1 -1
  39. package/dist/module/lib/Components/Icon/Icon.js +0 -1
  40. package/dist/module/lib/Components/Icon/Icon.js.map +1 -1
  41. package/dist/module/lib/Components/IconButton/IconButton.js +0 -1
  42. package/dist/module/lib/Components/IconButton/IconButton.js.map +1 -1
  43. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.js +13 -23
  44. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.js.map +1 -1
  45. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.mdx +58 -90
  46. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.stories.js +24 -29
  47. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.stories.js.map +1 -1
  48. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.test.js +30 -38
  49. package/dist/module/lib/Components/InteractiveIcon/InteractiveIcon.test.js.map +1 -1
  50. package/dist/module/lib/Components/Label/Label.js +0 -1
  51. package/dist/module/lib/Components/Label/Label.js.map +1 -1
  52. package/dist/module/lib/Components/Link/Link.js +0 -1
  53. package/dist/module/lib/Components/Link/Link.js.map +1 -1
  54. package/dist/module/lib/Components/ListItem/ListItem.js +5 -8
  55. package/dist/module/lib/Components/ListItem/ListItem.js.map +1 -1
  56. package/dist/module/lib/Components/MediaBanner/MediaBanner.js +3 -4
  57. package/dist/module/lib/Components/MediaBanner/MediaBanner.js.map +1 -1
  58. package/dist/module/lib/Components/MediaCard/MediaCard.js +3 -6
  59. package/dist/module/lib/Components/MediaCard/MediaCard.js.map +1 -1
  60. package/dist/module/lib/Components/MediaImage/MediaImage.js +0 -1
  61. package/dist/module/lib/Components/MediaImage/MediaImage.js.map +1 -1
  62. package/dist/module/lib/Components/NavBar/CoinCapsule.js +0 -1
  63. package/dist/module/lib/Components/NavBar/CoinCapsule.js.map +1 -1
  64. package/dist/module/lib/Components/NavBar/NavBar.js +0 -4
  65. package/dist/module/lib/Components/NavBar/NavBar.js.map +1 -1
  66. package/dist/module/lib/Components/PageIndicator/PageIndicator.js +0 -1
  67. package/dist/module/lib/Components/PageIndicator/PageIndicator.js.map +1 -1
  68. package/dist/module/lib/Components/SearchInput/SearchInput.js +2 -2
  69. package/dist/module/lib/Components/SearchInput/SearchInput.js.map +1 -1
  70. package/dist/module/lib/Components/SearchInput/SearchInput.test.js +41 -0
  71. package/dist/module/lib/Components/SearchInput/SearchInput.test.js.map +1 -0
  72. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.js +0 -2
  73. package/dist/module/lib/Components/SegmentedControl/SegmentedControl.js.map +1 -1
  74. package/dist/module/lib/Components/Select/Select.js +0 -9
  75. package/dist/module/lib/Components/Select/Select.js.map +1 -1
  76. package/dist/module/lib/Components/Skeleton/Skeleton.js +0 -4
  77. package/dist/module/lib/Components/Skeleton/Skeleton.js.map +1 -1
  78. package/dist/module/lib/Components/Slot/Slot.js +0 -4
  79. package/dist/module/lib/Components/Slot/Slot.js.map +1 -1
  80. package/dist/module/lib/Components/Spinner/Spinner.js +0 -1
  81. package/dist/module/lib/Components/Spinner/Spinner.js.map +1 -1
  82. package/dist/module/lib/Components/Spot/Spot.js +2 -1
  83. package/dist/module/lib/Components/Spot/Spot.js.map +1 -1
  84. package/dist/module/lib/Components/Stepper/Stepper.js +0 -1
  85. package/dist/module/lib/Components/Stepper/Stepper.js.map +1 -1
  86. package/dist/module/lib/Components/Subheader/Subheader.js +3 -4
  87. package/dist/module/lib/Components/Subheader/Subheader.js.map +1 -1
  88. package/dist/module/lib/Components/Switch/BaseSwitch.js +1 -3
  89. package/dist/module/lib/Components/Switch/BaseSwitch.js.map +1 -1
  90. package/dist/module/lib/Components/Switch/Switch.js +0 -1
  91. package/dist/module/lib/Components/Switch/Switch.js.map +1 -1
  92. package/dist/module/lib/Components/TabBar/TabBar.js +0 -1
  93. package/dist/module/lib/Components/TabBar/TabBar.js.map +1 -1
  94. package/dist/module/lib/Components/Tag/Tag.js +0 -1
  95. package/dist/module/lib/Components/Tag/Tag.js.map +1 -1
  96. package/dist/module/lib/Components/TextInput/TextInput.js +0 -1
  97. package/dist/module/lib/Components/TextInput/TextInput.js.map +1 -1
  98. package/dist/module/lib/Components/Tile/Tile.js +0 -5
  99. package/dist/module/lib/Components/Tile/Tile.js.map +1 -1
  100. package/dist/module/lib/Components/TileButton/TileButton.js +0 -1
  101. package/dist/module/lib/Components/TileButton/TileButton.js.map +1 -1
  102. package/dist/module/lib/Components/Tooltip/Tooltip.js +0 -3
  103. package/dist/module/lib/Components/Tooltip/Tooltip.js.map +1 -1
  104. package/dist/module/lib/Components/Tooltip/Tooltip.stories.js +2 -2
  105. package/dist/module/lib/Components/Tooltip/Tooltip.stories.js.map +1 -1
  106. package/dist/module/lib/Components/TriggerButton/TriggerButton.js +0 -1
  107. package/dist/module/lib/Components/TriggerButton/TriggerButton.js.map +1 -1
  108. package/dist/typescript/src/lib/Components/AddressInput/AddressInput.d.ts +1 -4
  109. package/dist/typescript/src/lib/Components/AddressInput/AddressInput.d.ts.map +1 -1
  110. package/dist/typescript/src/lib/Components/AmountDisplay/AmountDisplay.d.ts +1 -4
  111. package/dist/typescript/src/lib/Components/AmountDisplay/AmountDisplay.d.ts.map +1 -1
  112. package/dist/typescript/src/lib/Components/AmountInput/AmountInput.d.ts +1 -4
  113. package/dist/typescript/src/lib/Components/AmountInput/AmountInput.d.ts.map +1 -1
  114. package/dist/typescript/src/lib/Components/Banner/Banner.d.ts +1 -4
  115. package/dist/typescript/src/lib/Components/Banner/Banner.d.ts.map +1 -1
  116. package/dist/typescript/src/lib/Components/BaseInput/BaseInput.d.ts +1 -4
  117. package/dist/typescript/src/lib/Components/BaseInput/BaseInput.d.ts.map +1 -1
  118. package/dist/typescript/src/lib/Components/BottomSheet/BottomSheet.d.ts +2 -5
  119. package/dist/typescript/src/lib/Components/BottomSheet/BottomSheet.d.ts.map +1 -1
  120. package/dist/typescript/src/lib/Components/BottomSheet/BottomSheetHeader.d.ts +1 -4
  121. package/dist/typescript/src/lib/Components/BottomSheet/BottomSheetHeader.d.ts.map +1 -1
  122. package/dist/typescript/src/lib/Components/BottomSheet/CustomBackdrop.d.ts +1 -4
  123. package/dist/typescript/src/lib/Components/BottomSheet/CustomBackdrop.d.ts.map +1 -1
  124. package/dist/typescript/src/lib/Components/BottomSheet/CustomHandle.d.ts +3 -6
  125. package/dist/typescript/src/lib/Components/BottomSheet/CustomHandle.d.ts.map +1 -1
  126. package/dist/typescript/src/lib/Components/BottomSheet/Scrollables.d.ts +5 -20
  127. package/dist/typescript/src/lib/Components/BottomSheet/Scrollables.d.ts.map +1 -1
  128. package/dist/typescript/src/lib/Components/Button/BaseButton.d.ts +1 -4
  129. package/dist/typescript/src/lib/Components/Button/BaseButton.d.ts.map +1 -1
  130. package/dist/typescript/src/lib/Components/Button/Button.d.ts +1 -4
  131. package/dist/typescript/src/lib/Components/Button/Button.d.ts.map +1 -1
  132. package/dist/typescript/src/lib/Components/Card/Card.d.ts +26 -56
  133. package/dist/typescript/src/lib/Components/Card/Card.d.ts.map +1 -1
  134. package/dist/typescript/src/lib/Components/CardButton/CardButton.d.ts +1 -4
  135. package/dist/typescript/src/lib/Components/CardButton/CardButton.d.ts.map +1 -1
  136. package/dist/typescript/src/lib/Components/Checkbox/BaseCheckbox.d.ts +2 -8
  137. package/dist/typescript/src/lib/Components/Checkbox/BaseCheckbox.d.ts.map +1 -1
  138. package/dist/typescript/src/lib/Components/Checkbox/Checkbox.d.ts +1 -4
  139. package/dist/typescript/src/lib/Components/Checkbox/Checkbox.d.ts.map +1 -1
  140. package/dist/typescript/src/lib/Components/ContentBanner/ContentBanner.d.ts +4 -16
  141. package/dist/typescript/src/lib/Components/ContentBanner/ContentBanner.d.ts.map +1 -1
  142. package/dist/typescript/src/lib/Components/Divider/Divider.d.ts +1 -4
  143. package/dist/typescript/src/lib/Components/Divider/Divider.d.ts.map +1 -1
  144. package/dist/typescript/src/lib/Components/Icon/Icon.d.ts +1 -4
  145. package/dist/typescript/src/lib/Components/Icon/Icon.d.ts.map +1 -1
  146. package/dist/typescript/src/lib/Components/IconButton/IconButton.d.ts +1 -4
  147. package/dist/typescript/src/lib/Components/IconButton/IconButton.d.ts.map +1 -1
  148. package/dist/typescript/src/lib/Components/InteractiveIcon/InteractiveIcon.d.ts +4 -12
  149. package/dist/typescript/src/lib/Components/InteractiveIcon/InteractiveIcon.d.ts.map +1 -1
  150. package/dist/typescript/src/lib/Components/InteractiveIcon/types.d.ts +13 -4
  151. package/dist/typescript/src/lib/Components/InteractiveIcon/types.d.ts.map +1 -1
  152. package/dist/typescript/src/lib/Components/Label/Label.d.ts +1 -4
  153. package/dist/typescript/src/lib/Components/Label/Label.d.ts.map +1 -1
  154. package/dist/typescript/src/lib/Components/Link/Link.d.ts +1 -4
  155. package/dist/typescript/src/lib/Components/Link/Link.d.ts.map +1 -1
  156. package/dist/typescript/src/lib/Components/ListItem/ListItem.d.ts +19 -40
  157. package/dist/typescript/src/lib/Components/ListItem/ListItem.d.ts.map +1 -1
  158. package/dist/typescript/src/lib/Components/MediaCard/MediaCard.d.ts +2 -8
  159. package/dist/typescript/src/lib/Components/MediaCard/MediaCard.d.ts.map +1 -1
  160. package/dist/typescript/src/lib/Components/MediaImage/MediaImage.d.ts +1 -4
  161. package/dist/typescript/src/lib/Components/MediaImage/MediaImage.d.ts.map +1 -1
  162. package/dist/typescript/src/lib/Components/NavBar/CoinCapsule.d.ts +0 -3
  163. package/dist/typescript/src/lib/Components/NavBar/CoinCapsule.d.ts.map +1 -1
  164. package/dist/typescript/src/lib/Components/NavBar/NavBar.d.ts +0 -12
  165. package/dist/typescript/src/lib/Components/NavBar/NavBar.d.ts.map +1 -1
  166. package/dist/typescript/src/lib/Components/PageIndicator/PageIndicator.d.ts +1 -4
  167. package/dist/typescript/src/lib/Components/PageIndicator/PageIndicator.d.ts.map +1 -1
  168. package/dist/typescript/src/lib/Components/SearchInput/SearchInput.d.ts +1 -4
  169. package/dist/typescript/src/lib/Components/SearchInput/SearchInput.d.ts.map +1 -1
  170. package/dist/typescript/src/lib/Components/SegmentedControl/SegmentedControl.d.ts +0 -6
  171. package/dist/typescript/src/lib/Components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  172. package/dist/typescript/src/lib/Components/Select/Select.d.ts +9 -36
  173. package/dist/typescript/src/lib/Components/Select/Select.d.ts.map +1 -1
  174. package/dist/typescript/src/lib/Components/Skeleton/Skeleton.d.ts +1 -4
  175. package/dist/typescript/src/lib/Components/Skeleton/Skeleton.d.ts.map +1 -1
  176. package/dist/typescript/src/lib/Components/Slot/Slot.d.ts +4 -16
  177. package/dist/typescript/src/lib/Components/Slot/Slot.d.ts.map +1 -1
  178. package/dist/typescript/src/lib/Components/Spinner/Spinner.d.ts +1 -4
  179. package/dist/typescript/src/lib/Components/Spinner/Spinner.d.ts.map +1 -1
  180. package/dist/typescript/src/lib/Components/Spot/Spot.d.ts.map +1 -1
  181. package/dist/typescript/src/lib/Components/Stepper/Stepper.d.ts +1 -4
  182. package/dist/typescript/src/lib/Components/Stepper/Stepper.d.ts.map +1 -1
  183. package/dist/typescript/src/lib/Components/Subheader/types.d.ts +1 -1
  184. package/dist/typescript/src/lib/Components/Subheader/types.d.ts.map +1 -1
  185. package/dist/typescript/src/lib/Components/Switch/BaseSwitch.d.ts +2 -8
  186. package/dist/typescript/src/lib/Components/Switch/BaseSwitch.d.ts.map +1 -1
  187. package/dist/typescript/src/lib/Components/Switch/Switch.d.ts +1 -4
  188. package/dist/typescript/src/lib/Components/Switch/Switch.d.ts.map +1 -1
  189. package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts +0 -3
  190. package/dist/typescript/src/lib/Components/TabBar/TabBar.d.ts.map +1 -1
  191. package/dist/typescript/src/lib/Components/Tag/Tag.d.ts +1 -4
  192. package/dist/typescript/src/lib/Components/Tag/Tag.d.ts.map +1 -1
  193. package/dist/typescript/src/lib/Components/TextInput/TextInput.d.ts +1 -4
  194. package/dist/typescript/src/lib/Components/TextInput/TextInput.d.ts.map +1 -1
  195. package/dist/typescript/src/lib/Components/Tile/Tile.d.ts +5 -20
  196. package/dist/typescript/src/lib/Components/Tile/Tile.d.ts.map +1 -1
  197. package/dist/typescript/src/lib/Components/TileButton/TileButton.d.ts +1 -4
  198. package/dist/typescript/src/lib/Components/TileButton/TileButton.d.ts.map +1 -1
  199. package/dist/typescript/src/lib/Components/Tooltip/Tooltip.d.ts +3 -12
  200. package/dist/typescript/src/lib/Components/Tooltip/Tooltip.d.ts.map +1 -1
  201. package/dist/typescript/src/lib/Components/TriggerButton/TriggerButton.d.ts +1 -4
  202. package/dist/typescript/src/lib/Components/TriggerButton/TriggerButton.d.ts.map +1 -1
  203. package/package.json +3 -3
  204. package/src/lib/Components/AddressInput/AddressInput.tsx +3 -5
  205. package/src/lib/Components/AmountDisplay/AmountDisplay.tsx +2 -2
  206. package/src/lib/Components/AmountInput/AmountInput.tsx +0 -2
  207. package/src/lib/Components/Banner/Banner.tsx +0 -2
  208. package/src/lib/Components/BaseInput/BaseInput.tsx +3 -5
  209. package/src/lib/Components/BottomSheet/BottomSheet.test.tsx +2 -4
  210. package/src/lib/Components/BottomSheet/BottomSheet.tsx +2 -3
  211. package/src/lib/Components/BottomSheet/BottomSheetHeader.tsx +0 -1
  212. package/src/lib/Components/BottomSheet/CustomBackdrop.tsx +0 -1
  213. package/src/lib/Components/BottomSheet/CustomHandle.tsx +0 -1
  214. package/src/lib/Components/BottomSheet/Scrollables.tsx +0 -5
  215. package/src/lib/Components/Button/BaseButton.tsx +0 -2
  216. package/src/lib/Components/Button/Button.tsx +0 -1
  217. package/src/lib/Components/Card/Card.tsx +0 -10
  218. package/src/lib/Components/CardButton/CardButton.tsx +0 -2
  219. package/src/lib/Components/Checkbox/BaseCheckbox.tsx +0 -4
  220. package/src/lib/Components/Checkbox/Checkbox.tsx +0 -2
  221. package/src/lib/Components/ContentBanner/ContentBanner.tsx +3 -11
  222. package/src/lib/Components/Divider/Divider.tsx +0 -2
  223. package/src/lib/Components/Icon/Icon.tsx +0 -2
  224. package/src/lib/Components/IconButton/IconButton.tsx +0 -2
  225. package/src/lib/Components/InteractiveIcon/InteractiveIcon.mdx +58 -90
  226. package/src/lib/Components/InteractiveIcon/InteractiveIcon.stories.tsx +35 -34
  227. package/src/lib/Components/InteractiveIcon/InteractiveIcon.test.tsx +33 -29
  228. package/src/lib/Components/InteractiveIcon/InteractiveIcon.tsx +17 -28
  229. package/src/lib/Components/InteractiveIcon/types.ts +13 -5
  230. package/src/lib/Components/Label/Label.tsx +0 -2
  231. package/src/lib/Components/Link/Link.tsx +0 -2
  232. package/src/lib/Components/ListItem/ListItem.tsx +5 -15
  233. package/src/lib/Components/MediaBanner/MediaBanner.tsx +3 -3
  234. package/src/lib/Components/MediaCard/MediaCard.tsx +3 -7
  235. package/src/lib/Components/MediaImage/MediaImage.tsx +0 -2
  236. package/src/lib/Components/NavBar/CoinCapsule.tsx +0 -2
  237. package/src/lib/Components/NavBar/NavBar.tsx +0 -8
  238. package/src/lib/Components/PageIndicator/PageIndicator.tsx +0 -2
  239. package/src/lib/Components/SearchInput/SearchInput.test.tsx +40 -0
  240. package/src/lib/Components/SearchInput/SearchInput.tsx +8 -3
  241. package/src/lib/Components/SegmentedControl/SegmentedControl.tsx +0 -4
  242. package/src/lib/Components/Select/Select.tsx +0 -10
  243. package/src/lib/Components/Skeleton/Skeleton.tsx +0 -4
  244. package/src/lib/Components/Slot/Slot.tsx +0 -8
  245. package/src/lib/Components/Spinner/Spinner.tsx +0 -2
  246. package/src/lib/Components/Spot/Spot.tsx +1 -0
  247. package/src/lib/Components/Stepper/Stepper.tsx +0 -2
  248. package/src/lib/Components/Subheader/Subheader.tsx +3 -3
  249. package/src/lib/Components/Subheader/types.ts +1 -1
  250. package/src/lib/Components/Switch/BaseSwitch.tsx +0 -3
  251. package/src/lib/Components/Switch/Switch.tsx +0 -2
  252. package/src/lib/Components/TabBar/TabBar.tsx +0 -2
  253. package/src/lib/Components/Tag/Tag.tsx +0 -2
  254. package/src/lib/Components/TextInput/TextInput.tsx +0 -2
  255. package/src/lib/Components/Tile/Tile.tsx +0 -6
  256. package/src/lib/Components/TileButton/TileButton.tsx +0 -2
  257. package/src/lib/Components/Tooltip/Tooltip.stories.tsx +5 -3
  258. package/src/lib/Components/Tooltip/Tooltip.tsx +0 -3
  259. package/src/lib/Components/TriggerButton/TriggerButton.tsx +0 -2
@@ -1,9 +1,8 @@
1
1
  import { useDisabledContext } from '@ledgerhq/lumen-utils-shared';
2
- import { Children, isValidElement, PropsWithChildren } from 'react';
2
+ import { ComponentType } from 'react';
3
3
  import { StyleSheet, View } from 'react-native';
4
4
  import { useStyleSheet } from '../../../styles';
5
5
 
6
- import { InjectStylesIntoChildren } from '../../utils/components/InjectStylesIntoChildren';
7
6
  import { IconProps, IconSize } from '../Icon';
8
7
  import { Pressable } from '../Utility';
9
8
  import { HIT_SLOP_MAP, InteractiveIconProps } from './types';
@@ -77,8 +76,7 @@ const useStyles = ({
77
76
  *
78
77
  * @component
79
78
  *
80
- * @warning Always provide an `aria-label` prop to ensure screen reader accessibility, as the component contains only an icon without visible text.
81
- * @warning The icon size should be controlled by the icon component itself, not through styles. Use the appropriate size prop on the icon component (e.g., `size={20}`).
79
+ * @warning Always provide an `accessibilityLabel` prop to ensure screen reader accessibility, as the component contains only an icon without visible text.
82
80
  * @warning The `style` prop should only be used for layout adjustments like margins or positioning. Do not use it to modify the component's core appearance (colors, padding, etc).
83
81
  *
84
82
  * @example
@@ -86,18 +84,15 @@ const useStyles = ({
86
84
  * import { DeleteCircleFill, Settings } from '@ledgerhq/lumen-ui-rnative/symbols';
87
85
  *
88
86
  * // Filled interactive icon for destructive actions
89
- * <InteractiveIcon iconType="filled" accessibilityLabel="Delete item" onPress={handleDelete}>
90
- * <DeleteCircleFill size={20} />
91
- * </InteractiveIcon>
87
+ * <InteractiveIcon iconType="filled" icon={DeleteCircleFill} size={20} accessibilityLabel="Delete item" onPress={handleDelete} />
92
88
  *
93
89
  * // Stroked interactive icon for secondary actions
94
- * <InteractiveIcon iconType="stroked" accessibilityLabel="Open settings" onPress={handleSettings}>
95
- * <Settings size={20} />
96
- * </InteractiveIcon>
90
+ * <InteractiveIcon iconType="stroked" icon={Settings} size={20} accessibilityLabel="Open settings" onPress={handleSettings} />
97
91
  */
98
92
  export const InteractiveIcon = ({
99
93
  iconType,
100
- children,
94
+ icon,
95
+ size = 24,
101
96
  disabled: disabledProp = false,
102
97
  hitSlop: hitSlopProp,
103
98
  hitSlopType = 'comfortable',
@@ -110,14 +105,8 @@ export const InteractiveIcon = ({
110
105
  consumerName: 'InteractiveIcon',
111
106
  mergeWith: { disabled: disabledProp },
112
107
  });
113
- const child = Children.only(children);
114
108
 
115
- let iconSize: IconSize = 20;
116
- if (isValidElement<IconProps>(child) && 'size' in child.props) {
117
- iconSize = child.props.size ?? 20;
118
- }
119
-
120
- const resolvedHitSlop = hitSlopProp ?? HIT_SLOP_MAP[hitSlopType]?.[iconSize];
109
+ const resolvedHitSlop = hitSlopProp ?? HIT_SLOP_MAP[hitSlopType]?.[size];
121
110
 
122
111
  return (
123
112
  <Pressable
@@ -135,9 +124,9 @@ export const InteractiveIcon = ({
135
124
  appearance={appearance}
136
125
  pressed={pressed}
137
126
  disabled={disabled}
138
- >
139
- {children}
140
- </InteractiveIconContent>
127
+ icon={icon}
128
+ size={size}
129
+ />
141
130
  )}
142
131
  </Pressable>
143
132
  );
@@ -148,21 +137,21 @@ const InteractiveIconContent = ({
148
137
  appearance,
149
138
  pressed,
150
139
  disabled,
151
- children,
152
- }: PropsWithChildren<{
140
+ icon: Icon,
141
+ size,
142
+ }: {
153
143
  iconType: IconType;
154
144
  appearance: Appearance;
155
145
  pressed: boolean;
156
146
  disabled: boolean;
157
- }>) => {
147
+ icon: ComponentType<Omit<IconProps, 'children'>>;
148
+ size: IconSize;
149
+ }) => {
158
150
  const styles = useStyles({ iconType, appearance, pressed, disabled });
159
151
 
160
152
  return (
161
153
  <View style={styles.container}>
162
- <InjectStylesIntoChildren style={styles.icon}>
163
- {children}
164
- </InjectStylesIntoChildren>
154
+ <Icon size={size} style={styles.icon} />
165
155
  </View>
166
156
  );
167
157
  };
168
- InteractiveIcon.displayName = 'InteractiveIcon';
@@ -1,7 +1,7 @@
1
- import { PropsWithChildren } from 'react';
1
+ import { ComponentType } from 'react';
2
2
  import { Insets } from 'react-native';
3
3
  import { StyledPressableProps } from '../../../styles';
4
- import { IconSize } from '../Icon';
4
+ import { IconProps, IconSize } from '../Icon';
5
5
 
6
6
  export const HIT_SLOP_MAP: Partial<
7
7
  Record<HitSlopType, Partial<Record<IconSize, Insets>>>
@@ -60,12 +60,20 @@ export type InteractiveIconProps = {
60
60
  * @default 'muted'
61
61
  */
62
62
  appearance?: 'base' | 'muted' | 'white';
63
+ /**
64
+ * The icon component to render.
65
+ */
66
+ icon: ComponentType<Omit<IconProps, 'children'>>;
67
+ /**
68
+ * The size of the icon in pixels.
69
+ * @default 24
70
+ */
71
+ size?: IconSize;
63
72
  /**
64
73
  * Preset for the touchable area. Ignored if `hitSlop` is passed explicitly.
65
- * Automatically applies insets based on the child's icon size.
74
+ * Automatically applies insets based on the icon size.
66
75
  *
67
76
  * @default 'comfortable'
68
77
  */
69
78
  hitSlopType?: HitSlopType;
70
- } & PropsWithChildren &
71
- Omit<StyledPressableProps, 'children' | 'disabled'>;
79
+ } & Omit<StyledPressableProps, 'children' | 'disabled'>;
@@ -51,5 +51,3 @@ export const Label = ({
51
51
  </Text>
52
52
  );
53
53
  };
54
-
55
- Label.displayName = 'Label';
@@ -199,5 +199,3 @@ const LinkContent = ({
199
199
  </View>
200
200
  );
201
201
  };
202
-
203
- Link.displayName = 'Link';
@@ -113,8 +113,6 @@ export const ListItem = ({
113
113
  );
114
114
  };
115
115
 
116
- ListItem.displayName = 'ListItem';
117
-
118
116
  /**
119
117
  * Internal component to handle pressed state styling
120
118
  */
@@ -169,8 +167,6 @@ export const ListItemLeading = ({
169
167
  );
170
168
  };
171
169
 
172
- ListItemLeading.displayName = 'ListItemLeading';
173
-
174
170
  /**
175
171
  * Container for the text content (title and description) within the leading area.
176
172
  */
@@ -192,7 +188,7 @@ export const ListItemContent = ({
192
188
  flex: isInTrailing ? 0 : 1,
193
189
  minWidth: 0,
194
190
  gap: t.spacings.s4,
195
- alignItems: isInTrailing ? 'flex-end' : 'flex-start',
191
+ alignItems: isInTrailing ? 'flex-end' : 'stretch',
196
192
  },
197
193
  }),
198
194
  [isInTrailing],
@@ -210,8 +206,6 @@ export const ListItemContent = ({
210
206
  );
211
207
  };
212
208
 
213
- ListItemContent.displayName = 'ListItemContent';
214
-
215
209
  /**
216
210
  * Horizontal row container within ListItemContent to place a title or description
217
211
  * alongside additional inline content (e.g. Tag) while preserving text truncation.
@@ -247,8 +241,6 @@ export const ListItemContentRow = ({
247
241
  );
248
242
  };
249
243
 
250
- ListItemContentRow.displayName = 'ListItemContentRow';
251
-
252
244
  /**
253
245
  * The main title of the list item.
254
246
  */
@@ -273,7 +265,9 @@ export const ListItemTitle = ({
273
265
  title: StyleSheet.flatten([
274
266
  t.typographies.body2SemiBold,
275
267
  {
268
+ flex: 1,
276
269
  minWidth: 0,
270
+ flexShrink: 1,
277
271
  textAlign: isInTrailing ? 'right' : 'left',
278
272
  color: disabled ? t.colors.text.disabled : t.colors.text.base,
279
273
  } as const,
@@ -296,8 +290,6 @@ export const ListItemTitle = ({
296
290
  );
297
291
  };
298
292
 
299
- ListItemTitle.displayName = 'ListItemTitle';
300
-
301
293
  /**
302
294
  * Optional description text below the title.
303
295
  * Automatically applies disabled styling when the parent ListItem is disabled.
@@ -323,7 +315,9 @@ export const ListItemDescription = ({
323
315
  description: StyleSheet.flatten([
324
316
  t.typographies.body3,
325
317
  {
318
+ flex: 1,
326
319
  minWidth: 0,
320
+ flexShrink: 1,
327
321
  textAlign: isInTrailing ? 'right' : 'left',
328
322
  color: disabled ? t.colors.text.disabled : t.colors.text.muted,
329
323
  } as const,
@@ -346,8 +340,6 @@ export const ListItemDescription = ({
346
340
  );
347
341
  };
348
342
 
349
- ListItemDescription.displayName = 'ListItemDescription';
350
-
351
343
  /**
352
344
  * Container for the trailing (right) content of the list item.
353
345
  * Used for icons, switches, values, tags, chevrons, etc.
@@ -382,5 +374,3 @@ export const ListItemTrailing = ({
382
374
  </ListItemTrailingProvider>
383
375
  );
384
376
  };
385
-
386
- ListItemTrailing.displayName = 'ListItemTrailing';
@@ -96,14 +96,14 @@ export function MediaBanner({
96
96
  testID='media-banner-close-button'
97
97
  iconType='stroked'
98
98
  appearance='white'
99
+ icon={Close}
100
+ size={16}
99
101
  onPress={onClose}
100
102
  accessibilityLabel={
101
103
  closeAccessibilityLabel ||
102
104
  translate('components.banner.closeAriaLabel')
103
105
  }
104
- >
105
- <Close size={16} />
106
- </InteractiveIcon>
106
+ />
107
107
  </Box>
108
108
  )}
109
109
  </Pressable>
@@ -76,8 +76,6 @@ export const MediaCardTitle = ({
76
76
  );
77
77
  };
78
78
 
79
- MediaCardTitle.displayName = 'MediaCardTitle';
80
-
81
79
  const GradientOverlays = () => {
82
80
  const styles = useStyles();
83
81
 
@@ -176,15 +174,15 @@ export const MediaCard = ({
176
174
  <InteractiveIcon
177
175
  iconType='stroked'
178
176
  appearance='white'
177
+ icon={Close}
178
+ size={20}
179
179
  style={styles.closeButton}
180
180
  onPress={onClose}
181
181
  accessibilityLabel={
182
182
  closeAccessibilityLabel || t('common.closeAriaLabel')
183
183
  }
184
184
  testID='media-card-close-button'
185
- >
186
- <Close size={20} />
187
- </InteractiveIcon>
185
+ />
188
186
  )}
189
187
 
190
188
  {pressed && (
@@ -199,5 +197,3 @@ export const MediaCard = ({
199
197
  </Pressable>
200
198
  );
201
199
  };
202
-
203
- MediaCard.displayName = 'MediaCard';
@@ -113,5 +113,3 @@ export const MediaImage = ({
113
113
  </Box>
114
114
  );
115
115
  };
116
-
117
- MediaImage.displayName = 'MediaImage';
@@ -13,8 +13,6 @@ export function CoinCapsule({ ticker, icon }: CoinCapsuleProps) {
13
13
  );
14
14
  }
15
15
 
16
- CoinCapsule.displayName = 'CoinCapsule';
17
-
18
16
  const useStyles = () =>
19
17
  useStyleSheet(
20
18
  (t) => ({
@@ -97,8 +97,6 @@ export function NavBarTitle({ children, style, ...props }: NavBarTitleProps) {
97
97
  );
98
98
  }
99
99
 
100
- NavBarTitle.displayName = 'NavBarTitle';
101
-
102
100
  export function NavBarDescription({
103
101
  children,
104
102
  style,
@@ -121,8 +119,6 @@ export function NavBarDescription({
121
119
  );
122
120
  }
123
121
 
124
- NavBarDescription.displayName = 'NavBarDescription';
125
-
126
122
  export function NavBarCoinCapsule({
127
123
  ticker,
128
124
  icon,
@@ -135,8 +131,6 @@ export function NavBarCoinCapsule({
135
131
  );
136
132
  }
137
133
 
138
- NavBarCoinCapsule.displayName = 'NavBarCoinCapsule';
139
-
140
134
  export function NavBarBackButton({
141
135
  accessibilityLabel,
142
136
  onPress,
@@ -230,8 +224,6 @@ export function NavBar({ appearance, children, ...props }: NavBarProps) {
230
224
  );
231
225
  }
232
226
 
233
- NavBar.displayName = 'NavBar';
234
-
235
227
  type StyleParams = {
236
228
  appearance: NavBarAppearance;
237
229
  };
@@ -216,8 +216,6 @@ export const PageIndicator = ({
216
216
  );
217
217
  };
218
218
 
219
- PageIndicator.displayName = 'PageIndicator';
220
-
221
219
  const useDotStyles = () =>
222
220
  useStyleSheet(
223
221
  (t) => ({
@@ -0,0 +1,40 @@
1
+ import { describe, it, expect } from '@jest/globals';
2
+ import { ledgerLiveThemes } from '@ledgerhq/lumen-design-core';
3
+ import { render, screen } from '@testing-library/react-native';
4
+
5
+ import { ThemeProvider } from '../ThemeProvider/ThemeProvider';
6
+ import { SearchInput } from './SearchInput';
7
+
8
+ const { colors } = ledgerLiveThemes.dark;
9
+
10
+ const renderWithProvider = (component: React.ReactElement) => {
11
+ return render(
12
+ <ThemeProvider themes={ledgerLiveThemes} colorScheme='dark' locale='en'>
13
+ {component}
14
+ </ThemeProvider>,
15
+ );
16
+ };
17
+
18
+ const getSearchIcon = () => screen.UNSAFE_getByProps({ fill: 'none' });
19
+
20
+ describe('SearchInput', () => {
21
+ describe('Icon color', () => {
22
+ it('should render the search icon with muted color by default', () => {
23
+ renderWithProvider(<SearchInput />);
24
+
25
+ const icon = getSearchIcon();
26
+ expect(icon.props.color).toBe(colors.text.muted);
27
+ });
28
+
29
+ it('should render the search icon with disabled color when disabled', () => {
30
+ renderWithProvider(<SearchInput disabled />);
31
+
32
+ const icon = getSearchIcon();
33
+ expect(icon.props.style).toEqual(
34
+ expect.arrayContaining([
35
+ expect.objectContaining({ color: colors.text.disabled }),
36
+ ]),
37
+ );
38
+ });
39
+ });
40
+ });
@@ -22,7 +22,14 @@ export const SearchInput = ({
22
22
  return (
23
23
  <BaseInput
24
24
  ref={ref}
25
- prefix={<SearchIcon size={20} accessible={false} disabled={disabled} />}
25
+ prefix={
26
+ <SearchIcon
27
+ size={20}
28
+ accessible={false}
29
+ disabled={disabled}
30
+ color='muted'
31
+ />
32
+ }
26
33
  style={style}
27
34
  containerStyle={[containerStyle, styles.container]}
28
35
  inputStyle={[inputStyle, styles.input]}
@@ -44,5 +51,3 @@ const useAppearanceStyles = (appearance: 'plain' | 'transparent') => {
44
51
  [appearance],
45
52
  );
46
53
  };
47
-
48
- SearchInput.displayName = 'SearchInput';
@@ -76,8 +76,6 @@ export function SegmentedControlButton({
76
76
  );
77
77
  }
78
78
 
79
- SegmentedControlButton.displayName = 'SegmentedControlButton';
80
-
81
79
  function useButtonStyles({
82
80
  selected,
83
81
  disabled,
@@ -184,8 +182,6 @@ export function SegmentedControl({
184
182
  );
185
183
  }
186
184
 
187
- SegmentedControl.displayName = 'SegmentedControl';
188
-
189
185
  function useRootStyles({
190
186
  disabled,
191
187
  appearance,
@@ -125,7 +125,6 @@ export const Select = ({
125
125
  </SelectContextProvider>
126
126
  );
127
127
  };
128
- Select.displayName = 'Select';
129
128
 
130
129
  export const SelectTrigger = ({
131
130
  children,
@@ -283,8 +282,6 @@ const useTriggerStyles = ({
283
282
  );
284
283
  };
285
284
 
286
- SelectTrigger.displayName = 'SelectTrigger';
287
-
288
285
  /**
289
286
  * Displays the current selected value
290
287
  */
@@ -321,7 +318,6 @@ export const SelectValue = () => {
321
318
  </Text>
322
319
  );
323
320
  };
324
- SelectValue.displayName = 'SelectValue';
325
321
 
326
322
  /**
327
323
  * Container for select items. This component collects all items
@@ -378,7 +374,6 @@ export const SelectContent = ({ children }: SelectContentProps) => {
378
374
 
379
375
  return null;
380
376
  };
381
- SelectContent.displayName = 'SelectContent';
382
377
 
383
378
  export const SelectGroup = ({
384
379
  children,
@@ -402,7 +397,6 @@ export const SelectGroup = ({
402
397
  </Box>
403
398
  );
404
399
  };
405
- SelectGroup.displayName = 'SelectGroup';
406
400
 
407
401
  export const SelectLabel = ({
408
402
  children,
@@ -432,7 +426,6 @@ export const SelectLabel = ({
432
426
  </Text>
433
427
  );
434
428
  };
435
- SelectLabel.displayName = 'SelectLabel';
436
429
 
437
430
  /**
438
431
  * Individual select item. Note: The actual rendering happens in GlobalSelectBottomSheet.
@@ -443,7 +436,6 @@ export const SelectItem = (_props: SelectItemProps) => {
443
436
  // The actual items are rendered in GlobalSelectBottomSheet
444
437
  return null;
445
438
  };
446
- SelectItem.displayName = 'SelectItem';
447
439
 
448
440
  export const SelectItemText = ({
449
441
  children,
@@ -469,11 +461,9 @@ export const SelectItemText = ({
469
461
  </Text>
470
462
  );
471
463
  };
472
- SelectItemText.displayName = 'SelectItemText';
473
464
 
474
465
  export const SelectSeparator = (_props: SelectSeparatorProps) => {
475
466
  // This component doesn't render anything - it's used for structure
476
467
  // The actual separators are rendered in GlobalSelectBottomSheet
477
468
  return null;
478
469
  };
479
- SelectSeparator.displayName = 'SelectSeparator';
@@ -15,7 +15,6 @@ const BaseSkeleton = ({ lx, ...props }: SkeletonProps) => {
15
15
  />
16
16
  );
17
17
  };
18
- BaseSkeleton.displayName = 'BaseSkeleton';
19
18
 
20
19
  const ListItemSkeleton = ({ lx, ...props }: SkeletonProps) => {
21
20
  return (
@@ -49,7 +48,6 @@ const ListItemSkeleton = ({ lx, ...props }: SkeletonProps) => {
49
48
  </Box>
50
49
  );
51
50
  };
52
- ListItemSkeleton.displayName = 'ListItemSkeleton';
53
51
 
54
52
  const TileSkeleton = ({ lx, ...props }: SkeletonProps) => {
55
53
  return (
@@ -92,7 +90,6 @@ const TileSkeleton = ({ lx, ...props }: SkeletonProps) => {
92
90
  </Box>
93
91
  );
94
92
  };
95
- TileSkeleton.displayName = 'TileSkeleton';
96
93
 
97
94
  const componentsMap = {
98
95
  'list-item': ListItemSkeleton,
@@ -132,6 +129,5 @@ const Skeleton = ({ lx, component, ...props }: SkeletonProps) => {
132
129
  </Pulse>
133
130
  );
134
131
  };
135
- Skeleton.displayName = 'Skeleton';
136
132
 
137
133
  export { Skeleton };
@@ -41,8 +41,6 @@ const SlotPressable = ({
41
41
  });
42
42
  };
43
43
 
44
- SlotPressable.displayName = 'SlotPressable';
45
-
46
44
  const SlotView = ({
47
45
  ref,
48
46
  ...props
@@ -64,8 +62,6 @@ const SlotView = ({
64
62
  });
65
63
  };
66
64
 
67
- SlotView.displayName = 'SlotView';
68
-
69
65
  const SlotText = ({
70
66
  ref,
71
67
  ...props
@@ -87,8 +83,6 @@ const SlotText = ({
87
83
  });
88
84
  };
89
85
 
90
- SlotText.displayName = 'SlotText';
91
-
92
86
  type SlotImageSlotProps = ImageProps & {
93
87
  children?: React.ReactNode;
94
88
  } & ComponentPropsWithRef<typeof Image>;
@@ -111,8 +105,6 @@ const SlotImage = ({ ref, ...props }: SlotImageSlotProps) => {
111
105
  });
112
106
  };
113
107
 
114
- SlotImage.displayName = 'SlotImage';
115
-
116
108
  function composeRefs<T>(...refs: (React.Ref<T> | undefined)[]) {
117
109
  return (node: T) =>
118
110
  refs.forEach((ref) => {
@@ -53,5 +53,3 @@ export const Spinner = ({
53
53
  </Box>
54
54
  );
55
55
  };
56
-
57
- Spinner.displayName = 'Spinner';
@@ -76,6 +76,7 @@ const useStyles = ({
76
76
  backgroundColor: t.colors.bg.mutedTransparent,
77
77
  width: spotSize,
78
78
  height: spotSize,
79
+ flexShrink: 0,
79
80
  },
80
81
  icon: {
81
82
  color: contentColor,
@@ -185,5 +185,3 @@ export const Stepper = ({
185
185
  </Box>
186
186
  );
187
187
  };
188
-
189
- Stepper.displayName = 'Stepper';
@@ -133,12 +133,12 @@ export const SubheaderInfo = ({
133
133
  return (
134
134
  <InteractiveIcon
135
135
  iconType={iconType}
136
+ icon={Information}
137
+ size={16}
136
138
  accessibilityLabel='More information'
137
139
  style={style}
138
140
  {...props}
139
- >
140
- <Information size={16} />
141
- </InteractiveIcon>
141
+ />
142
142
  );
143
143
  };
144
144
 
@@ -41,7 +41,7 @@ export type SubheaderCountProps = {
41
41
 
42
42
  export type SubheaderInfoProps = Omit<
43
43
  InteractiveIconProps,
44
- 'children' | 'iconType'
44
+ 'icon' | 'size' | 'iconType'
45
45
  > & {
46
46
  /**
47
47
  * The visual style of the icon button.
@@ -88,7 +88,6 @@ const BaseSwitchRoot = ({
88
88
  </BaseSwitchProvider>
89
89
  );
90
90
  };
91
- BaseSwitchRoot.displayName = ROOT_COMPONENT_NAME;
92
91
 
93
92
  const THUMB_TRANSLATE: Record<Size, number> = {
94
93
  sm: 8,
@@ -247,6 +246,4 @@ const useStyles = ({
247
246
  );
248
247
  };
249
248
 
250
- BaseSwitchThumb.displayName = THUMB_COMPONENT_NAME;
251
-
252
249
  export { BaseSwitchRoot, BaseSwitchThumb };
@@ -62,5 +62,3 @@ export const Switch = ({
62
62
  </Pressable>
63
63
  );
64
64
  };
65
-
66
- Switch.displayName = 'Switch';
@@ -226,8 +226,6 @@ export function TabBarItem({
226
226
  );
227
227
  }
228
228
 
229
- TabBarItem.displayName = 'TabBarItem';
230
-
231
229
  /**
232
230
  * A horizontal tab bar with animated pill background and icon transitions.
233
231
  * Provides smooth animations for active state changes and press interactions.
@@ -161,5 +161,3 @@ export const Tag = ({
161
161
  </Box>
162
162
  );
163
163
  };
164
-
165
- Tag.displayName = 'Tag';
@@ -58,5 +58,3 @@ import { type TextInputProps } from './types';
58
58
  export const TextInput = (props: TextInputProps) => {
59
59
  return <BaseInput {...props} />;
60
60
  };
61
-
62
- TextInput.displayName = 'TextInput';